This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

x86_64 binutils bug workaround removed


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);


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]