OSDN Git Service

* write.c (fixup_segment): Revert previous delta.
authornickc <nickc>
Tue, 4 May 2010 16:21:05 +0000 (16:21 +0000)
committernickc <nickc>
Tue, 4 May 2010 16:21:05 +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 c2b3faa..d8bfcd0 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 dacb342..702e405 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 b50b0d4..a148b24 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