* config/tc-sparc.h (TC_RELOC_RTSYM_LOC_FIXUP): Check S_IS_WEAK as
authorIan Lance Taylor <ian@airs.com>
Mon, 19 Feb 1996 19:29:17 +0000 (19:29 +0000)
committerIan Lance Taylor <ian@airs.com>
Mon, 19 Feb 1996 19:29:17 +0000 (19:29 +0000)
well as S_IS_EXTERNAL.
(tc_fix_adjustable): Likewise.
* config/tc-sparc.c (md_apply_fix): In OBJ_ELF case, check for
S_IS_WEAK as well as S_IS_EXTERNAL when deciding whether to return
early.
(tc_gen_reloc): Check S_IS_WEAK as wel as S_IS_EXTERNAL when
deciding whether to convert BFD_RELOC_32_PCREL_S2 if PIC.

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

index 91910799ee9b602cd654eead946d541f44808225..d4c5681531533f4ebaae42459c987d5a4ca9de65 100644 (file)
@@ -1,3 +1,14 @@
+Mon Feb 19 14:16:24 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+       * config/tc-sparc.h (TC_RELOC_RTSYM_LOC_FIXUP): Check S_IS_WEAK as
+       well as S_IS_EXTERNAL.
+       (tc_fix_adjustable): Likewise.
+       * config/tc-sparc.c (md_apply_fix): In OBJ_ELF case, check for
+       S_IS_WEAK as well as S_IS_EXTERNAL when deciding whether to return
+       early.
+       (tc_gen_reloc): Check S_IS_WEAK as wel as S_IS_EXTERNAL when
+       deciding whether to convert BFD_RELOC_32_PCREL_S2 if PIC.
+
 Mon Feb 19 02:15:57 1996  Doug Evans  <dje@charmed.cygnus.com>
 
        * config/tc-sparc.c (max_architecture): Change to sparclite for
index a73ee7bf4c23789bddbf50a17b0e8f59b80816c6..0cac1fef48cc730a60d3811c5c42a3702925c87d 100644 (file)
@@ -1956,7 +1956,8 @@ md_apply_fix (fixP, value)
      don't want to include the value of an externally visible symbol.  */
   if (fixP->fx_addsy != NULL)
     {
-      if ((S_IS_EXTERN (fixP->fx_addsy)
+      if ((S_IS_EXTERNAL (fixP->fx_addsy)
+          || S_IS_WEAK (fixP->fx_addsy)
           || (sparc_pic_code && ! fixP->fx_pcrel))
          && S_GET_SEGMENT (fixP->fx_addsy) != absolute_section
          && S_GET_SEGMENT (fixP->fx_addsy) != undefined_section
@@ -2216,7 +2217,8 @@ tc_gen_reloc (section, fixp)
        {
        case BFD_RELOC_32_PCREL_S2:
          if (! S_IS_DEFINED (fixp->fx_addsy)
-             || S_IS_EXTERNAL (fixp->fx_addsy))
+             || S_IS_EXTERNAL (fixp->fx_addsy)
+             || S_IS_WEAK (fixp->fx_addsy))
            code = BFD_RELOC_SPARC_WPLT30;
          break;
        case BFD_RELOC_HI22: