[PATCH] gas/config/i386.c for PE

DJ Delorie dj@delorie.com
Tue Jun 20 09:56:00 GMT 2000


I don't know what the original patch fixed, but I've finally narrowed
down the PE brokenness to this simple fix.  Hopefully, with this fix,
the PE backend (for cygwin, at least) will be usable again.  It seems
to work for me now :-)

OK to apply?

2000-06-20  DJ Delorie  <dj@cygnus.com>

	* config/i386/tc-i386.c (tc_i386_fix_adjustable): Revert
	change from Sept 1999; RVA relocs need to be treated more like
	DIR32 relocs for cygwin import libraries to work properly.

Index: gas/config/tc-i386.c
===================================================================
RCS file: /cvs/src/src/gas/config/tc-i386.c,v
retrieving revision 1.54
diff -p -3 -r1.54 tc-i386.c
*** tc-i386.c	2000/06/19 01:22:40	1.54
--- tc-i386.c	2000/06/20 01:29:19
*************** tc_i386_fix_adjustable (fixP)
*** 1034,1040 ****
    if (fixP->fx_r_type == BFD_RELOC_386_GOTOFF
        || fixP->fx_r_type == BFD_RELOC_386_PLT32
        || fixP->fx_r_type == BFD_RELOC_386_GOT32
!       || fixP->fx_r_type == BFD_RELOC_RVA
        || fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT
        || fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY)
      return 0;
--- 1034,1040 ----
    if (fixP->fx_r_type == BFD_RELOC_386_GOTOFF
        || fixP->fx_r_type == BFD_RELOC_386_PLT32
        || fixP->fx_r_type == BFD_RELOC_386_GOT32
!       /*      || fixP->fx_r_type == BFD_RELOC_RVA*/
        || fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT
        || fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY)
      return 0;


More information about the Binutils mailing list