From 33f0727fc32e4b650ada8554d40c48694abb2532 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 9 Sep 2010 10:48:17 +0000 Subject: [PATCH] * gas/config/tc-m68k.c (tc_gen_reloc): Handle references to defined weak symbols first if generating an a.out object. --- gas/ChangeLog | 5 +++++ gas/config/tc-m68k.c | 12 ++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index ff4f4a87bb6..0eeadbdab30 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 20852f8653a..9822b4ae2eb 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 -- 2.30.2