aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2020-02-06 11:23:43 +1030
committerAlan Modra <amodra@gmail.com>2020-02-06 13:59:40 +1030
commitbb4e012ca040df594ed16d23e1a565754b686c6f (patch)
tree2d5ea354973b3c411ba061b578c9409a5462b5f7 /ld
parent19234a6d36237205dc3aa2e4d495eff2713ec342 (diff)
downloadgdb-bb4e012ca040df594ed16d23e1a565754b686c6f.zip
gdb-bb4e012ca040df594ed16d23e1a565754b686c6f.tar.gz
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')
-rw-r--r--ld/ChangeLog52
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-10-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-11-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-12-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-13-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-14a-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-14b-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-14c-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-14d-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-14e-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-14f-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-15-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-16-i386-now.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-16-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-17a-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-17b-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-18a-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-18b-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-19a-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-19b-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-2-i386-now.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-2-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-2-local-i386-now.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-2-local-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-20-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-21-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-22-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-23-x86.s2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-24-x86.s2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-25-x86.s2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-26.d3
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-4-local-x86.s4
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-4-x86.s4
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-5a-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-5a-local-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-5b-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-5b-local-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-5r-local-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-6a-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-6b-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-7a-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-7b-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-8-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc-9-i386.d2
-rw-r--r--ld/testsuite/ld-ifunc/ifunc.exp35
-rw-r--r--ld/testsuite/ld-ifunc/lib.c2
-rw-r--r--ld/testsuite/ld-ifunc/pr17154-i386-now.d2
-rw-r--r--ld/testsuite/ld-ifunc/pr17154-i386.d2
48 files changed, 128 insertions, 56 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 21f51c9..29630cb 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,5 +1,57 @@
2020-02-06 Alan Modra <amodra@gmail.com>
+ * 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.
+
+2020-02-06 Alan Modra <amodra@gmail.com>
+
* testsuite/lib/ld-lib.exp (is_generic): Delete.
* testsuite/ld-unique/unique.exp: Exclude tic6x.
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 <.*>: