From 21965655ed7206aad6ade08b05d981a65b228bd3 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Mon, 19 Feb 1996 19:29:17 +0000 Subject: [PATCH] * 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. --- gas/ChangeLog | 11 +++++++++++ gas/config/tc-sparc.c | 6 ++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 91910799ee9..d4c56815315 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,14 @@ +Mon Feb 19 14:16:24 1996 Ian Lance Taylor + + * 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 * 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 a73ee7bf4c2..0cac1fef48c 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: -- 2.30.2