* elf64-x86-64.c (x86_64_elf_howto): Fix name of R_X86_64_GOTPCREL.
* tc-i386.c (i386_displacement): Fix handling of BFD_RELOC_X86_64_GOTPCREL. (i386_validate_fix): Likewise.
This commit is contained in:
parent
76f227a511
commit
23df107806
@ -1,3 +1,7 @@
|
||||
Mon Feb 12 17:46:24 CET 2001 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* elf64-x86-64.c (x86_64_elf_howto): Fix name of R_X86_64_GOTPCREL.
|
||||
|
||||
2001-02-11 H.J. Lu <hjl@gnu.org>
|
||||
|
||||
* elflink.h (elf_bfd_final_link): Use file_align for STMTAB
|
||||
|
@ -45,7 +45,7 @@ static reloc_howto_type x86_64_elf_howto_table[] =
|
||||
HOWTO(R_X86_64_GLOB_DAT, 0,4,64,false,0,complain_overflow_bitfield,0,"R_X86_64_GLOB_DAT",false,MINUS_ONE ,MINUS_ONE ,false),
|
||||
HOWTO(R_X86_64_RELATIVE ,0,4,64,false,0,complain_overflow_bitfield,0,"R_X86_64_RELATIVE",false,MINUS_ONE ,MINUS_ONE ,false),
|
||||
HOWTO(R_X86_64_JUMP_SLOT,0,4,64,false,0,complain_overflow_bitfield,0,"R_X86_64_JUMP_SLOT",false,MINUS_ONE,MINUS_ONE ,false),
|
||||
HOWTO(R_X86_64_GOTPCREL, 0,4,32,true, 0,complain_overflow_signed ,0, "R_X86_64_PCREL", false,0xffffffff,0xffffffff,true),
|
||||
HOWTO(R_X86_64_GOTPCREL, 0,4,32,true, 0,complain_overflow_signed ,0, "R_X86_64_GOTPCREL",false,0xffffffff,0xffffffff,true),
|
||||
HOWTO(R_X86_64_32, 0,4,32,false,0,complain_overflow_unsigned,0, "R_X86_64_32", false,0xffffffff,0xffffffff,false),
|
||||
HOWTO(R_X86_64_32S, 0,4,32,false,0,complain_overflow_signed, 0, "R_X86_64_32S", false,0xffffffff,0xffffffff,false),
|
||||
HOWTO(R_X86_64_16, 0,1,16,false,0,complain_overflow_bitfield,0, "R_X86_64_16", false,0xffff ,0xffff, false),
|
||||
|
@ -1,3 +1,9 @@
|
||||
Mon Feb 12 17:45:50 CET 2001 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* tc-i386.c (i386_displacement): Fix handling of
|
||||
BFD_RELOC_X86_64_GOTPCREL.
|
||||
(i386_validate_fix): Likewise.
|
||||
|
||||
2001-02-12 Philip Blundell <pb@futuretv.com>
|
||||
|
||||
* config/tc-arm.c (do_ldst): Improve warnings for unpredictable
|
||||
|
@ -3436,7 +3436,10 @@ i386_displacement (disp_start, disp_end)
|
||||
assert (exp->X_op == O_symbol);
|
||||
exp->X_op = O_subtract;
|
||||
exp->X_op_symbol = GOT_symbol;
|
||||
i.disp_reloc[this_operand] = BFD_RELOC_32;
|
||||
if (i.disp_reloc[this_operand] == BFD_RELOC_X86_64_GOTPCREL)
|
||||
i.disp_reloc[this_operand] = BFD_RELOC_32_PCREL;
|
||||
else
|
||||
i.disp_reloc[this_operand] = BFD_RELOC_32;
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -4600,9 +4603,18 @@ i386_validate_fix (fixp)
|
||||
if (fixp->fx_subsy && fixp->fx_subsy == GOT_symbol)
|
||||
{
|
||||
/* GOTOFF relocation are nonsense in 64bit mode. */
|
||||
if (flag_code == CODE_64BIT)
|
||||
abort ();
|
||||
fixp->fx_r_type = BFD_RELOC_386_GOTOFF;
|
||||
if (fixp->fx_r_type == BFD_RELOC_32_PCREL)
|
||||
{
|
||||
if (flag_code != CODE_64BIT)
|
||||
abort ();
|
||||
fixp->fx_r_type = BFD_RELOC_X86_64_GOTPCREL;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (flag_code == CODE_64BIT)
|
||||
abort ();
|
||||
fixp->fx_r_type = BFD_RELOC_386_GOTOFF;
|
||||
}
|
||||
fixp->fx_subsy = 0;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user