From: Nick Clifton Date: Thu, 9 Sep 2010 10:48:17 +0000 (+0000) Subject: * gas/config/tc-m68k.c (tc_gen_reloc): Handle references to defined X-Git-Tag: sid-snapshot-20101001~248 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=33f0727fc32e4b650ada8554d40c48694abb2532;p=platform%2Fupstream%2Fbinutils.git * gas/config/tc-m68k.c (tc_gen_reloc): Handle references to defined weak symbols first if generating an a.out object. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index ff4f4a8..0eeadbd 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2010-09-09 Gunther Nikl + + * gas/config/tc-m68k.c (tc_gen_reloc): Handle references to defined + weak symbols first if generating an a.out object. + 2010-09-09 Tejas Belagod * config/tc-arm.c (md_apply_fix): Check if widened add, sub are diff --git a/gas/config/tc-m68k.c b/gas/config/tc-m68k.c index 20852f8..9822b4a 100644 --- a/gas/config/tc-m68k.c +++ b/gas/config/tc-m68k.c @@ -1335,12 +1335,10 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp) *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); reloc->address = fixp->fx_frag->fr_address + fixp->fx_where; #ifndef OBJ_ELF - if (fixp->fx_pcrel) - reloc->addend = fixp->fx_addnumber; - else if (OUTPUT_FLAVOR == bfd_target_aout_flavour - && fixp->fx_addsy - && S_IS_WEAK (fixp->fx_addsy) - && ! bfd_is_und_section (S_GET_SEGMENT (fixp->fx_addsy))) + if (OUTPUT_FLAVOR == bfd_target_aout_flavour + && fixp->fx_addsy + && S_IS_WEAK (fixp->fx_addsy) + && ! bfd_is_und_section (S_GET_SEGMENT (fixp->fx_addsy))) { /* PR gas/3041 References to weak symbols must be treated as extern in order to be overridable by the linker, even if they are defined @@ -1364,6 +1362,8 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp) - (S_GET_VALUE (fixp->fx_addsy) + S_GET_SEGMENT (fixp->fx_addsy)->vma); } + else if (fixp->fx_pcrel) + reloc->addend = fixp->fx_addnumber; else reloc->addend = 0; #else