mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 20:14:06 +08:00
Remove x32 addend overflow for BFD_RELOC_64
gas/ * config/tc-i386.c (tc_gen_reloc): Remove x32 addend overflow for BFD_RELOC_64. gas/testsuite/ * gas/i386/ilp32/ilp32.exp: Don't run reloc64-inval. * gas/i386/ilp32/reloc64.s: Add test for -4294967295 addend. * gas/i386/ilp32/reloc64.d: Updated. * gas/i386/ilp32/reloc64-inval.l: Removed. * gas/i386/ilp32/reloc64-inval.s: Likewise.
This commit is contained in:
parent
70af379773
commit
56e63005cd
@ -1,3 +1,8 @@
|
||||
2012-05-12 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* config/tc-i386.c (tc_gen_reloc): Remove x32 addend overflow
|
||||
for BFD_RELOC_64.
|
||||
|
||||
2012-05-11 Daniel Richard G. <skunk@iskunk.org>
|
||||
|
||||
PR binutils/14028
|
||||
|
@ -9173,25 +9173,6 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp)
|
||||
if (disallow_64bit_reloc)
|
||||
switch (code)
|
||||
{
|
||||
case BFD_RELOC_64:
|
||||
/* Check addend overflow. */
|
||||
if (!fits_in_signed_long (fixp->fx_offset))
|
||||
{
|
||||
bfd_signed_vma addend = fixp->fx_offset;
|
||||
if (addend < 0)
|
||||
as_bad_where (fixp->fx_file, fixp->fx_line,
|
||||
_("cannot represent relocation %s with "
|
||||
"addend -0x%" BFD_VMA_FMT "x in x32 "
|
||||
"mode"),
|
||||
bfd_get_reloc_code_name (code), -addend);
|
||||
else
|
||||
as_bad_where (fixp->fx_file, fixp->fx_line,
|
||||
_("cannot represent relocation %s with "
|
||||
"addend 0x%" BFD_VMA_FMT "x in x32 "
|
||||
"mode"),
|
||||
bfd_get_reloc_code_name (code), addend);
|
||||
}
|
||||
break;
|
||||
case BFD_RELOC_X86_64_DTPOFF64:
|
||||
case BFD_RELOC_X86_64_TPOFF64:
|
||||
case BFD_RELOC_64_PCREL:
|
||||
|
@ -1,3 +1,13 @@
|
||||
2012-05-12 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* gas/i386/ilp32/ilp32.exp: Don't run reloc64-inval.
|
||||
|
||||
* gas/i386/ilp32/reloc64.s: Add test for -4294967295 addend.
|
||||
* gas/i386/ilp32/reloc64.d: Updated.
|
||||
|
||||
* gas/i386/ilp32/reloc64-inval.l: Removed.
|
||||
* gas/i386/ilp32/reloc64-inval.s: Likewise.
|
||||
|
||||
2012-05-09 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* gas/i386/ilp32/ilp32.exp: Run reloc64-inval.
|
||||
|
@ -26,7 +26,6 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check] &&
|
||||
}
|
||||
|
||||
run_list_test "reloc64" "--defsym _bad_=1"
|
||||
run_list_test "reloc64-inval"
|
||||
|
||||
set ASFLAGS "$old_ASFLAGS"
|
||||
}
|
||||
|
@ -1,3 +0,0 @@
|
||||
.*: Assembler messages:
|
||||
.*:2: Error: .*
|
||||
.*:3: Error: .*
|
@ -1,3 +0,0 @@
|
||||
.data
|
||||
.quad xtrn + 0x80000000
|
||||
.quad xtrn - 0x80000001
|
@ -60,6 +60,7 @@ Disassembly of section \.text:
|
||||
.*[ ]+R_X86_64_TPOFF32[ ]+xtrn
|
||||
.*[ ]+R_X86_64_TPOFF32[ ]+xtrn
|
||||
.*[ ]+R_X86_64_TPOFF32[ ]+xtrn
|
||||
.*[ ]+R_X86_64_64[ ]+xtrn\+0x1
|
||||
Disassembly of section \.data:
|
||||
#...
|
||||
.*[ ]+R_X86_64_32[ ]+xtrn
|
||||
|
@ -178,6 +178,7 @@ bad .byte xtrn@tpoff
|
||||
|
||||
.text
|
||||
mov xtrn@tpoff (%rbx), %eax
|
||||
movabsq $xtrn - 4294967295, %rbp
|
||||
|
||||
.data
|
||||
.quad xtrn
|
||||
|
Loading…
Reference in New Issue
Block a user