aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/write.c12
2 files changed, 9 insertions, 9 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 9643180..80ae7bd 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -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
diff --git a/gas/write.c b/gas/write.c
index 1419ab5..9eb17c6 100644
--- a/gas/write.c
+++ b/gas/write.c
@@ -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))