diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2016-05-20 06:01:28 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2016-05-20 06:01:28 -0700 |
commit | 4e21640f674499048157fa62f08b16f6039f78f6 (patch) | |
tree | 27085915ea4a643164975a5d4837d325a5532b56 /gas/config | |
parent | 17c6c9d9f3e71459edb4b6af5ec75125f0d06f87 (diff) | |
download | gdb-4e21640f674499048157fa62f08b16f6039f78f6.zip gdb-4e21640f674499048157fa62f08b16f6039f78f6.tar.gz gdb-4e21640f674499048157fa62f08b16f6039f78f6.tar.bz2 |
Preserve addend for R_386_GOT32 and R_X86_64_GOT32
We should preserve addend for R_386_GOT32 and R_X86_64_GOT32 as in
"movl $foo@GOT + 4, %eax" and "movq $foo@GOT + 4, %rax".
PR gas/19600
* config/tc-i386.c (md_apply_fix): Preserve addend for
BFD_RELOC_386_GOT32 and BFD_RELOC_X86_64_GOT32.
* testsuite/gas/i386/addend.d: New file.
* testsuite/gas/i386/addend.s: Likewise.
* testsuite/gas/i386/x86-64-addend.d: Likewise.
* testsuite/gas/i386/x86-64-addend.s: Likewise.
* testsuite/gas/i386/i386.exp: Run addend and x86-64-addend.
* testsuite/gas/i386/reloc32.d: Updated.
Diffstat (limited to 'gas/config')
-rw-r--r-- | gas/config/tc-i386.c | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 25a0fa2..8a4d987 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -9341,11 +9341,6 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) fixP->fx_done = 0; return; - case BFD_RELOC_386_GOT32: - case BFD_RELOC_X86_64_GOT32: - value = 0; /* Fully resolved at runtime. No addend. */ - break; - case BFD_RELOC_VTABLE_INHERIT: case BFD_RELOC_VTABLE_ENTRY: fixP->fx_done = 0; |