diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2016-06-22 05:37:24 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2016-06-22 05:37:38 -0700 |
commit | 647e4d46495f2bfb0950fd1066c8a660173cca40 (patch) | |
tree | aa635b99d89cedde44d81afb3b110187bf05cb6f /ld/configure.tgt | |
parent | 6edaf4d75b45ff08d7296095506904663b8f0576 (diff) | |
download | gdb-647e4d46495f2bfb0950fd1066c8a660173cca40.zip gdb-647e4d46495f2bfb0950fd1066c8a660173cca40.tar.gz gdb-647e4d46495f2bfb0950fd1066c8a660173cca40.tar.bz2 |
ld: Add a linker configure option --enable-relro
Add a configure option --enable-relro to decide whether -z relro should
be enabled in ELF linker by default. Default to yes for all Linux
targets, except FRV, HPPA, IA64 and MIPS, since many relro tests fail
on these targets.
PR ld/20283
* NEWS: Mention --enable-relro.
* configure.ac: Add --enable-relro.
(DEFAULT_LD_Z_RELRO): New. Set by --enable-relro.
* configure.tgt (ac_default_ld_z_relro): Default it to 1 for
some Linux targets.
* config.in: Regenerated.
* configure: Likewise.
* emultempl/elf32.em (gld${EMULATION_NAME}_before_parse): Set
link_info.relro to DEFAULT_LD_Z_RELRO.
* testsuite/config/default.exp (ld_elf_shared_opt): New.
* testsuite/lib/ld-lib.exp (run_dump_test): Pass
$ld_elf_shared_opt to ld for ELF targets with shared object
support.
(run_ld_link_tests): Likewise.
Diffstat (limited to 'ld/configure.tgt')
-rw-r--r-- | ld/configure.tgt | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/ld/configure.tgt b/ld/configure.tgt index 6251943..a3db909 100644 --- a/ld/configure.tgt +++ b/ld/configure.tgt @@ -882,3 +882,28 @@ alpha*-*-*) ;; esac + +case "${target}" in +frv-*-* | hppa*-*-* | ia64-*-* | mips*-*-*) + # Don't enable -z relro by default since many relro tests fail on these + # targets: + # FAIL: strip -z relro (relro1) + # FAIL: strip -z relro -shared (relro1) + # FAIL: objcopy -z relro (relro1) + # FAIL: objcopy -z relro -shared (relro1) + # FAIL: objcopy -z relro (tdata1) + # FAIL: objcopy -shared -z relro (tdata1) + # FAIL: objcopy -z relro (tdata2) + # FAIL: objcopy -shared -z relro (tdata2) + # FAIL: objcopy -z relro (tdata3) + # FAIL: objcopy -shared -z relro (tdata3) + # FAIL: objcopy -shared -z relro (tbss1) + # FAIL: objcopy -shared -z relro (tbss2) + # FAIL: objcopy -shared -z relro (tbss3) + ;; +*-*-linux*) + if test ${ac_default_ld_z_relro} = unset; then + ac_default_ld_z_relro=1 + fi + ;; +esac |