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.
This commit is contained in:
H.J. Lu
2004-11-09 01:01:17 +00:00
parent 3b78cdbb32
commit a77a9021ea
2 changed files with 11 additions and 3 deletions

View File

@ -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> 2004-11-08 Tomer Levi <Tomer.Levi@nsc.com>
* config/tc-crx.c (print_insn): Check and set insn_addr. * config/tc-crx.c (print_insn): Check and set insn_addr.
@ -16,7 +24,7 @@
2004-11-08 Aaron W. LaFramboise <aaron98wiridge9@aaronwl.com> 2004-11-08 Aaron W. LaFramboise <aaron98wiridge9@aaronwl.com>
* symbols.c (any_external_name): Define. * 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_EXTERNAL): Support any_external_name.
(S_SET_NAME): Qualify parameter const. (S_SET_NAME): Qualify parameter const.
(symbol_equated_reloc_p): Don't equate weaks when relocating. (symbol_equated_reloc_p): Don't equate weaks when relocating.

View File

@ -995,7 +995,7 @@ resolve_symbol_value (symbolS *symp)
relocation to be against the symbol to which this symbol relocation to be against the symbol to which this symbol
is equated. */ is equated. */
if (! S_IS_DEFINED (add_symbol) 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) || S_IS_WEAK (add_symbol)
#endif #endif
|| S_IS_COMMON (add_symbol)) || 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 resolve_symbol_value to flag expression syms that have been
equated. */ equated. */
return (s->sy_value.X_op == O_symbol 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) && ! S_IS_WEAK (s)
#endif #endif
&& ((s->sy_resolved && s->sy_value.X_op_symbol != NULL) && ((s->sy_resolved && s->sy_value.X_op_symbol != NULL)