diff options
author | Ian Lance Taylor <ian@airs.com> | 1996-02-19 19:29:17 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1996-02-19 19:29:17 +0000 |
commit | 21965655ed7206aad6ade08b05d981a65b228bd3 (patch) | |
tree | 6123c825d78c15fae4c389de2ac884570b2a52d0 /gas | |
parent | 7b61165adc2320861508c3d9913802539ee9173f (diff) | |
download | gdb-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/ChangeLog | 11 | ||||
-rw-r--r-- | gas/config/tc-sparc.c | 6 |
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: |