summaryrefslogtreecommitdiff
path: root/ld/Makefile.am
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2016-03-13 19:40:18 -0700
committerH.J. Lu <hjl.tools@gmail.com>2016-03-14 06:07:56 -0700
commitc6ebff7349b602bdd670e9c170cb4aa111a293a7 (patch)
treeb9ad30bcb99fb97257c235c673ce7bf1d81e7bfe /ld/Makefile.am
parent2159c3f1e6c191b1f80b8160caa92bccae2eb8f0 (diff)
downloadbinutils-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.am1
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@