diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2016-03-13 19:40:18 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2016-03-14 06:07:56 -0700 |
commit | c6ebff7349b602bdd670e9c170cb4aa111a293a7 (patch) | |
tree | b9ad30bcb99fb97257c235c673ce7bf1d81e7bfe /ld/Makefile.am | |
parent | 2159c3f1e6c191b1f80b8160caa92bccae2eb8f0 (diff) | |
download | binutils-gdb-users/hjl/pr19807.tar.gz |
Add -z upper-address=ADDRESS option to x86-64 ldusers/hjl/pr19807
Add -z upper-address=ADDRESS command-line option to the x86-64 ELF
linker to limit the upper load address to ADDRESS. This can be used
to avoid relocation overflow in PIE if PIE will only be loaded below
ADDRESS at run-time.
bfd/
PR ld/19807
* elf64-x86-64.c (elf_x86_64_relocate_section): Check
upper_address for R_X86_64_32/R_X86_64_32S relocation overflow.
include/
PR ld/19807
* bfdlink.h (bfd_link_info): Add upper_address.
ld/
PR ld/19807
* Makefile.am (ELF_X86_DEPS): Add
$(srcdir)/emulparams/upper_address.sh.
* Makefile.in: Regenerated.
* NEWS: Mention -z upper-address=ADDRESS.
* ld.texinfo: Document -z upper-address=ADDRESS.
* ldmain.c (main): Initialize link_info.upper_address to -1.
* emulparams/elf32_x86_64.sh: Source
${srcdir}/emulparams/upper_address.sh.
* emulparams/elf_x86_64.sh: Likewise.
* emulparams/upper_address.sh: New file.
* testsuite/ld-x86-64/pr19807-1a.d: New file.
* testsuite/ld-x86-64/pr19807-1a.s: Likewise.
* testsuite/ld-x86-64/pr19807-1b.d: Likewise.
* testsuite/ld-x86-64/pr19807-1b.s: Likewise.
* testsuite/ld-x86-64/pr19807-1b.d: Likewise.
* testsuite/ld-x86-64/pr19807-1c.d: Likewise.
* testsuite/ld-x86-64/pr19807-1d.d: Likewise.
* testsuite/ld-x86-64/pr19807-1e.d: Likewise.
* testsuite/ld-x86-64/pr19807-1f.d: Likewise.
* testsuite/ld-x86-64/pr19807-1g.d: Likewise.
* testsuite/ld-x86-64/pr19807-1h.d: Likewise.
* testsuite/ld-x86-64/pr19807-2.s: Likewise.
* testsuite/ld-x86-64/pr19807-2a.d: Likewise.
* testsuite/ld-x86-64/pr19807-2b.d: Likewise.
* testsuite/ld-x86-64/pr19807-2c.d: Likewise.
* testsuite/ld-x86-64/pr19807-2d.d: Likewise.
* testsuite/ld-x86-64/pr19807-3.s: Likewise.
* testsuite/ld-x86-64/pr19807-3a.d: Likewise.
* testsuite/ld-x86-64/pr19807-3b.d: Likewise.
* testsuite/ld-x86-64/pr19807-3c.d: Likewise.
* testsuite/ld-x86-64/pr19807-3d.d: Likewise.
* testsuite/ld-x86-64/pr19807-3e.d: Likewise.
* testsuite/ld-x86-64/x86-64.exp: Run PR ld/19807 tests.
Diffstat (limited to 'ld/Makefile.am')
-rw-r--r-- | ld/Makefile.am | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/ld/Makefile.am b/ld/Makefile.am index 4a8c0b6e875..34db8fa29f0 100644 --- a/ld/Makefile.am +++ b/ld/Makefile.am @@ -672,6 +672,7 @@ ELF_GEN_DEPS = $(srcdir)/emultempl/generic.em $(srcdir)/emultempl/elf-generic.em ELF_X86_DEPS = $(ELF_DEPS) $(srcdir)/emulparams/plt_unwind.sh \ $(srcdir)/emulparams/extern_protected_data.sh \ $(srcdir)/emulparams/dynamic_undefined_weak.sh \ + $(srcdir)/emulparams/upper_address.sh \ $(srcdir)/emulparams/call_nop.sh @TDIRS@ |