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>
* 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
&& (! S_IS_DEFINED (fixP->fx_addsy)
|| S_GET_SEGMENT (fixP->fx_addsy) != sec))
{
/* The symbol is undefined (or is defined but not in this section).
Let the linker figure it out. */
return 0;
}
|| S_GET_SEGMENT (fixP->fx_addsy) != sec)
|| xstormy16_force_relocation (fixP))
/* The symbol is undefined,
or it is defined but not in this section,
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;
}
@ -581,12 +582,8 @@ xstormy16_md_apply_fix3 (fixP, valueP, seg)
/* Tuck `value' away for use by tc_gen_reloc.
See the comment describing fx_addnumber in write.h.
This field is misnamed (or misused :-).
We do not do this for pc-relative relocs against a
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;
This field is misnamed (or misused :-). */
fixP->fx_addnumber += value;
}