Add R_X86_64_RELATIVE64 and handle R_X86_64_64 for x32.
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 12 Aug 2011 19:42:39 +0000 (19:42 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 12 Aug 2011 19:42:39 +0000 (19:42 +0000)
commit64d25c44142091760a88c3bc8235c99ddc8cbfa1
treebee81faf532630f32ba3f987d195f28fc708ddf0
parent091c2a968ae5dd0a46174ffa0dfcd61a2423ba1f
Add R_X86_64_RELATIVE64 and handle R_X86_64_64 for x32.

bfd/

2011-08-12  H.J. Lu  <hongjiu.lu@intel.com>

PR ld/13082
* elf64-x86-64.c (x86_64_elf_howto_table): Add R_X86_64_RELATIVE64.
(elf_x86_64_relocate_section): Treat R_X86_64_64 like R_X86_64_32
and zero-extend it to 64bit if addend is zero for x32.  Generate
R_X86_64_RELATIVE64 for x32.

include/elf/

2011-08-12  H.J. Lu  <hongjiu.lu@intel.com>

PR ld/13082
* x86-64.h (R_X86_64_RELATIVE64): New.

ld/testsuite/

2011-08-12  H.J. Lu  <hongjiu.lu@intel.com>

PR ld/13082
* ld-x86-64/pr13082-1.s: New.
* ld-x86-64/pr13082-1a.d: Likewise.
* ld-x86-64/pr13082-1b.d: Likewise.
* ld-x86-64/pr13082-2.s: Likewise.
* ld-x86-64/pr13082-2a.d: Likewise.
* ld-x86-64/pr13082-2b.d: Likewise.
* ld-x86-64/pr13082-3.s: Likewise.
* ld-x86-64/pr13082-3a.d: Likewise.
* ld-x86-64/pr13082-3b.d: Likewise.
* ld-x86-64/pr13082-4.s: Likewise.
* ld-x86-64/pr13082-4a.d: Likewise.
* ld-x86-64/pr13082-4b.d: Likewise.
* ld-x86-64/pr13082-5.s: Likewise.
* ld-x86-64/pr13082-5a.d: Likewise.
* ld-x86-64/pr13082-5b.d: Likewise.
* ld-x86-64/pr13082-6.s: Likewise.
* ld-x86-64/pr13082-6a.d: Likewise.
* ld-x86-64/pr13082-6b.d: Likewise.

* ld-x86-64/x86-64.exp: Run pr13082-[1-6][ab].
22 files changed:
bfd/ChangeLog
bfd/elf64-x86-64.c
ld/testsuite/ChangeLog
ld/testsuite/ld-x86-64/pr13082-1.s [new file with mode: 0644]
ld/testsuite/ld-x86-64/pr13082-1a.d [new file with mode: 0644]
ld/testsuite/ld-x86-64/pr13082-1b.d [new file with mode: 0644]
ld/testsuite/ld-x86-64/pr13082-2.s [new file with mode: 0644]
ld/testsuite/ld-x86-64/pr13082-2a.d [new file with mode: 0644]
ld/testsuite/ld-x86-64/pr13082-2b.d [new file with mode: 0644]
ld/testsuite/ld-x86-64/pr13082-3.s [new file with mode: 0644]
ld/testsuite/ld-x86-64/pr13082-3a.d [new file with mode: 0644]
ld/testsuite/ld-x86-64/pr13082-3b.d [new file with mode: 0644]
ld/testsuite/ld-x86-64/pr13082-4.s [new file with mode: 0644]
ld/testsuite/ld-x86-64/pr13082-4a.d [new file with mode: 0644]
ld/testsuite/ld-x86-64/pr13082-4b.d [new file with mode: 0644]
ld/testsuite/ld-x86-64/pr13082-5.s [new file with mode: 0644]
ld/testsuite/ld-x86-64/pr13082-5a.d [new file with mode: 0644]
ld/testsuite/ld-x86-64/pr13082-5b.d [new file with mode: 0644]
ld/testsuite/ld-x86-64/pr13082-6.s [new file with mode: 0644]
ld/testsuite/ld-x86-64/pr13082-6a.d [new file with mode: 0644]
ld/testsuite/ld-x86-64/pr13082-6b.d [new file with mode: 0644]
ld/testsuite/ld-x86-64/x86-64.exp