diff options
author | Alan Modra <amodra@gmail.com> | 2001-05-22 10:23:50 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2001-05-22 10:23:50 +0000 |
commit | 6386f3a76709a4d55f17b30449280e1b3ed01ed9 (patch) | |
tree | d54b59808b66538a730f1e79a93186fdeafaf493 /gas/write.c | |
parent | c801568a3aea2906c9134468c7389acab7f54763 (diff) | |
download | binutils-6386f3a76709a4d55f17b30449280e1b3ed01ed9.zip binutils-6386f3a76709a4d55f17b30449280e1b3ed01ed9.tar.gz binutils-6386f3a76709a4d55f17b30449280e1b3ed01ed9.tar.bz2 |
* symbols.c (resolve_symbol_value): Remove "finalize" param,
instead use finalize_syms directly. Don't treat expressions
specially with regard to finalize_syms. Update calls to self.
(resolve_local_symbol): Update call to resolve_symbol_value.
(S_GET_VALUE): Likewise. Return resolve_symbol_value if
!finalize_syms.
* symbols.h (resolve_symbol_value): Update prototype.
* config/obj-aout.c (obj_crawl_symbol_chain): Update call
to resolve_symbol_value.
* config/obj-bout.c (obj_crawl_symbol_chain): Likewise.
* config/obj-coff.c (do_relocs_for): Likewise.
(yank_symbols): Likewise.
(fixup_segment): Likewise.
* config/obj-vms.c (obj_crawl_symbol_chain): Likewise.
* config/tc-mips.c (md_convert_frag): Likewise.
* config/tc-ppc.c (ppc_frob_symbol): Likewise.
(ppc_fix_adjustable): Likewise.
* dwarf2dbg.c (dwarf2dbg_estimate_size_before_relax): Likewise.
(dwarf2dbg_convert_frag): Likewise.
* ehopt.c (eh_frame_estimate_size_before_relax): Likewise.
(eh_frame_convert_frag): Likewise.
* expr.c (make_expr_symbol): Likewise.
* write.c (adjust_reloc_syms): Likewise.
(write_object_file): Likewise.
(relax_segment): Likewise.
(fixup_segment): Likewise.
(finalize_syms): Init to zero, and update comment.
(write_object_file): Set finalize_syms to 1 rather than 2.
* doc/internals.texi (sy_value): Mention finalize_syms.
(S_GET_VALUE): Remove restriction on when S_GET_VALUE can be called.
Diffstat (limited to 'gas/write.c')
-rw-r--r-- | gas/write.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/gas/write.c b/gas/write.c index 151f1cf..7e9317f 100644 --- a/gas/write.c +++ b/gas/write.c @@ -61,10 +61,8 @@ extern CONST int md_short_jump_size; extern CONST int md_long_jump_size; #endif -/* Used to control final evaluation of expressions that are more - complex than symbol + constant. 1 means set final value for simple - expressions, 2 means set final value for more complex expressions. */ -int finalize_syms = 1; +/* Used to control final evaluation of expressions. */ +int finalize_syms = 0; int symbol_table_frozen; void print_fixup PARAMS ((fixS *)); @@ -760,10 +758,10 @@ adjust_reloc_syms (abfd, sec, xxx) symbols, though, since they are not in the regular symbol table. */ if (sym != NULL) - resolve_symbol_value (sym, finalize_syms); + resolve_symbol_value (sym); if (fixp->fx_subsy != NULL) - resolve_symbol_value (fixp->fx_subsy, finalize_syms); + resolve_symbol_value (fixp->fx_subsy); /* If this symbol is equated to an undefined symbol, convert the fixup to being against that symbol. */ @@ -1582,7 +1580,7 @@ write_object_file () #endif /* BFD_ASSEMBLER */ /* Relaxation has completed. Freeze all syms. */ - finalize_syms = 2; + finalize_syms = 1; #if defined (BFD_ASSEMBLER) && defined (OBJ_COFF) && defined (TE_GO32) /* Now that the segments have their final sizes, run through the @@ -1902,7 +1900,7 @@ write_object_file () symbolS *symp; for (symp = symbol_rootP; symp; symp = symbol_next (symp)) - resolve_symbol_value (symp, finalize_syms); + resolve_symbol_value (symp); } resolve_local_symbol_values (); @@ -1950,7 +1948,7 @@ write_object_file () /* Do it again, because adjust_reloc_syms might introduce more symbols. They'll probably only be section symbols, but they'll still need to have the values computed. */ - resolve_symbol_value (symp, finalize_syms); + resolve_symbol_value (symp); /* Skip symbols which were equated to undefined or common symbols. */ @@ -2488,7 +2486,7 @@ relax_segment (segment_frag_root, segment) valueT value; int size; - value = resolve_symbol_value (fragP->fr_symbol, 0); + value = resolve_symbol_value (fragP->fr_symbol); size = sizeof_leb128 (value, fragP->fr_subtype); growth = size - fragP->fr_offset; fragP->fr_offset = size; @@ -2611,7 +2609,7 @@ fixup_segment (fixP, this_segment_type) if (sub_symbolP) { - resolve_symbol_value (sub_symbolP, finalize_syms); + resolve_symbol_value (sub_symbolP); if (add_symbolP == NULL || add_symbol_segment == absolute_section) { if (add_symbolP != NULL) |