x86_64 binutils bug workaround removed
Jan Hubicka
jh@suse.cz
Wed Mar 27 13:41:00 GMT 2002
Hi,
the binutils used to make off-by-4 mistake on PC relative data. This has been
recently fixed by Andreas Schwab (thanks!), but you need the corresponding fix
to gcc as well. I am checking the attached patch in mainline/release branch.
Please make sure to keep your trees in sync otherwise PIC switch jumptable
generation will break.
Wed Mar 27 22:27:20 CET 2002 Jan Hubicka <jh@suse.cz>
* i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
Index: i386.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/i386/i386.c,v
retrieving revision 1.375
diff -c -3 -p -r1.375 i386.c
*** i386.c 2002/03/20 21:47:06 1.375
--- i386.c 2002/03/27 21:26:32
*************** ix86_output_addr_diff_elt (file, value,
*** 6650,6656 ****
int value, rel;
{
if (TARGET_64BIT)
! fprintf (file, "%s%s%d-.+4+(.-%s%d)\n",
ASM_LONG, LPREFIX, value, LPREFIX, rel);
else if (HAVE_AS_GOTOFF_IN_DATA)
fprintf (file, "%s%s%d@GOTOFF\n", ASM_LONG, LPREFIX, value);
--- 6650,6656 ----
int value, rel;
{
if (TARGET_64BIT)
! fprintf (file, "%s%s%d-.+(.-%s%d)\n",
ASM_LONG, LPREFIX, value, LPREFIX, rel);
else if (HAVE_AS_GOTOFF_IN_DATA)
fprintf (file, "%s%s%d@GOTOFF\n", ASM_LONG, LPREFIX, value);
More information about the Gcc-patches
mailing list