* gas/config/tc-m68k.c (tc_gen_reloc): Handle references to defined
authorNick Clifton <nickc@redhat.com>
Thu, 9 Sep 2010 10:48:17 +0000 (10:48 +0000)
committerNick Clifton <nickc@redhat.com>
Thu, 9 Sep 2010 10:48:17 +0000 (10:48 +0000)
        weak symbols first if generating an a.out object.

gas/ChangeLog
gas/config/tc-m68k.c

index ff4f4a87bb6c1ec4f510a661f93232de49eb8a72..0eeadbdab30b7e190483c28507bb06c4c452b0d3 100644 (file)
@@ -1,3 +1,8 @@
+2010-09-09  Gunther Nikl  <gnikl@users.sourceforge.net>
+
+       * 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  <tejas.belagod@arm.com>
 
        * config/tc-arm.c (md_apply_fix): Check if widened add, sub are
index 20852f8653ac971ec9a4bfe287be80c254e5db64..9822b4ae2ebedb71131444508a9edbe40bc914dd 100644 (file)
@@ -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