* write.c (fixup_segment): Revert previous delta.
authorNick Clifton <nickc@redhat.com>
Tue, 4 May 2010 16:21:07 +0000 (16:21 +0000)
committerNick Clifton <nickc@redhat.com>
Tue, 4 May 2010 16:21:07 +0000 (16:21 +0000)
        * config/tc-arm.h (TC_FORCE_RELOCATION_LOCAL): Also force the
        generation of relocations for fixups against weak symbols.

gas/ChangeLog
gas/config/tc-arm.h
gas/write.c

index c2b3faab86558de9ef6e8406279ade089a7805f2..d8bfcd0478f5d0760986cc7cb9a077e8f0b35928 100644 (file)
@@ -1,3 +1,9 @@
+2010-05-04  Nick Clifton  <nickc@redhat.com>
+
+       * write.c (fixup_segment): Revert previous delta.
+       * config/tc-arm.h (TC_FORCE_RELOCATION_LOCAL): Also force the
+       generation of relocations for fixups against weak symbols.
+
 2010-04-29  Nathan Sidwell  <nathan@codesourcery.com>
 
        * write.c (fixup_segment): Do not assume we know the section a
index dacb342c69dd9a72e61e74825b293fab482a0f80..702e4053b0231689f3f0a258d5fa9831e924ba65 100644 (file)
@@ -183,6 +183,7 @@ void arm_copy_symbol_attributes (symbolS *, symbolS *);
   (!(FIX)->fx_pcrel                                    \
    || (FIX)->fx_r_type == BFD_RELOC_ARM_GOT32          \
    || (FIX)->fx_r_type == BFD_RELOC_32                 \
+   || ((FIX)->fx_addsy != NULL && S_IS_WEAK ((FIX)->fx_addsy)) \
    || TC_FORCE_RELOCATION (FIX))
 
 /* Force output of R_ARM_REL32 relocations against thumb function symbols.
index b50b0d491e660cd45ae40b71c51a2bf86f527c7b..a148b248d20bd31de5ea6ab0dc3fdd76dda7f446 100644 (file)
@@ -992,9 +992,7 @@ fixup_segment (fixS *fixP, segT this_segment)
 
       if (fixP->fx_addsy)
        {
-         if (S_IS_WEAK (fixP->fx_addsy))
-           ; // even if it is defined, it might be overridden later
-         else if (add_symbol_segment == this_segment
+         if (add_symbol_segment == this_segment
              && !TC_FORCE_RELOCATION_LOCAL (fixP))
            {
              /* This fixup was made when the symbol's segment was