* 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.
This commit is contained in:
Nick Clifton
2010-05-04 16:21:07 +00:00
parent 63b4f126d1
commit 1fc5d88e4b
3 changed files with 8 additions and 3 deletions

View 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

View 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.

View 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