diff options
author | Alan Modra <amodra@gmail.com> | 2020-02-06 11:23:43 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2020-02-06 13:59:40 +1030 |
commit | bb4e012ca040df594ed16d23e1a565754b686c6f (patch) | |
tree | 2d5ea354973b3c411ba061b578c9409a5462b5f7 /ld/testsuite/ld-ifunc | |
parent | 19234a6d36237205dc3aa2e4d495eff2713ec342 (diff) | |
download | fsf-binutils-gdb-bb4e012ca040df594ed16d23e1a565754b686c6f.zip fsf-binutils-gdb-bb4e012ca040df594ed16d23e1a565754b686c6f.tar.gz fsf-binutils-gdb-bb4e012ca040df594ed16d23e1a565754b686c6f.tar.bz2 |
Enable ld-ifunc tests for more targets
Also fix some ix86 fails.
* testsuite/ld-ifunc/ifunc.exp: Enable for more targets, specifying
targets that don't support ifunc rather than ones that do.
(contains_irelative_reloc): Match R_PARISC_IPLT.
* testsuite/ld-ifunc/lib.c: Don't use .set in asm.
* testsuite/ld-ifunc/ifunc-23-x86.s,
* testsuite/ld-ifunc/ifunc-24-x86.s,
* testsuite/ld-ifunc/ifunc-25-x86.s,
* testsuite/ld-ifunc/ifunc-4-local-x86.s,
* testsuite/ld-ifunc/ifunc-4-x86.s: Define _main.
* testsuite/ld-ifunc/ifunc-10-i386.d,
* testsuite/ld-ifunc/ifunc-11-i386.d,
* testsuite/ld-ifunc/ifunc-12-i386.d,
* testsuite/ld-ifunc/ifunc-13-i386.d,
* testsuite/ld-ifunc/ifunc-14a-i386.d,
* testsuite/ld-ifunc/ifunc-14b-i386.d,
* testsuite/ld-ifunc/ifunc-14c-i386.d,
* testsuite/ld-ifunc/ifunc-14d-i386.d,
* testsuite/ld-ifunc/ifunc-14e-i386.d,
* testsuite/ld-ifunc/ifunc-14f-i386.d,
* testsuite/ld-ifunc/ifunc-15-i386.d,
* testsuite/ld-ifunc/ifunc-16-i386-now.d,
* testsuite/ld-ifunc/ifunc-16-i386.d,
* testsuite/ld-ifunc/ifunc-17a-i386.d,
* testsuite/ld-ifunc/ifunc-17b-i386.d,
* testsuite/ld-ifunc/ifunc-18a-i386.d,
* testsuite/ld-ifunc/ifunc-18b-i386.d,
* testsuite/ld-ifunc/ifunc-19a-i386.d,
* testsuite/ld-ifunc/ifunc-19b-i386.d,
* testsuite/ld-ifunc/ifunc-2-i386-now.d,
* testsuite/ld-ifunc/ifunc-2-i386.d,
* testsuite/ld-ifunc/ifunc-2-local-i386-now.d,
* testsuite/ld-ifunc/ifunc-2-local-i386.d,
* testsuite/ld-ifunc/ifunc-20-i386.d,
* testsuite/ld-ifunc/ifunc-21-i386.d,
* testsuite/ld-ifunc/ifunc-22-i386.d,
* testsuite/ld-ifunc/ifunc-26.d,
* testsuite/ld-ifunc/ifunc-5a-i386.d,
* testsuite/ld-ifunc/ifunc-5a-local-i386.d,
* testsuite/ld-ifunc/ifunc-5b-i386.d,
* testsuite/ld-ifunc/ifunc-5b-local-i386.d,
* testsuite/ld-ifunc/ifunc-5r-local-i386.d,
* testsuite/ld-ifunc/ifunc-6a-i386.d,
* testsuite/ld-ifunc/ifunc-6b-i386.d,
* testsuite/ld-ifunc/ifunc-7a-i386.d,
* testsuite/ld-ifunc/ifunc-7b-i386.d,
* testsuite/ld-ifunc/ifunc-8-i386.d,
* testsuite/ld-ifunc/ifunc-9-i386.d,
* testsuite/ld-ifunc/pr17154-i386-now.d,
* testsuite/ld-ifunc/pr17154-i386.d: xfail lynxos, nto, and solaris.
Diffstat (limited to 'ld/testsuite/ld-ifunc')
47 files changed, 76 insertions, 56 deletions
diff --git a/ld/testsuite/ld-ifunc/ifunc-10-i386.d b/ld/testsuite/ld-ifunc/ifunc-10-i386.d index f769db1..b72545a 100644 --- a/ld/testsuite/ld-ifunc/ifunc-10-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-10-i386.d @@ -2,6 +2,6 @@ #as: --32 #readelf: -r --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* There are no relocations in this file. diff --git a/ld/testsuite/ld-ifunc/ifunc-11-i386.d b/ld/testsuite/ld-ifunc/ifunc-11-i386.d index f769db1..b72545a 100644 --- a/ld/testsuite/ld-ifunc/ifunc-11-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-11-i386.d @@ -2,6 +2,6 @@ #as: --32 #readelf: -r --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* There are no relocations in this file. diff --git a/ld/testsuite/ld-ifunc/ifunc-12-i386.d b/ld/testsuite/ld-ifunc/ifunc-12-i386.d index fb868ae..cd41f5b 100644 --- a/ld/testsuite/ld-ifunc/ifunc-12-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-12-i386.d @@ -2,6 +2,6 @@ #as: --32 #readelf: -r --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* There are no relocations in this file. diff --git a/ld/testsuite/ld-ifunc/ifunc-13-i386.d b/ld/testsuite/ld-ifunc/ifunc-13-i386.d index 79a64d9..1f6bd95 100644 --- a/ld/testsuite/ld-ifunc/ifunc-13-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-13-i386.d @@ -4,7 +4,7 @@ #as: --32 -mrelax-relocations=yes #readelf: -r --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* Relocation section '.rel.ifunc' at offset 0x[0-9a-f]+ contains 1 entry: [ ]+Offset[ ]+Info[ ]+Type[ ]+.* diff --git a/ld/testsuite/ld-ifunc/ifunc-14a-i386.d b/ld/testsuite/ld-ifunc/ifunc-14a-i386.d index 988f5f3..93a5834 100644 --- a/ld/testsuite/ld-ifunc/ifunc-14a-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-14a-i386.d @@ -4,7 +4,7 @@ #as: --32 #readelf: -d --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* #failif #... diff --git a/ld/testsuite/ld-ifunc/ifunc-14b-i386.d b/ld/testsuite/ld-ifunc/ifunc-14b-i386.d index 42b7ce6..213dc80 100644 --- a/ld/testsuite/ld-ifunc/ifunc-14b-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-14b-i386.d @@ -4,7 +4,7 @@ #as: --32 #readelf: -d --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* #failif #... diff --git a/ld/testsuite/ld-ifunc/ifunc-14c-i386.d b/ld/testsuite/ld-ifunc/ifunc-14c-i386.d index 137b3e9..29960ed 100644 --- a/ld/testsuite/ld-ifunc/ifunc-14c-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-14c-i386.d @@ -4,7 +4,7 @@ #as: --32 #readelf: -r --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* #failif #... diff --git a/ld/testsuite/ld-ifunc/ifunc-14d-i386.d b/ld/testsuite/ld-ifunc/ifunc-14d-i386.d index 094defc..a355d36 100644 --- a/ld/testsuite/ld-ifunc/ifunc-14d-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-14d-i386.d @@ -4,7 +4,7 @@ #as: --32 #readelf: -r --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* #failif #... diff --git a/ld/testsuite/ld-ifunc/ifunc-14e-i386.d b/ld/testsuite/ld-ifunc/ifunc-14e-i386.d index eec7ab6..c47ff3e 100644 --- a/ld/testsuite/ld-ifunc/ifunc-14e-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-14e-i386.d @@ -5,7 +5,7 @@ #as: --32 #readelf: -r --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* #failif #... diff --git a/ld/testsuite/ld-ifunc/ifunc-14f-i386.d b/ld/testsuite/ld-ifunc/ifunc-14f-i386.d index 826ddd3..9f92a71 100644 --- a/ld/testsuite/ld-ifunc/ifunc-14f-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-14f-i386.d @@ -5,7 +5,7 @@ #as: --32 #readelf: -r --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* #failif #... diff --git a/ld/testsuite/ld-ifunc/ifunc-15-i386.d b/ld/testsuite/ld-ifunc/ifunc-15-i386.d index 0c062fd..bac4afe 100644 --- a/ld/testsuite/ld-ifunc/ifunc-15-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-15-i386.d @@ -3,7 +3,7 @@ #as: --32 #readelf: -r --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* Relocation section '.rel.got' at offset 0x[0-9a-f]+ contains 1 entry: [ ]+Offset[ ]+Info[ ]+Type[ ]+.* diff --git a/ld/testsuite/ld-ifunc/ifunc-16-i386-now.d b/ld/testsuite/ld-ifunc/ifunc-16-i386-now.d index ee0e5fd..879976b 100644 --- a/ld/testsuite/ld-ifunc/ifunc-16-i386-now.d +++ b/ld/testsuite/ld-ifunc/ifunc-16-i386-now.d @@ -3,7 +3,7 @@ #as: --32 #readelf: -r --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* Relocation section '.rel.plt' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* diff --git a/ld/testsuite/ld-ifunc/ifunc-16-i386.d b/ld/testsuite/ld-ifunc/ifunc-16-i386.d index bc80fa1..8e0c069 100644 --- a/ld/testsuite/ld-ifunc/ifunc-16-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-16-i386.d @@ -3,7 +3,7 @@ #as: --32 #readelf: -r --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* Relocation section '.rel.plt' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* diff --git a/ld/testsuite/ld-ifunc/ifunc-17a-i386.d b/ld/testsuite/ld-ifunc/ifunc-17a-i386.d index 0c7ff48..1ff40c2 100644 --- a/ld/testsuite/ld-ifunc/ifunc-17a-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-17a-i386.d @@ -4,7 +4,7 @@ #as: --32 #readelf: -s --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* #... +[0-9]+: +[0-9a-f]+ +4 +OBJECT +GLOBAL +DEFAULT +[1-9] foo diff --git a/ld/testsuite/ld-ifunc/ifunc-17b-i386.d b/ld/testsuite/ld-ifunc/ifunc-17b-i386.d index 5704cf1..1d54a90 100644 --- a/ld/testsuite/ld-ifunc/ifunc-17b-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-17b-i386.d @@ -4,7 +4,7 @@ #as: --32 #readelf: -s --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* #... +[0-9]+: +[0-9a-f]+ +4 +OBJECT +GLOBAL +DEFAULT +[1-9] foo diff --git a/ld/testsuite/ld-ifunc/ifunc-18a-i386.d b/ld/testsuite/ld-ifunc/ifunc-18a-i386.d index 348b9f9..e79d136 100644 --- a/ld/testsuite/ld-ifunc/ifunc-18a-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-18a-i386.d @@ -4,7 +4,7 @@ #as: --32 #readelf: -r --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* Relocation section '.rel.ifunc' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* diff --git a/ld/testsuite/ld-ifunc/ifunc-18b-i386.d b/ld/testsuite/ld-ifunc/ifunc-18b-i386.d index 59dfad4..a7d295b 100644 --- a/ld/testsuite/ld-ifunc/ifunc-18b-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-18b-i386.d @@ -4,7 +4,7 @@ #as: --32 #readelf: -r --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* Relocation section '.rel.ifunc' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* diff --git a/ld/testsuite/ld-ifunc/ifunc-19a-i386.d b/ld/testsuite/ld-ifunc/ifunc-19a-i386.d index a2c131e..e2d1917 100644 --- a/ld/testsuite/ld-ifunc/ifunc-19a-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-19a-i386.d @@ -4,7 +4,7 @@ #as: --32 #readelf: -r --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* Relocation section '.rel.ifunc' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* diff --git a/ld/testsuite/ld-ifunc/ifunc-19b-i386.d b/ld/testsuite/ld-ifunc/ifunc-19b-i386.d index 2ca56a2..29f5900 100644 --- a/ld/testsuite/ld-ifunc/ifunc-19b-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-19b-i386.d @@ -4,7 +4,7 @@ #as: --32 #readelf: -r --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* Relocation section '.rel.ifunc' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* diff --git a/ld/testsuite/ld-ifunc/ifunc-2-i386-now.d b/ld/testsuite/ld-ifunc/ifunc-2-i386-now.d index 028093b..533cd78 100644 --- a/ld/testsuite/ld-ifunc/ifunc-2-i386-now.d +++ b/ld/testsuite/ld-ifunc/ifunc-2-i386-now.d @@ -3,7 +3,7 @@ #as: --32 #objdump: -dw #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* .*: +file format .* diff --git a/ld/testsuite/ld-ifunc/ifunc-2-i386.d b/ld/testsuite/ld-ifunc/ifunc-2-i386.d index fb1ad4e..3cf1ef0 100644 --- a/ld/testsuite/ld-ifunc/ifunc-2-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-2-i386.d @@ -2,7 +2,7 @@ #as: --32 #objdump: -dw #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* #... [ \t0-9a-f]+:[ \t0-9a-f]+call[ \t0-9a-f]+<\*ABS\*@plt> diff --git a/ld/testsuite/ld-ifunc/ifunc-2-local-i386-now.d b/ld/testsuite/ld-ifunc/ifunc-2-local-i386-now.d index 4899171..b11324c 100644 --- a/ld/testsuite/ld-ifunc/ifunc-2-local-i386-now.d +++ b/ld/testsuite/ld-ifunc/ifunc-2-local-i386-now.d @@ -3,7 +3,7 @@ #as: --32 #objdump: -dw #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* .*: +file format .* diff --git a/ld/testsuite/ld-ifunc/ifunc-2-local-i386.d b/ld/testsuite/ld-ifunc/ifunc-2-local-i386.d index fb1ad4e..3cf1ef0 100644 --- a/ld/testsuite/ld-ifunc/ifunc-2-local-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-2-local-i386.d @@ -2,7 +2,7 @@ #as: --32 #objdump: -dw #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* #... [ \t0-9a-f]+:[ \t0-9a-f]+call[ \t0-9a-f]+<\*ABS\*@plt> diff --git a/ld/testsuite/ld-ifunc/ifunc-20-i386.d b/ld/testsuite/ld-ifunc/ifunc-20-i386.d index c501b04..5c13856 100644 --- a/ld/testsuite/ld-ifunc/ifunc-20-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-20-i386.d @@ -3,7 +3,7 @@ #as: --32 #readelf: -r --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* Relocation section '.rel.ifunc' at offset 0x[0-9a-f]+ contains 1 entry: [ ]+Offset[ ]+Info[ ]+Type[ ]+.* diff --git a/ld/testsuite/ld-ifunc/ifunc-21-i386.d b/ld/testsuite/ld-ifunc/ifunc-21-i386.d index 9e8759a..12ab848 100644 --- a/ld/testsuite/ld-ifunc/ifunc-21-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-21-i386.d @@ -2,7 +2,7 @@ #as: --32 -mrelax-relocations=yes #objdump: -dw #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* .*: +file format .* diff --git a/ld/testsuite/ld-ifunc/ifunc-22-i386.d b/ld/testsuite/ld-ifunc/ifunc-22-i386.d index 9e8759a..12ab848 100644 --- a/ld/testsuite/ld-ifunc/ifunc-22-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-22-i386.d @@ -2,7 +2,7 @@ #as: --32 -mrelax-relocations=yes #objdump: -dw #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* .*: +file format .* diff --git a/ld/testsuite/ld-ifunc/ifunc-23-x86.s b/ld/testsuite/ld-ifunc/ifunc-23-x86.s index 69c2279..00b60c5 100644 --- a/ld/testsuite/ld-ifunc/ifunc-23-x86.s +++ b/ld/testsuite/ld-ifunc/ifunc-23-x86.s @@ -6,5 +6,7 @@ _start: ret .globl __start __start: + .global _main +_main: .data .dc.a foo diff --git a/ld/testsuite/ld-ifunc/ifunc-24-x86.s b/ld/testsuite/ld-ifunc/ifunc-24-x86.s index 967cdf6..723db4b 100644 --- a/ld/testsuite/ld-ifunc/ifunc-24-x86.s +++ b/ld/testsuite/ld-ifunc/ifunc-24-x86.s @@ -7,5 +7,7 @@ _start: call foo@PLT .globl __start __start: + .global _main +_main: .data .dc.a foo diff --git a/ld/testsuite/ld-ifunc/ifunc-25-x86.s b/ld/testsuite/ld-ifunc/ifunc-25-x86.s index 0549cbf..452592c 100644 --- a/ld/testsuite/ld-ifunc/ifunc-25-x86.s +++ b/ld/testsuite/ld-ifunc/ifunc-25-x86.s @@ -8,5 +8,7 @@ _start: call foo@PLT .globl __start __start: + .global _main +_main: .data .dc.a foo diff --git a/ld/testsuite/ld-ifunc/ifunc-26.d b/ld/testsuite/ld-ifunc/ifunc-26.d index 3b1e9f1..05e380a 100644 --- a/ld/testsuite/ld-ifunc/ifunc-26.d +++ b/ld/testsuite/ld-ifunc/ifunc-26.d @@ -1,7 +1,8 @@ #ld: -shared #readelf: -h +#xfail: alpha-*-* ELF Header: #... - OS/ABI: UNIX - GNU + +OS/ABI: +UNIX - (GNU|FreeBSD) #pass diff --git a/ld/testsuite/ld-ifunc/ifunc-4-local-x86.s b/ld/testsuite/ld-ifunc/ifunc-4-local-x86.s index 4f72d7f..819610e 100644 --- a/ld/testsuite/ld-ifunc/ifunc-4-local-x86.s +++ b/ld/testsuite/ld-ifunc/ifunc-4-local-x86.s @@ -13,6 +13,8 @@ _start: .type __start,"function" .global __start __start: - .type __start,"function" + .type _main,"function" + .global _main +_main: call foo movl $foo,%eax diff --git a/ld/testsuite/ld-ifunc/ifunc-4-x86.s b/ld/testsuite/ld-ifunc/ifunc-4-x86.s index 1c7e07e..7d02f5c 100644 --- a/ld/testsuite/ld-ifunc/ifunc-4-x86.s +++ b/ld/testsuite/ld-ifunc/ifunc-4-x86.s @@ -14,6 +14,8 @@ _start: .type __start,"function" .global __start __start: - .type __start,"function" + .type _main,"function" + .global _main +_main: call foo movl $foo,%eax diff --git a/ld/testsuite/ld-ifunc/ifunc-5a-i386.d b/ld/testsuite/ld-ifunc/ifunc-5a-i386.d index 51e4632..3fd52a6 100644 --- a/ld/testsuite/ld-ifunc/ifunc-5a-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-5a-i386.d @@ -3,7 +3,7 @@ #as: --32 #readelf: -r --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* Relocation section '.rel.plt' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* diff --git a/ld/testsuite/ld-ifunc/ifunc-5a-local-i386.d b/ld/testsuite/ld-ifunc/ifunc-5a-local-i386.d index 3df5f6b..979d5b9 100644 --- a/ld/testsuite/ld-ifunc/ifunc-5a-local-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-5a-local-i386.d @@ -3,7 +3,7 @@ #as: --32 #readelf: -r --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* Relocation section '.rel.plt' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* diff --git a/ld/testsuite/ld-ifunc/ifunc-5b-i386.d b/ld/testsuite/ld-ifunc/ifunc-5b-i386.d index f47a195..3d9aa27 100644 --- a/ld/testsuite/ld-ifunc/ifunc-5b-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-5b-i386.d @@ -3,7 +3,7 @@ #as: --32 #readelf: -r --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* Relocation section '.rel.got' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* diff --git a/ld/testsuite/ld-ifunc/ifunc-5b-local-i386.d b/ld/testsuite/ld-ifunc/ifunc-5b-local-i386.d index be8db75..0af572c 100644 --- a/ld/testsuite/ld-ifunc/ifunc-5b-local-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-5b-local-i386.d @@ -3,7 +3,7 @@ #as: --32 #readelf: -r --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* Relocation section '.rel.plt' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* diff --git a/ld/testsuite/ld-ifunc/ifunc-5r-local-i386.d b/ld/testsuite/ld-ifunc/ifunc-5r-local-i386.d index 6e7a8b3..3eccf93 100644 --- a/ld/testsuite/ld-ifunc/ifunc-5r-local-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-5r-local-i386.d @@ -3,7 +3,7 @@ #as: --32 #readelf: -r --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* Relocation section '.rel.text' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* diff --git a/ld/testsuite/ld-ifunc/ifunc-6a-i386.d b/ld/testsuite/ld-ifunc/ifunc-6a-i386.d index c4fa10e..3dc853a 100644 --- a/ld/testsuite/ld-ifunc/ifunc-6a-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-6a-i386.d @@ -3,7 +3,7 @@ #as: --32 #readelf: -r --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* Relocation section '.rel.plt' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* diff --git a/ld/testsuite/ld-ifunc/ifunc-6b-i386.d b/ld/testsuite/ld-ifunc/ifunc-6b-i386.d index 6ed595b..5809f08 100644 --- a/ld/testsuite/ld-ifunc/ifunc-6b-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-6b-i386.d @@ -3,7 +3,7 @@ #as: --32 #readelf: -r --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* Relocation section '.rel.got' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* diff --git a/ld/testsuite/ld-ifunc/ifunc-7a-i386.d b/ld/testsuite/ld-ifunc/ifunc-7a-i386.d index fda1fb9..dfe3028 100644 --- a/ld/testsuite/ld-ifunc/ifunc-7a-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-7a-i386.d @@ -3,7 +3,7 @@ #as: --32 #readelf: -r --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* Relocation section '.rel.plt' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* diff --git a/ld/testsuite/ld-ifunc/ifunc-7b-i386.d b/ld/testsuite/ld-ifunc/ifunc-7b-i386.d index 66f5a62..427fa2b 100644 --- a/ld/testsuite/ld-ifunc/ifunc-7b-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-7b-i386.d @@ -3,7 +3,7 @@ #as: --32 #readelf: -r --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* Relocation section '.rel.plt' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* diff --git a/ld/testsuite/ld-ifunc/ifunc-8-i386.d b/ld/testsuite/ld-ifunc/ifunc-8-i386.d index 3730a4f..0930c2c 100644 --- a/ld/testsuite/ld-ifunc/ifunc-8-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-8-i386.d @@ -4,7 +4,7 @@ #as: --32 #readelf: -r --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* Relocation section '.rel.plt' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* diff --git a/ld/testsuite/ld-ifunc/ifunc-9-i386.d b/ld/testsuite/ld-ifunc/ifunc-9-i386.d index adf8471..dba1ac1 100644 --- a/ld/testsuite/ld-ifunc/ifunc-9-i386.d +++ b/ld/testsuite/ld-ifunc/ifunc-9-i386.d @@ -3,7 +3,7 @@ #ld: -m elf_i386 --export-dynamic #readelf: -r --wide #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* Relocation section '.rel.plt' at .* [ ]+Offset[ ]+Info[ ]+Type[ ]+.* diff --git a/ld/testsuite/ld-ifunc/ifunc.exp b/ld/testsuite/ld-ifunc/ifunc.exp index 4e9e83b..384ded0 100644 --- a/ld/testsuite/ld-ifunc/ifunc.exp +++ b/ld/testsuite/ld-ifunc/ifunc.exp @@ -23,18 +23,27 @@ # Written by Nick Clifton <nickc@redhat.com> -# IFUNC support has only been implemented for the ix86, x86_64, powerpc, -# aarch64, sparc, and S/390 so far. -if {!(([istarget "i?86-*-*"] - || [istarget "x86_64-*-*"] - || [istarget "powerpc*-*-*"] - || [istarget "aarch64*-*-*"] - || [istarget "sparc*-*-*"] - || [istarget "s390*-*-*"]) - && ([istarget "*-*-elf*"] - || [istarget "*-*-nacl*"] - || [istarget "*-*-linux*"] - || [istarget "*-*-gnu*"])) } { +if { ![is_elf_format] || ![supports_gnu_osabi] + || [istarget arc*-*-*] + || [istarget am33*-*-*] + || [istarget bfin-*-*] + || [istarget cris*-*-*] + || [istarget frv-*-*] + || [istarget lm32-*-*] + || [istarget m32r-*-*] + || [istarget m68k-*-*] + || [istarget microblaze-*-*] + || [istarget mips*-*-*] + || [istarget mn10300-*-*] + || [istarget nds32*-*-*] + || [istarget nios2-*-*] + || [istarget or1k-*-*] + || [istarget riscv*-*-*] + || [istarget score*-*-*] + || [istarget sh*-*-*] + || [istarget tic6x-*-*] + || [istarget tile*-*-*] + || [istarget vax-*-*] } { verbose "IFUNC tests not run - target does not support IFUNC" return } @@ -139,7 +148,7 @@ proc contains_irelative_reloc { binary_file } { # 080496f4 0000002a R_386_IRELATIVE - if { ![regexp "\[0-9a-f\]+\[ \]+\[0-9a-f\]+\[ \]+R_\[_0-9A-Z\]+_IREL(|ATIVE)\[ \]*\[0-9a-f\]*\n" [file_contents readelf.out]] } { + if { ![regexp "\[0-9a-f\]+\[ \]+\[0-9a-f\]+\[ \]+R_(\[_0-9A-Z\]+_IREL(|ATIVE)|PARISC_IPLT)\[ \]*\[0-9a-f\]*\n" [file_contents readelf.out]] } { return 0 } diff --git a/ld/testsuite/ld-ifunc/lib.c b/ld/testsuite/ld-ifunc/lib.c index 393dabf..4b24c23 100644 --- a/ld/testsuite/ld-ifunc/lib.c +++ b/ld/testsuite/ld-ifunc/lib.c @@ -20,7 +20,7 @@ extern __typeof (library_func2) library_func2 __asm__ ("__GI_library_func2"); __asm__(".global __GI_library_func2"); __asm__(".hidden __GI_library_func2"); -__asm__(".set __GI_library_func2, library_func2"); +__asm__("__GI_library_func2 = library_func2"); int library_func (int x) diff --git a/ld/testsuite/ld-ifunc/pr17154-i386-now.d b/ld/testsuite/ld-ifunc/pr17154-i386-now.d index 7f8c6bb..74d653c 100644 --- a/ld/testsuite/ld-ifunc/pr17154-i386-now.d +++ b/ld/testsuite/ld-ifunc/pr17154-i386-now.d @@ -3,7 +3,7 @@ #as: --32 #objdump: -dw #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* .*: +file format .* diff --git a/ld/testsuite/ld-ifunc/pr17154-i386.d b/ld/testsuite/ld-ifunc/pr17154-i386.d index 6d7c9a6..6fc8fbe 100644 --- a/ld/testsuite/ld-ifunc/pr17154-i386.d +++ b/ld/testsuite/ld-ifunc/pr17154-i386.d @@ -3,7 +3,7 @@ #as: --32 #objdump: -dw #target: x86_64-*-* i?86-*-* -#notarget: x86_64-*-nacl* i?86-*-nacl* +#notarget: *-*-lynxos *-*-nacl* *-*-nto* *-*-solaris2* #... 0+180 <.*>: |