]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
* config/tc-i386.c (tc_i386_fix_adjustable): Don't adjust
authorAndreas Schwab <schwab@linux-m68k.org>
Wed, 13 Feb 2002 11:20:35 +0000 (11:20 +0000)
committerAndreas Schwab <schwab@linux-m68k.org>
Wed, 13 Feb 2002 11:20:35 +0000 (11:20 +0000)
pc-relative relocations to merge sections in 64-bit mode.

gas/ChangeLog
gas/config/tc-i386.c

index c92e7a7d4a20bfce669a5e91d271f1ba9fa1a902..6b46b1647beed062471386e52ab82c632c4f06c8 100644 (file)
@@ -1,3 +1,8 @@
+2002-02-13  Andreas Schwab  <schwab@suse.de>
+
+       * config/tc-i386.c (tc_i386_fix_adjustable): Don't adjust
+       pc-relative relocations to merge sections in 64-bit mode.
+
 2002-02-12  Alexandre Oliva  <aoliva@redhat.com>
 
        * config/tc-mn10300.c (other_registers): Added `epsw'.  Mark `pc'
index 650621feeb2f22d000443cb8ffe4de13e328b1fd..85c13f279a84aa890a89b86cabb43d66a297ad34 100644 (file)
@@ -1,6 +1,6 @@
 /* i386.c -- Assemble code for the Intel 80386
    Copyright 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2001
+   2000, 2001, 2002
    Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
@@ -1178,7 +1178,12 @@ tc_i386_fix_adjustable (fixP)
   /* Prevent all adjustments to global symbols, or else dynamic
      linking will not work correctly.  */
   if (S_IS_EXTERNAL (fixP->fx_addsy)
-      || S_IS_WEAK (fixP->fx_addsy))
+      || S_IS_WEAK (fixP->fx_addsy)
+      /* Don't adjust pc-relative references to merge sections in 64-bit
+        mode.  */
+      || (use_rela_relocations
+         && (S_GET_SEGMENT (fixP->fx_addsy)->flags & SEC_MERGE) != 0
+         && fixP->fx_pcrel))
     return 0;
 #endif
   /* adjust_reloc_syms doesn't know about the GOT.  */