diff options
Diffstat (limited to 'ld/testsuite')
-rw-r--r-- | ld/testsuite/ld-plugin/lto.exp | 34 | ||||
-rw-r--r-- | ld/testsuite/ld-plugin/pr31615.ver | 4 | ||||
-rw-r--r-- | ld/testsuite/ld-plugin/pr31615a.c | 8 | ||||
-rw-r--r-- | ld/testsuite/ld-plugin/pr31615b.c | 7 | ||||
-rw-r--r-- | ld/testsuite/ld-plugin/pr31615c.c | 8 | ||||
-rw-r--r-- | ld/testsuite/ld-plugin/pr31615d.c | 5 |
6 files changed, 66 insertions, 0 deletions
diff --git a/ld/testsuite/ld-plugin/lto.exp b/ld/testsuite/ld-plugin/lto.exp index b56d71a..35ce387 100644 --- a/ld/testsuite/ld-plugin/lto.exp +++ b/ld/testsuite/ld-plugin/lto.exp @@ -555,6 +555,30 @@ set lto_link_elf_tests [list \ "" \ "pr31482c.so" \ ] \ + [list \ + "Build pr31615b.so" \ + "-shared -Wl,--version-script=pr31615.ver" \ + "-fPIC" \ + {pr31615b.c} \ + "" \ + "pr31615b.so" \ + ] \ + [list \ + "Build pr31615c.so" \ + "-shared -Wl,--version-script=pr31615.ver" \ + "-fPIC" \ + {pr31615c.c} \ + "" \ + "pr31615c.so" \ + ] \ + [list \ + "Build pr31615d.so" \ + "-shared -Wl,--version-script=pr31615.ver" \ + "-fPIC" \ + {pr31615d.c} \ + "" \ + "pr31615d.so" \ + ] \ ] # PR 14918 checks that libgcc is not spuriously included in a shared link of @@ -754,6 +778,16 @@ set lto_run_elf_shared_tests [list \ {-Wl,--as-needed,-R,tmpdir} {} \ {pr31482a.c} {pr31489b.exe} {pass1.out} {-flto} {c} {} \ {tmpdir/pr31482c.so tmpdir/pr31482b.a}] \ + [list {pr31615a} \ + {-Wl,-R,tmpdir} {} \ + {pr31615a.c} {pr31615a.exe} {pass.out} {-O3 -flto} {c} {} \ + {-Wl,--as-needed tmpdir/pr31615b.so -Wl,--no-as-needed \ + tmpdir/pr31615d.so}] \ + [list {pr31615b} \ + {-Wl,-R,tmpdir} {} \ + {pr31615a.c} {pr31615b.exe} {pass.out} {-O3 -flto} {c} {} \ + {-Wl,--as-needed tmpdir/pr31615c.so -Wl,--no-as-needed \ + tmpdir/pr31615d.so}] \ ] # LTO run-time tests for ELF diff --git a/ld/testsuite/ld-plugin/pr31615.ver b/ld/testsuite/ld-plugin/pr31615.ver new file mode 100644 index 0000000..f1e1f9d --- /dev/null +++ b/ld/testsuite/ld-plugin/pr31615.ver @@ -0,0 +1,4 @@ +BAR { +global: + bar; +}; diff --git a/ld/testsuite/ld-plugin/pr31615a.c b/ld/testsuite/ld-plugin/pr31615a.c new file mode 100644 index 0000000..450b2d5 --- /dev/null +++ b/ld/testsuite/ld-plugin/pr31615a.c @@ -0,0 +1,8 @@ +extern void bar (); + +int +main() +{ + bar (); + return 0; +} diff --git a/ld/testsuite/ld-plugin/pr31615b.c b/ld/testsuite/ld-plugin/pr31615b.c new file mode 100644 index 0000000..973dc31 --- /dev/null +++ b/ld/testsuite/ld-plugin/pr31615b.c @@ -0,0 +1,7 @@ +#include <stdio.h> + +void +bar (void) +{ + printf ("PASS\n"); +} diff --git a/ld/testsuite/ld-plugin/pr31615c.c b/ld/testsuite/ld-plugin/pr31615c.c new file mode 100644 index 0000000..dbe0788 --- /dev/null +++ b/ld/testsuite/ld-plugin/pr31615c.c @@ -0,0 +1,8 @@ +#include <stdio.h> + +__attribute__ ((weak)) +void +bar (void) +{ + printf ("PASS\n"); +} diff --git a/ld/testsuite/ld-plugin/pr31615d.c b/ld/testsuite/ld-plugin/pr31615d.c new file mode 100644 index 0000000..352f598 --- /dev/null +++ b/ld/testsuite/ld-plugin/pr31615d.c @@ -0,0 +1,5 @@ +__attribute__ ((weak)) +void +bar (void) +{ +} |