mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-25 21:41:47 +08:00
Add a compile-time test for PR ld/22269
This compile-time test requires a target C compiler to run. It fails on many targets where ELF backend linkers fail to check undefined weak symbol in static PIE via UNDEFWEAK_NO_DYNAMIC_RELOC. PR ld/22269 * testsuite/ld-elf/pr22269-1.rd: New file. * testsuite/ld-elf/pr22269-1.c: Likewise. * testsuite/ld-elf/shared.exp: Run pr22269-1.
This commit is contained in:
@ -1,3 +1,10 @@
|
|||||||
|
2017-10-20 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
PR ld/22269
|
||||||
|
* testsuite/ld-elf/pr22269-1.rd: New file.
|
||||||
|
* testsuite/ld-elf/pr22269-1.c: Likewise.
|
||||||
|
* testsuite/ld-elf/shared.exp: Run pr22269-1.
|
||||||
|
|
||||||
2017-10-19 Palmer Dabbelt <palmer@dabbelt.com>
|
2017-10-19 Palmer Dabbelt <palmer@dabbelt.com>
|
||||||
|
|
||||||
* emultempl/riscvelf.em (riscv_elf_before_allocation): Add a
|
* emultempl/riscvelf.em (riscv_elf_before_allocation): Add a
|
||||||
|
8
ld/testsuite/ld-elf/pr22269-1.c
Normal file
8
ld/testsuite/ld-elf/pr22269-1.c
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
extern int foo __attribute ((weak));
|
||||||
|
|
||||||
|
int
|
||||||
|
_start (void)
|
||||||
|
{
|
||||||
|
if (&foo)
|
||||||
|
return foo;
|
||||||
|
}
|
5
ld/testsuite/ld-elf/pr22269-1.rd
Normal file
5
ld/testsuite/ld-elf/pr22269-1.rd
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# NONE relocs are not needed in a PIE.
|
||||||
|
#failif
|
||||||
|
#...
|
||||||
|
[0-9a-f]+ +[0-9a-f]+ +R_.*_NONE.*
|
||||||
|
#pass
|
@ -465,6 +465,19 @@ set build_tests {
|
|||||||
|
|
||||||
run_cc_link_tests $build_tests
|
run_cc_link_tests $build_tests
|
||||||
|
|
||||||
|
run_ld_link_tests [list \
|
||||||
|
[list \
|
||||||
|
"Build pr22269-1" \
|
||||||
|
"-pie -e _start --no-dynamic-linker -z text" \
|
||||||
|
"" \
|
||||||
|
"" \
|
||||||
|
{ pr22269-1.c } \
|
||||||
|
{{readelf -rW pr22269-1.rd}} \
|
||||||
|
"pr22269-1" \
|
||||||
|
"-fPIE -O2" \
|
||||||
|
] \
|
||||||
|
]
|
||||||
|
|
||||||
set run_tests [list \
|
set run_tests [list \
|
||||||
[list "Run normal with libfoo.so" \
|
[list "Run normal with libfoo.so" \
|
||||||
"-Wl,--no-as-needed tmpdir/begin.o tmpdir/libfoo.so tmpdir/end.o" "" \
|
"-Wl,--no-as-needed tmpdir/begin.o tmpdir/libfoo.so tmpdir/end.o" "" \
|
||||||
|
Reference in New Issue
Block a user