aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2004-11-09 01:01:17 +0000
committerH.J. Lu <hjl.tools@gmail.com>2004-11-09 01:01:17 +0000
commita77a9021ea85cf83d077a32391e682c6320adc88 (patch)
treebef95fc39fbd99b17987e219ffb381be9be38a85 /gas
parent3b78cdbb321bb2d9904f8671eba09ac0ffab1f3b (diff)
downloadfsf-binutils-gdb-a77a9021ea85cf83d077a32391e682c6320adc88.zip
fsf-binutils-gdb-a77a9021ea85cf83d077a32391e682c6320adc88.tar.gz
fsf-binutils-gdb-a77a9021ea85cf83d077a32391e682c6320adc88.tar.bz2
2004-11-08 H.J. Lu <hongjiu.lu@intel.com>
PR 528 * symbols.c (resolve_symbol_value): Convert weak symbols only for Windows PECOFF. (symbol_equated_reloc_p): Don't equate weaks when relocating only for Windows PECOFF.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog10
-rw-r--r--gas/symbols.c4
2 files changed, 11 insertions, 3 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 46acfb7..808fe69 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,11 @@
+2004-11-08 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR 528
+ * symbols.c (resolve_symbol_value): Convert weak symbols only
+ for Windows PECOFF.
+ (symbol_equated_reloc_p): Don't equate weaks when relocating
+ only for Windows PECOFF.
+
2004-11-08 Tomer Levi <Tomer.Levi@nsc.com>
* config/tc-crx.c (print_insn): Check and set insn_addr.
@@ -16,7 +24,7 @@
2004-11-08 Aaron W. LaFramboise <aaron98wiridge9@aaronwl.com>
* symbols.c (any_external_name): Define.
- (resolve_symbol_value): Do not convert weak symbols.
+ (resolve_symbol_value): Convert weak symbols.
(S_SET_EXTERNAL): Support any_external_name.
(S_SET_NAME): Qualify parameter const.
(symbol_equated_reloc_p): Don't equate weaks when relocating.
diff --git a/gas/symbols.c b/gas/symbols.c
index 135c7ef..04e239a 100644
--- a/gas/symbols.c
+++ b/gas/symbols.c
@@ -995,7 +995,7 @@ resolve_symbol_value (symbolS *symp)
relocation to be against the symbol to which this symbol
is equated. */
if (! S_IS_DEFINED (add_symbol)
-#if defined(BFD_ASSEMBLER) || defined(S_IS_WEAK)
+#if defined (OBJ_COFF) && defined (TE_PE) && (defined(BFD_ASSEMBLER) || defined(S_IS_WEAK))
|| S_IS_WEAK (add_symbol)
#endif
|| S_IS_COMMON (add_symbol))
@@ -2239,7 +2239,7 @@ symbol_equated_reloc_p (symbolS *s)
resolve_symbol_value to flag expression syms that have been
equated. */
return (s->sy_value.X_op == O_symbol
-#if defined(BFD_ASSEMBLER) || defined(S_IS_WEAK)
+#if defined (OBJ_COFF) && defined (TE_PE) && (defined(BFD_ASSEMBLER) || defined(S_IS_WEAK))
&& ! S_IS_WEAK (s)
#endif
&& ((s->sy_resolved && s->sy_value.X_op_symbol != NULL)