* write.c (fixup_segment): When handling an expression involving

the subtraction of two symbols in the same segment, don't clear
	fx_pcrel except for TC_M68K.
This commit is contained in:
Alan Modra 2003-08-16 13:35:08 +00:00
parent ba3360ee53
commit 1a317472f6
2 changed files with 9 additions and 9 deletions

View file

@ -1,3 +1,9 @@
2003-08-16 Alan Modra <amodra@bigpond.net.au>
* write.c (fixup_segment): When handling an expression involving
the subtraction of two symbols in the same segment, don't clear
fx_pcrel except for TC_M68K.
2003-08-14 Alan Modra <amodra@bigpond.net.au>
* config/tc-i386.h: Remove BFD_ASSEMBLER tests and all !BFD_ASSEMBLER

View file

@ -2642,18 +2642,12 @@ fixup_segment (fixP, this_segment)
add_number += S_GET_VALUE (fixP->fx_addsy);
add_number -= S_GET_VALUE (fixP->fx_subsy);
fixP->fx_offset = add_number;
/* If the back-end code has selected a pc-relative
reloc, adjust the value to be pc-relative. */
if (1
#ifdef TC_M68K
/* See the comment below about 68k weirdness. */
&& 0
#endif
&& fixP->fx_pcrel)
add_number -= MD_PCREL_FROM_SECTION (fixP, this_segment);
fixP->fx_addsy = NULL;
fixP->fx_subsy = NULL;
#ifdef TC_M68K
/* See the comment below about 68k weirdness. */
fixP->fx_pcrel = 0;
#endif
}
else if (sub_symbol_segment == absolute_section
&& !TC_FORCE_RELOCATION_SUB_ABS (fixP))