diff --git a/ld/ChangeLog b/ld/ChangeLog index 2dfc0a4948..1f752e77cd 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,8 @@ +2017-06-22 H.J. Lu + + * testsuite/ld-i386/i386.exp: Run weakundef1 tests. + * testsuite/ld-i386/weakundef1.c: New file. + 2017-06-22 H.J. Lu PR ld/21090 diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp index ac4fe33d33..6c53046193 100644 --- a/ld/testsuite/ld-i386/i386.exp +++ b/ld/testsuite/ld-i386/i386.exp @@ -1235,6 +1235,32 @@ if { [isnative] } } +# Must be native with the C compiler. +if { [isnative] + && [istarget "i?86-*-*"] + && [which $CC] != 0 } { + run_ld_link_exec_tests [list \ + [list \ + "Run weakundef1 without PIE" \ + "$NOPIE_LDFLAGS" \ + "" \ + { weakundef1.c } \ + "weakundef1pie" \ + "pass.out" \ + "$NOPIE_CFLAGS" \ + ] \ + [list \ + "Run weakundef1 with PIE" \ + "-pie" \ + "" \ + { weakundef1.c } \ + "weakundef1pie" \ + "pass.out" \ + "-fPIE" \ + ] \ + ] +} + if { !([istarget "i?86-*-linux*"] || [istarget "x86_64-*-linux*"]) } { return diff --git a/ld/testsuite/ld-i386/weakundef1.c b/ld/testsuite/ld-i386/weakundef1.c new file mode 100644 index 0000000000..ca54a5e11c --- /dev/null +++ b/ld/testsuite/ld-i386/weakundef1.c @@ -0,0 +1,16 @@ +#include +#include + +extern int visibility_var_weak + __attribute__ ((weak, visibility ("hidden"))); + +int +main () +{ + if (&visibility_var_weak != NULL) + abort (); + + printf ("PASS\n"); + + return 0; +}