aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1996-02-19 19:29:17 +0000
committerIan Lance Taylor <ian@airs.com>1996-02-19 19:29:17 +0000
commit21965655ed7206aad6ade08b05d981a65b228bd3 (patch)
tree6123c825d78c15fae4c389de2ac884570b2a52d0 /gas
parent7b61165adc2320861508c3d9913802539ee9173f (diff)
downloadgdb-21965655ed7206aad6ade08b05d981a65b228bd3.zip
gdb-21965655ed7206aad6ade08b05d981a65b228bd3.tar.gz
gdb-21965655ed7206aad6ade08b05d981a65b228bd3.tar.bz2
* 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.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog11
-rw-r--r--gas/config/tc-sparc.c6
2 files changed, 15 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 9191079..d4c5681 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -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
diff --git a/gas/config/tc-sparc.c b/gas/config/tc-sparc.c
index a73ee7b..0cac1fe 100644
--- a/gas/config/tc-sparc.c
+++ b/gas/config/tc-sparc.c
@@ -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: