386.c (md_estimate_size_before_relax): Revert
more changes from Sept 1999 (tc_i386_fix_adjustable): ditto (md_apply_fix3): ditto
This commit is contained in:
parent
b1bcb49f9c
commit
6d249963bc
|
@ -1,3 +1,10 @@
|
||||||
|
2000-06-24 DJ Delorie <dj@cygnus.com>
|
||||||
|
|
||||||
|
* config/tc-i386.c (md_estimate_size_before_relax): Revert
|
||||||
|
more changes from Sept 1999
|
||||||
|
(tc_i386_fix_adjustable): ditto
|
||||||
|
(md_apply_fix3): ditto
|
||||||
|
|
||||||
2000-06-24 Frank Ch. Eigler <fche@redhat.com>
|
2000-06-24 Frank Ch. Eigler <fche@redhat.com>
|
||||||
|
|
||||||
* cgen.c (expr_jmp_buf_p): New validity flag for expr_jmp_buf.
|
* cgen.c (expr_jmp_buf_p): New validity flag for expr_jmp_buf.
|
||||||
|
|
|
@ -1023,7 +1023,7 @@ int
|
||||||
tc_i386_fix_adjustable (fixP)
|
tc_i386_fix_adjustable (fixP)
|
||||||
fixS * fixP;
|
fixS * fixP;
|
||||||
{
|
{
|
||||||
#if defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF) || defined (TE_PE)
|
#if defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)
|
||||||
/* Prevent all adjustments to global symbols, or else dynamic
|
/* Prevent all adjustments to global symbols, or else dynamic
|
||||||
linking will not work correctly. */
|
linking will not work correctly. */
|
||||||
if (S_IS_EXTERNAL (fixP->fx_addsy)
|
if (S_IS_EXTERNAL (fixP->fx_addsy)
|
||||||
|
@ -3776,7 +3776,7 @@ md_estimate_size_before_relax (fragP, segment)
|
||||||
an externally visible symbol, because it may be overridden by a
|
an externally visible symbol, because it may be overridden by a
|
||||||
shared library. */
|
shared library. */
|
||||||
if (S_GET_SEGMENT (fragP->fr_symbol) != segment
|
if (S_GET_SEGMENT (fragP->fr_symbol) != segment
|
||||||
#if defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF) || defined (TE_PE)
|
#if defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)
|
||||||
|| S_IS_EXTERNAL (fragP->fr_symbol)
|
|| S_IS_EXTERNAL (fragP->fr_symbol)
|
||||||
|| S_IS_WEAK (fragP->fr_symbol)
|
|| S_IS_WEAK (fragP->fr_symbol)
|
||||||
#endif
|
#endif
|
||||||
|
@ -4038,34 +4038,8 @@ md_apply_fix3 (fixP, valp, seg)
|
||||||
address offset for a PC relative symbol. */
|
address offset for a PC relative symbol. */
|
||||||
if (S_GET_SEGMENT (fixP->fx_addsy) != seg)
|
if (S_GET_SEGMENT (fixP->fx_addsy) != seg)
|
||||||
value += md_pcrel_from (fixP);
|
value += md_pcrel_from (fixP);
|
||||||
else if (S_IS_EXTERNAL (fixP->fx_addsy)
|
|
||||||
|| S_IS_WEAK (fixP->fx_addsy))
|
|
||||||
{
|
|
||||||
/* We are generating an external relocation for this defined
|
|
||||||
symbol. We add the address, because
|
|
||||||
bfd_install_relocation will subtract it. VALUE already
|
|
||||||
holds the symbol value, because fixup_segment added it
|
|
||||||
in. We subtract it out, and then we subtract it out
|
|
||||||
again because bfd_install_relocation will add it in
|
|
||||||
again. */
|
|
||||||
value += md_pcrel_from (fixP);
|
|
||||||
value -= 2 * S_GET_VALUE (fixP->fx_addsy);
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#ifdef TE_PE
|
|
||||||
else if (fixP->fx_addsy != NULL
|
|
||||||
&& S_IS_DEFINED (fixP->fx_addsy)
|
|
||||||
&& (S_IS_EXTERNAL (fixP->fx_addsy)
|
|
||||||
|| S_IS_WEAK (fixP->fx_addsy)))
|
|
||||||
{
|
|
||||||
/* We are generating an external relocation for this defined
|
|
||||||
symbol. VALUE already holds the symbol value, and
|
|
||||||
bfd_install_relocation will add it in again. We don't want
|
|
||||||
either addition. */
|
|
||||||
value -= 2 * S_GET_VALUE (fixP->fx_addsy);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Fix a few things - the dynamic linker expects certain values here,
|
/* Fix a few things - the dynamic linker expects certain values here,
|
||||||
and we must not dissappoint it. */
|
and we must not dissappoint it. */
|
||||||
|
|
Loading…
Reference in New Issue