From bfece7562d62f11782ca7089310b4063be526fb2 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Fri, 26 Feb 2021 13:26:19 +1030 Subject: [PATCH] Add PR27441 testcase PR 27441 * testsuite/ld-plugin/pr27441a.c, * testsuite/ld-plugin/pr27441b.c, * testsuite/ld-plugin/pr27441c.c, * testsuite/ld-plugin/pr27441c.d: New test. * testsuite/ld-plugin/lto.exp: Run it. --- ld/ChangeLog | 9 +++++++++ ld/testsuite/ld-plugin/lto.exp | 12 ++++++++++++ ld/testsuite/ld-plugin/pr27441a.c | 2 ++ ld/testsuite/ld-plugin/pr27441b.c | 1 + ld/testsuite/ld-plugin/pr27441c.c | 8 ++++++++ ld/testsuite/ld-plugin/pr27441c.d | 4 ++++ 6 files changed, 36 insertions(+) create mode 100644 ld/testsuite/ld-plugin/pr27441a.c create mode 100644 ld/testsuite/ld-plugin/pr27441b.c create mode 100644 ld/testsuite/ld-plugin/pr27441c.c create mode 100644 ld/testsuite/ld-plugin/pr27441c.d diff --git a/ld/ChangeLog b/ld/ChangeLog index a94be7526b..6540407237 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,12 @@ +2021-02-26 Alan Modra + + PR 27441 + * testsuite/ld-plugin/pr27441a.c, + * testsuite/ld-plugin/pr27441b.c, + * testsuite/ld-plugin/pr27441c.c, + * testsuite/ld-plugin/pr27441c.d: New test. + * testsuite/ld-plugin/lto.exp: Run it. + 2021-02-25 Jan Beulich * ld.texi (PROVIDE): Downgrade "error" to "diagnostic". diff --git a/ld/testsuite/ld-plugin/lto.exp b/ld/testsuite/ld-plugin/lto.exp index 38cea30aed..2271211367 100644 --- a/ld/testsuite/ld-plugin/lto.exp +++ b/ld/testsuite/ld-plugin/lto.exp @@ -448,6 +448,18 @@ set lto_link_elf_tests [list \ [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}] \ + [list {pr27441a.so} \ + {-shared} {-fPIC} \ + {pr27441a.c} {} {pr27441a.so}] \ + [list {pr27441b.so} \ + {-shared} {-fPIC} \ + {pr27441b.c} {} {pr27441b.so}] \ + [list {pr27441c.o} \ + {} {-fPIC -flto} \ + {pr27441c.c} {} {}] \ + [list {pr27441c.so} \ + {-shared -fPIC -Wl,--as-needed tmpdir/pr27441c.o tmpdir/pr27441b.so tmpdir/pr27441a.so} {-fPIC} \ + {dummy.c} {{readelf {-dW} pr27441c.d}} {pr27441c.so}] \ ] # PR 14918 checks that libgcc is not spuriously included in a shared link of diff --git a/ld/testsuite/ld-plugin/pr27441a.c b/ld/testsuite/ld-plugin/pr27441a.c new file mode 100644 index 0000000000..59034df4ad --- /dev/null +++ b/ld/testsuite/ld-plugin/pr27441a.c @@ -0,0 +1,2 @@ +int func1 (void) { return 1; } +int func2 (void) { return 2; } diff --git a/ld/testsuite/ld-plugin/pr27441b.c b/ld/testsuite/ld-plugin/pr27441b.c new file mode 100644 index 0000000000..9f2ed199ba --- /dev/null +++ b/ld/testsuite/ld-plugin/pr27441b.c @@ -0,0 +1 @@ +int __attribute__((weak)) func1 (void) { return 3; } diff --git a/ld/testsuite/ld-plugin/pr27441c.c b/ld/testsuite/ld-plugin/pr27441c.c new file mode 100644 index 0000000000..207a183ca2 --- /dev/null +++ b/ld/testsuite/ld-plugin/pr27441c.c @@ -0,0 +1,8 @@ +extern int func1 (void); +extern int func2 (void); + +int +callthem (void) +{ + return func1 () + func2 (); +} diff --git a/ld/testsuite/ld-plugin/pr27441c.d b/ld/testsuite/ld-plugin/pr27441c.d new file mode 100644 index 0000000000..d0bea66218 --- /dev/null +++ b/ld/testsuite/ld-plugin/pr27441c.d @@ -0,0 +1,4 @@ +#... + .* \(NEEDED\) +Shared library: \[tmpdir/pr27441b.so\] + .* \(NEEDED\) +Shared library: \[tmpdir/pr27441a.so\] +#pass -- 2.34.1