OSDN Git Service

* config/tc-s390.c (tc_s390_fix_adjustable): Prevent adjustments to
authorMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 17 Apr 2002 15:12:24 +0000 (15:12 +0000)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 17 Apr 2002 15:12:24 +0000 (15:12 +0000)
symbols in merge sections.

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

index 50ab8c6..30ac042 100644 (file)
@@ -1,3 +1,8 @@
+2002-04-17  Martin Schwidefsky  <schwidefsky@de.ibm.com>
+
+       * config/tc-s390.c (tc_s390_fix_adjustable): Prevent adjustments to
+       symbols in merge sections.
+
 2002-04-16  Alan Modra  <alan@weed.local>
 
        * as.c (main): Don't reference _bfd_chunksize.
index 966db56..2c9a889 100644 (file)
@@ -1,5 +1,5 @@
 /* tc-s390.c -- Assemble for the S390
-   Copyright 2000, 2001 Free Software Foundation, Inc.
+   Copyright 2000, 2001, 2002 Free Software Foundation, Inc.
    Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
 
    This file is part of GAS, the GNU Assembler.
@@ -1630,6 +1630,10 @@ tc_s390_fix_adjustable(fixP)
     return 0;
   if (S_IS_WEAK (fixP->fx_addsy))
     return 0;
+  /* Don't adjust pc-relative references to merge sections.  */
+  if ((S_GET_SEGMENT(fixP->fx_addsy)->flags & SEC_MERGE) != 0 
+      && fixP->fx_pcrel)
+    return 0;
   /* adjust_reloc_syms doesn't know about the GOT.  */
   if (   fixP->fx_r_type == BFD_RELOC_32_GOTOFF
       || fixP->fx_r_type == BFD_RELOC_390_PLT16DBL