aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2021-02-04 13:56:34 +1030
committerAlan Modra <amodra@gmail.com>2021-02-04 14:09:51 +1030
commit7d409ac001cce916661d345bff01ed589991e762 (patch)
tree54fd12705df6bf79810fd58f3fe6ca566891da0d /ld
parente3714e037b711bb5ed794dbfe2064aa4f8ff252c (diff)
downloadfsf-binutils-gdb-7d409ac001cce916661d345bff01ed589991e762.zip
fsf-binutils-gdb-7d409ac001cce916661d345bff01ed589991e762.tar.gz
fsf-binutils-gdb-7d409ac001cce916661d345bff01ed589991e762.tar.bz2
PR27311, (symbol from plugin): undefined reference, hidden sym
bfd/ PR 27311 * elflink.c (elf_link_add_object_symbols): Don't pull in as-needed libraries for IR references on pass over libraries after LTO recompilation. ld/ * testsuite/ld-plugin/pr27311d.c: New test. * testsuite/ld-plugin/lto.exp: Rename pr27311 to pr27311-1, compile and link new test as pr27311-2.
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog6
-rw-r--r--ld/testsuite/ld-plugin/lto.exp10
-rw-r--r--ld/testsuite/ld-plugin/pr27311d.c5
3 files changed, 19 insertions, 2 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index e5f9bea..cf5217b 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,9 @@
+2021-02-04 Alan Modra <amodra@gmail.com>
+
+ * testsuite/ld-plugin/pr27311d.c: New test.
+ * testsuite/ld-plugin/lto.exp: Rename pr27311 to pr27311-1, compile
+ and link new test as pr27311-2.
+
2021-02-03 Alan Modra <amodra@gmail.com>
* testsuite/ld-ifunc/ifunc.exp (libpr16467b.so, libpr16467bn.so):
diff --git a/ld/testsuite/ld-plugin/lto.exp b/ld/testsuite/ld-plugin/lto.exp
index 324adcd..c96617f 100644
--- a/ld/testsuite/ld-plugin/lto.exp
+++ b/ld/testsuite/ld-plugin/lto.exp
@@ -424,9 +424,15 @@ set lto_link_elf_tests [list \
[list {pr27311c.o} \
{} {-flto} \
{pr27311c.c} {} {} {c}] \
- [list {pr27311} \
+ [list {pr27311d.o} \
+ {} {-flto} \
+ {pr27311d.c} {} {} {c}] \
+ [list {pr27311-1} \
{tmpdir/pr27311c.o -Wl,--no-as-needed,--rpath-link=. tmpdir/pr27311b.so} {} \
- {dummy.c} {{readelf {--dyn-syms --wide} pr27311.d}} {pr27311}] \
+ {dummy.c} {{readelf {--dyn-syms --wide} pr27311.d}} {pr27311-1}] \
+ [list {pr27311-2} \
+ {tmpdir/pr27311d.o -Wl,--no-as-needed,--rpath-link=. tmpdir/pr27311b.so} {} \
+ {dummy.c} {{readelf {--dyn-syms --wide} pr27311.d}} {pr27311-2}] \
]
# PR 14918 checks that libgcc is not spuriously included in a shared link of
diff --git a/ld/testsuite/ld-plugin/pr27311d.c b/ld/testsuite/ld-plugin/pr27311d.c
new file mode 100644
index 0000000..11e4ba4
--- /dev/null
+++ b/ld/testsuite/ld-plugin/pr27311d.c
@@ -0,0 +1,5 @@
+__attribute__((visibility("hidden"))) void inlib1(void) {}
+int main()
+{
+ return 0;
+}