diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2016-04-20 05:26:37 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2016-04-20 05:26:51 -0700 |
commit | d968975277ba280372002800c6c25bb1b29f496e (patch) | |
tree | 29d4db50c48d2c22af2e4b8881a3be49dc5bbf57 /include | |
parent | 6885166d994162c92dc9053bdf2d87e67a452db3 (diff) | |
download | gdb-d968975277ba280372002800c6c25bb1b29f496e.zip gdb-d968975277ba280372002800c6c25bb1b29f496e.tar.gz gdb-d968975277ba280372002800c6c25bb1b29f496e.tar.bz2 |
Check ELF relocs after opening all input files
Delaying checking ELF relocations until opening all input files so
that symbol information is final when relocations are checked. This
is only enabled for x86 targets.
bfd/
* elf-bfd.h (_bfd_elf_link_check_relocs): New.
* elflink.c (_bfd_elf_link_check_relocs): New function.
(elf_link_add_object_symbols): Call _bfd_elf_link_check_relocs
if check_relocs_after_open_input is FALSE.
include/
* bfdlink.h (bfd_link_info): Add check_relocs_after_open_input.
ld/
* emulparams/elf32_x86_64.sh (CHECK_RELOCS_AFTER_OPEN_INPUT):
New.
* emulparams/elf_i386.sh (CHECK_RELOCS_AFTER_OPEN_INPUT):
Likewise.
* emulparams/elf_i386_be.sh (CHECK_RELOCS_AFTER_OPEN_INPUT):
Likewise.
* emulparams/elf_i386_chaos.sh (CHECK_RELOCS_AFTER_OPEN_INPUT):
Likewise.
* emulparams/elf_i386_ldso.sh (CHECK_RELOCS_AFTER_OPEN_INPUT):
Likewise.
* emulparams/elf_i386_vxworks.sh (CHECK_RELOCS_AFTER_OPEN_INPUT):
Likewise.
* emulparams/elf_x86_64.sh (CHECK_RELOCS_AFTER_OPEN_INPUT):
Likewise.
* emulparams/i386nto.sh (CHECK_RELOCS_AFTER_OPEN_INPUT):
Likewise.
* emultempl/elf32.em (gld${EMULATION_NAME}_before_parse):
Set check_relocs_after_open_input to TRUE if
CHECK_RELOCS_AFTER_OPEN_INPUT is yes.
(gld${EMULATION_NAME}_after_open): Call
_bfd_elf_link_check_relocs on all inputs if
check_relocs_after_open_input is TRUE.
Diffstat (limited to 'include')
-rw-r--r-- | include/ChangeLog | 4 | ||||
-rw-r--r-- | include/bfdlink.h | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/include/ChangeLog b/include/ChangeLog index c4bc144..a419ef2 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,7 @@ +2016-04-20 H.J. Lu <hongjiu.lu@intel.com> + + * bfdlink.h (bfd_link_info): Add check_relocs_after_open_input. + 2016-04-20 Andrew Burgess <andrew.burgess@embecosm.com> * elf/arc-reloc.def (ARC_NPS_CMEM16): Add ME modifier to formula. diff --git a/include/bfdlink.h b/include/bfdlink.h index a285f6d..90467b5 100644 --- a/include/bfdlink.h +++ b/include/bfdlink.h @@ -440,6 +440,10 @@ struct bfd_link_info /* TRUE if the linker script contained an explicit PHDRS command. */ unsigned int user_phdrs: 1; + /* TRUE if we should check relocations after all input files have + been opened. */ + unsigned int check_relocs_after_open_input: 1; + /* TRUE if BND prefix in PLT entries is always generated. */ unsigned int bndplt: 1; |