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:
H.J. Lu 2012-05-12 12:34:37 +00:00
parent 70af379773
commit 56e63005cd
8 changed files with 17 additions and 26 deletions

View File

@ -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

View File

@ -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:

View File

@ -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.

View File

@ -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"
}

View File

@ -1,3 +0,0 @@
.*: Assembler messages:
.*:2: Error: .*
.*:3: Error: .*

View File

@ -1,3 +0,0 @@
.data
.quad xtrn + 0x80000000
.quad xtrn - 0x80000001

View File

@ -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

View File

@ -178,6 +178,7 @@ bad .byte xtrn@tpoff
.text
mov xtrn@tpoff (%rbx), %eax
movabsq $xtrn - 4294967295, %rbp
.data
.quad xtrn