aboutsummaryrefslogtreecommitdiff
path: root/gas/symbols.c
AgeCommit message (Collapse)AuthorFilesLines
2001-09-19Locale changes from Bruno Haible <haible@clisp.cons.org>.H.J. Lu1-11/+7
2001-09-09 * expr.c (expr): Move code setting "retval" to the end of the loop,Alan Modra1-35/+90
and rearrange for efficiency. For "PIC code" subtraction, use "rightseg" rather than recalculating. For "symbol OP symbol" subtract, set "retval" to absolute_section if symbols in same section. * symbols.c (resolve_symbol_value): Resolve "sym +/- expr" to an O_symbol. Simplify a +/- b code. Allow equality and non-equality comparisons on symbols from any section. Allow other comparison operators as for subtraction. (symbol_equated_reloc_p): New predicate function. * symbols.h (symbol_equated_reloc_p): Declare. * write.c (adjust_reloc_syms): Use symbol_equated_reloc_p. (write_relocs): Likewise. (write_object_file): Likewise. (relax_segment <rs_machine_dependent>): Ensure segment for expression syms is set correctly. * config/tc-mips.c (md_estimate_size_before_relax): Likewise. * config/tc-i386.c (md_assemble <Output jumps>): Don't lose part of a complex expression when setting up frag_var.
2001-08-09 * symbols.c: Add missing prototypes.Alan Modra1-0/+1
* config/e-i386elf.c: Likewise. * config/e-i386coff.c: Likewise. * config/e-i386aout.c: Likewise. * config/obj-coff.c: Likewise. (def_symbol_in_progress, stack): Move definition. * config/obj-elf.c: Add missing prototypes. (obj_elf_change_section): Make static. (obj_elf_parse_section_letters): Likewise. (obj_elf_section_word): Likewise. (obj_elf_section_type): Likewise.
2001-08-01 * read.c: Standardize error/warning messages - don't capitalise, noAlan Modra1-15/+15
final period or newline, don't say "ignored" or "zero assumed" for as_bad messages. In some cases, change the wording to that used elsewhere for similar messages. * app.c, as.c, atof-generic.c, cgen.c, cond.c, depend.c, dwarf2dbg.c, ecoff.c, expr.c, frags.c, input-file.c, input-scrub.c, listing.c, output-file.c, stabs.c, subsegs.c, symbols.c, write.c: Likewise. * ecoff.c (ecoff_directive_end): Test for missing name by comparing input line pointers rather than reading string. (ecoff_directive_ent): Likewise. * read.c (s_set): Likewise. (s_align): Report a warning rather than an error for alignment too large. (s_comm): Check for missing symbol name. (s_lcomm_internal): Likewise. (s_lsym): Likewise. (s_globl): Use is_end_of_line instead of looking for '\n'. (s_lcomm_internal): Likewise. (ignore_rest_of_line): Report a warning rather than an error.
2001-07-23 * symbols.c (S_GET_VALUE): Don't treat O_constant and localAlan Modra1-2/+2
symbols specially. Always resolve, adding fr_address to value. * write.c (write_object_file): Don't add fr_address to sym values. (relax_frag): Likewise. (relax_segment): Likewise. * config/obj-ieee.c (do_symbols): Likewise. * config/tc-cris.c (md_convert_frag): Likewise. * config/tc-fr30.c (md_convert_frag): Likewise. * config/tc-i386.c (md_convert_frag): Likewise. * config/tc-m32r.c (md_convert_frag): Likewise. * config/tc-m68hc11.c (md_convert_frag): Likewise. * config/tc-mcore.c (md_convert_frag): Likewise. * config/tc-mips.c (mips16_extended_frag): Likewise. * config/tc-ns32k.c (md_convert_frag): Likewise. * config/tc-m68k.c (md_convert_frag_1): Likewise. (BRANCHBWL, BRABSJUNC, BRABSJCOND, BRANCHBW, FBRANCH, DBCCLBR, DBCCABSJ, PCREL1632, PCINDEX, ABSTOPCREL): Decrement. (md_relax_table): Remove first four entries. Format. (md_estimate_size_before_relax): Remove old_fix. Don't bother setting fr_var. Simplify byte branch checks.
2001-07-05 * struc-symbol.h (struct local_symbol): Rename lsy_offset toAlan Modra1-13/+13
lsy_value. Correct typos in comments. * symbols.c (local_symbol_make): Update for name change. (local_symbol_convert): Likewise. (colon): Likewise. (S_GET_VALUE): Likewise. (S_SET_VALUE): Likewise. (print_symbol_value_1): Likewise. (resolve_symbol_value): Likewise. Don't divide local sym values by OCTETS_PER_BYTE twice.
2001-06-05Do not allow .globl to override .sectionNick Clifton1-0/+11
2001-05-25 * symbols.c (resolve_symbol_value): Always set segment, even whenAlan Modra1-9/+9
not finalizing symbol value.
2001-05-24 * symbols.c (resolve_symbol_value): Clear sy_resolving beforeAlan Modra1-0/+1
taking exit_dont_set_value.
2001-05-22 * symbols.c (resolve_symbol_value): Remove "finalize" param,Alan Modra1-21/+16
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.
2001-04-14* struc-symbol.h (struct local_symbol): New TC_LOCAL_SYMFIELD_TYPE.Alexandre Oliva1-0/+4
* symbols.c (local_symbol_convert): Call TC_LOCAL_SYMFIELD_CONVERT.
2001-03-30Multi-pass relaxation machinery.Alan Modra1-2/+10
2001-03-08Fix copyright noticesNick Clifton1-1/+2
2001-02-24 * symbols.c (decode_local_label_name): Initialize message_formatStephane Carrez1-2/+3
only when an error is reported (perf pb due to I18N).
2001-01-232001-01-23 Kazu Hirata <kazu@hxi.com>Kazu Hirata1-2/+2
* as.c: Fix formatting. * ehopt.c: Likewise. * messages.c: Likewise. * stabs.c: Likewise. * symbols.c: Likewise.
2001-01-15Delete output file upon fatal errors.Nick Clifton1-4/+4
Treat multiple defintions of the same symbol as ordinary errors, not fatal ones
2001-01-11Fix local label code to use LOCAL_LABEL_PREFIXNick Clifton1-9/+21
2000-08-102000-08-10 Kazu Hirata <kazu@hxi.com>Kazu Hirata1-221/+188
* symbols.c: Fix formatting.
2000-06-19Use bfd_octets_per_byte instead of OCTETS_PER_BYTENick Clifton1-2/+2
2000-02-03octets vs bytes changes for GASTimothy Wall1-3/+3
2000-01-26This set of patches add support for aout emulation on the x86Alan Modra1-9/+15
assembler. ie. You will be able to do "as --em=i386aout" on an x86 linux-elf assembler to generate aout format object files, rather than using a separate assembler. The aout emulation is enabled by giving "--enable-targets=i386-linuxaout" to configure. Oh yeah, there's a couple of fixes too. Error messages shouldn't be passed to printf in the format arg just in case someone puts a `%' in the message.
1999-08-03 * config/obj-coff.c (coff_frob_symbol): Always update set_end withIan Lance Taylor1-1/+1
next_set_end even if the end symbol is being discarded. * gasp.c: Add ATTRIBUTE_UNUSED as needed for non-BFD_ASSEMBLER. * output-file.c, symbols.c, config/tc-i386.c: Likewise. * config/obj-coff.c: Likewise. (seg_info_type): Remove. (seg_info_off_by_4): Change to array of segT. (s_get_segment): Adjust accordingly. (obj_pseudo_table): Fully initialize sentinel entry.
1999-07-15oops - omitted from previous deltaNick Clifton1-0/+3
1999-07-11 * Many files: Changes to avoid gcc warnings: Add ATTRIBUTE_UNUSEDIan Lance Taylor1-2/+2
as appropriate. Fill in structure initializations. Add variable initializations. Add casts. * dwarf2dbg.c (print_stats): Change i to size_t. * listing.c (listing_listing): Change list_line to unsigned int.
1999-06-11 * struc-symbol.h: Put local_symbol code in ifdef BFD_ASSEMBLER.Ian Lance Taylor1-5/+29
* symbols.c: Likewise. * config/obj-aout.c (obj_crawl_symbol_chain): Refer directly to sy_next field when taking address, rather than symbol_next.
1999-06-10 * symbols.c (resolve_symbol_value): Don't permit subtraction ofIan Lance Taylor1-2/+5
undefined symbols.
1999-06-10 * symbols.c (copy_symbol_attributes): Convert local symbols toIan Lance Taylor1-2/+2
regular symbols.
1999-06-03 * symbols.c (symbol_set_tc): Correct name.Ian Lance Taylor1-1/+1
1999-06-03 Add support for storing local symbols in a small structure to saveIan Lance Taylor1-47/+729
memory when assembling large files. * as.h: Don't include struc-symbol.h. (symbolS): Add typedef. * symbols.c: Include struc-symbol.h. (local_hash): New static variable. (save_symbol_name): New static function, from symbol_create. (symbol_create): Call save_symbol_name. (local_symbol_count): New static variable. (local_symbol_conversion_count): Likewise. (LOCAL_SYMBOL_CHECK): Define. (local_symbol_make): New static function. (local_symbol_convert): New static function. (colon): Handle local symbols. Create local symbol for local label name. (symbol_table_insert): Handle local symbols. (symbol_find_or_make): Create local symbol for local label name. (symbol_find_base): Check for local symbol. (symbol_append, symbol_insert): Check for local symbols. (symbol_clear_list_pointers, symbol_remove): Likewise. (verify_symbol_chain): Likewise. (copy_symbol_attributes): Likewise. (resolve_symbol_value): Handle local symbols. (resolve_local_symbol): New static function. (resolve_local_symbol_values): New function. (S_GET_VALUE, S_SET_VALUE): Handle local symbols. (S_IS_FUNCTION, S_IS_EXTERNAL, S_IS_WEAK, S_IS_COMMON): Likewise. (S_IS_DEFINED, S_IS_DEBUG, S_IS_LOCAL, S_GET_NAME): Likewise. (S_GET_SEGMENT, S_SET_SEGMENT, S_SET_EXTERNAL): Likewise. (S_CLEAR_EXTERNAL, S_SET_WEAK, S_SET_NAME): Likewise. (symbol_previous, symbol_next): New functions. (symbol_get_value_expression): Likewise. (symbol_set_value_expression): Likewise. (symbol_set_frag, symbol_get_frag): Likewise. (symbol_mark_used, symbol_clear_used, symbol_used_p): Likewise. (symbol_mark_used_in_reloc): Likewise. (symbol_clear_used_in_reloc, symbol_used_in_reloc_p): Likewise. (symbol_mark_mri_common, symbol_clear_mri_common): Likewise. (symbol_mri_common_p): Likewise. (symbol_mark_written, symbol_clear_written): Likewise. (symbol_written_p): Likewise. (symbol_mark_resolved, symbol_resolved_p): Likewise. (symbol_section_p, symbol_equated_p): Likewise. (symbol_constant_p): Likewise. (symbol_get_bfdsym, symbol_set_bfdsym): Likewise. (symbol_get_obj, symbol_set_obj): Likewise. (symbol_get_tc, symbol_set_tc): Likewise. (symbol_begin): Initialize local_hash. (print_symbol_value_1): Handle local symbols. (symbol_print_statistics): Print local symbol statistics. * symbols.h: Include "struc-symbol.h" if not BFD_ASSEMBLER. Declare new symbols.c functions. Move many declarations here from struc-symbol.h. (SYMBOLS_NEED_BACKPOINTERS): Define if needed. * struc-symbol.h (SYMBOLS_NEED_BACKPOINTERS): Don't set. (struct symbol): Move bsym to make it clearly the first field. Remove TARGET_SYMBOL_FIELDS. (symbolS): Don't typedef. (struct broken_word): Remove. (N_TYPE_seg, seg_N_TYPE): Move to symbol.h. (SEGMENT_TO_SYMBOL_TYPE, N_REGISTER): Likewise. (symbol_clear_list_pointers): Likewise. (symbol_insert, symbol_remove): Likewise. (symbol_previous, symbol_append): Likewise. (verify_symbol_chain, verify_symbol_chain_2): Likewise. (struct local_symbol): Define. (local_symbol_converted_p, local_symbol_mark_converted): Define. (local_symbol_resolved_p, local_symbol_mark_resolved): Define. (local_symbol_get_frag, local_symbol_set_frag): Define. (local_symbol_get_real_symbol): Define. (local_symbol_set_real_symbol): Define. Define. * write.c (write_object_file): Call resolve_local_symbol_values. * config/obj-ecoff.h (OBJ_SYMFIELD_TYPE): Define. (TARGET_SYMBOL_FIELDS): Don't define. * config/obj-elf.h (OBJ_SYMFIELD_TYPE): Add local field. If ECOFF_DEBUGGING, add ECOFF fields. (ELF_TARGET_SYMBOL_FIELDS, TARGET_SYMBOL_FIELDS): Don't define. * config/obj-multi.h (struct elf_obj_sy): Add local field. If ECOFF_DEBUGGING, add ECOFF fields. (ELF_TARGET_SYMBOL_FIELDS, TARGET_SYMBOL_FIELDS): Don't define. (ECOFF_DEBUG_TARGET_SYMBOL_FIELDS): Don't define. * config/tc-mcore.h: Don't include struc-symbol.h. (TARGET_SYMBOL_FIELDS): Don't define. (struct mcore_tc_sy): Define. (TC_SYMFIELD_TYPE): Define. * Many files: Use symbolS instead of struct symbol. Use new accessor functions rather than referring to symbolS fields directly. * read.c (s_mri_common): Don't add in value of line_label. * config/tc-mips.c (md_apply_fix): Correct parenthesization when checking for SEC_LINK_ONCE. * config/tc-sh.h (sh_fix_adjustable): Declare.
1999-05-06 * symbols.c (symbol_find_base): Use memcpy instead of strcpy.Richard Henderson1-10/+17
Don't copy before downcaseing.
1999-05-0319990502 sourceware importbinu_ss_19990502Richard Henderson1-0/+1785