Do not producesection relative offsets for relocs that will not be based on the

section symbol.
This commit is contained in:
Nick Clifton
2003-05-22 08:57:32 +00:00
parent 759ebd765d
commit ceb410091e
2 changed files with 17 additions and 12 deletions

View File

@ -1,3 +1,11 @@
2003-05-22 Nick Clifton <nickc@redhat.com>
* config/tc-xstormy16.c (md_pcrel_from_section): Do not produce
section relative offsets for relocs that will not be based on the
section symbol.
(xstormy16_md_apply_fix3): Remove previous patch to this
function.
2003-05-07 Eric Christopher <echristo@redhat.com> 2003-05-07 Eric Christopher <echristo@redhat.com>
* config/tc-mips.c (mips_abicalls): New variable. * config/tc-mips.c (mips_abicalls): New variable.

View File

@ -330,12 +330,13 @@ md_pcrel_from_section (fixP, sec)
{ {
if (fixP->fx_addsy != (symbolS *) NULL if (fixP->fx_addsy != (symbolS *) NULL
&& (! S_IS_DEFINED (fixP->fx_addsy) && (! S_IS_DEFINED (fixP->fx_addsy)
|| S_GET_SEGMENT (fixP->fx_addsy) != sec)) || S_GET_SEGMENT (fixP->fx_addsy) != sec)
{ || xstormy16_force_relocation (fixP))
/* The symbol is undefined (or is defined but not in this section). /* The symbol is undefined,
Let the linker figure it out. */ or it is defined but not in this section,
return 0; or the relocation will be relative to this symbol not the section symbol.
} Let the linker figure it out. */
return 0;
return fixP->fx_frag->fr_address + fixP->fx_where; return fixP->fx_frag->fr_address + fixP->fx_where;
} }
@ -581,12 +582,8 @@ xstormy16_md_apply_fix3 (fixP, valueP, seg)
/* Tuck `value' away for use by tc_gen_reloc. /* Tuck `value' away for use by tc_gen_reloc.
See the comment describing fx_addnumber in write.h. See the comment describing fx_addnumber in write.h.
This field is misnamed (or misused :-). This field is misnamed (or misused :-). */
We do not do this for pc-relative relocs against a fixP->fx_addnumber += value;
defined symbol, since it will be done for us. */
if ((! fixP->fx_pcrel)
|| (fixP->fx_addsy && ! S_IS_DEFINED (fixP->fx_addsy)))
fixP->fx_addnumber += value;
} }