aboutsummaryrefslogtreecommitdiff
path: root/gas/symbols.c
AgeCommit message (Collapse)AuthorFilesLines
2003-05-27 * expr.c (make_expr_symbol): Fold FAKE_LABEL_NAME use into theRichard Henderson1-4/+2
symbol_create call. (current_location): Use symbol_temp_new_now. * stabs.c (s_stab_generic): Use symbol_temp_new. * symbols.c (temp_label_name): Remove. (symbol_temp_new, symbol_temp_make): Use FAKE_LABEL_NAME.
2003-05-27 * symbols.c (temp_label_name): New.Richard Henderson1-0/+34
(symbol_temp_new, symbol_temp_new_now, symbol_temp_make): New. (symbol_set_value_now): New. * symbols.h: Prototype them. * dwarf2dbg.c: Use them. (fake_label_name, symbol_new_now, set_symbol_value_now): Remove.
2003-05-20 * dw2gencfi.c, dw2gencfi.h: New files.Alan Modra1-3/+1
* config/tc-i386.c (tc_x86_cfi_init): New function. * config/tc-i386.h (TARGET_USE_CFIPOP, tc_cfi_init): New defines. * as.c (parse_args): Set verbose flag on --verbose. (main): Call tc_cfi_init()/cfi_finish(). * as.h (verbose): New external variable. * read.c (pobegin): Insert CFI pops to the list. * symbols.c (local_symbol_make): Make symbol external. * symbols.h (local_symbol_make): New prototype. * Makefile.am: Add dw2gencfi.[ch] files. Run "make dep-am". * Makefile.in: Regenerate. * doc/as.texinfo: Added node "CFI directives" with description of all implemented .cfi_* directives. * doc/Makefile.in: Regenerate. * po/POTFILES.in: Regenerate.
2003-01-24Update copyright dateAlan Modra1-10/+10
2003-01-23 * symbols.c (S_FORCE_RELOC): Add "strict" param.Alan Modra1-4/+6
* symbols.h (S_FORCE_RELOC): Likewise. * config/obj-aout.h (S_FORCE_RELOC): Likewise. * config/obj-bout.h (S_FORCE_RELOC): Likewise. * config/obj-coff.h (S_FORCE_RELOC): Likewise. * config/obj-ieee.h (S_FORCE_RELOC): Likewise. * config/obj-vms.h (S_FORCE_RELOC): Likewise. * write.c (generic_force_reloc): New function. (TC_FORCE_RELOCATION): Use it here instead of S_FORCE_RELOC. (TC_FORCE_RELOCATION_SUB_SAME): Test TC_FORCE_RELOCATION too. (adjust_reloc_syms): Adjust S_FORCE_RELOC call. * as.h (generic_force_reloc): Declare. * doc/internals.texi (S_FORCE_RELOC): Update. (TC_FORCE_RELOCATION_SUB_SAME): Update. * config/tc-alpha.c (alpha_force_relocation): Adjust to use generic_force_reloc. (alpha_fix_adjustable): Likewise. * config/tc-arm.c (arm_force_relocation): Likewise. * config/tc-cris.c (md_cris_force_relocation): Likewise. * config/tc-frv.c (frv_force_relocation): Likewise. * config/tc-i386.c (md_apply_fix3): Likewise. * config/tc-ia64.c (ia64_force_relocation): Likewise. * config/tc-ip2k.c (ip2k_force_relocation): Likewise. * config/tc-m32r.c (m32r_force_relocation): Likewise. * config/tc-m68hc11.c (tc_m68hc11_force_relocation): Likewise. * config/tc-mcore.c (mcore_force_relocation): Likewise. * config/tc-mips.c (mips_force_relocation): Likewise. * config/tc-mmix.c (mmix_force_relocation): Likewise. * config/tc-ppc.c (ppc_force_relocation): Likewise. * config/tc-s390.c (tc_s390_force_relocation): Likewise. * config/tc-sh.c (sh_force_relocation): Likewise. (md_pcrel_from_section): Likewise. * config/tc-sparc.c (tc_gen_reloc): Likewise. * config/tc-v850.c (v850_force_relocation): Likewise. * config/tc-xstormy16.c (xstormy16_force_relocation): Likewise. * config/tc-i386.h (TC_FORCE_RELOCATION): Likewise. * config/tc-mcore.h (TC_FORCE_RELOCATION): Likewise. * config/tc-sparc.h (tc_fix_adjustable): Likewise. * config/tc-d10v.c (d10v_force_relocation): Delete. * config/tc-d10v.h (TC_FORCE_RELOCATION): Don't define. * config/tc-dlx.c (md_dlx_force_relocation): Delete. * config/tc-dlx.h (TC_FORCE_RELOCATION): Don't define. * config/tc-fr30.c (fr30_force_relocation): Delete. * config/tc-fr30.h (TC_FORCE_RELOCATION): Don't define. * config/tc-mn10300.c (mn10300_force_relocation): Delete. * config/tc-mn10300.h (TC_FORCE_RELOCATION): Don't define. (TC_FORCE_RELOCATION_SUB_SAME): Test TC_FORCE_RELOCATION too. * config/tc-i960.h (TC_FORCE_RELOCATION_SUB_SAME): Likewise. * config/tc-hppa.c (hppa_force_relocation): Adjust S_FORCE_RELOC call. * config/tc-mips.c (RELAX_BRANCH_TOOFAR): Warning fix. * config/tc-mips.h (TC_FORCE_RELOCATION_SUB_SAME): Don't define. * config/tc-openrisc.c (openrisc_force_relocation): Delete. * config/tc-openrisc.h (TC_FORCE_RELOCATION): Don't define. * config/tc-sparc.c (elf32_sparc_force_relocation): Delete. * config/tc-sparc.h (TC_FORCE_RELOCATION): Don't define for ELF. * config/tc-i386.c (i386_force_relocation): Delete. * config/tc-i386.h (TC_FORCE_RELOCATION): Don't define for BFD_ASSEMBLER. (EXTERN_FORCE_RELOC): Fix TE_PE and STRICT_PE_FORMAT nesting. * config/tc-m68k.h (TC_FORCE_RELOCATION): Don't define. * config/tc-pj.h (TC_FORCE_RELOCATION): Don't define. * config/tc-sh.h (TC_FORCE_RELOCATION_SUB_ABS): Don't call S_FORCE_RELOC. (TC_FORCE_RELOCATION_SUB_SAME): Test TC_FORCE_RELOCATION too. * config/tc-sh64.h (TC_FORCE_RELOCATION_SUB_SAME): Likewise.
2002-12-01 * symbols.c (report_op_error): New function, broken out of ...Alan Modra1-53/+82
(resolve_symbol_value): ... here. Use for both monadic and dyadic operators.
2002-11-28 * symbols.c (S_SET_THREAD_LOCAL): New function.Jakub Jelinek1-0/+19
* symbols.h (S_SET_THREAD_LOCAL): New prototype. * config/tc-i386.c (md_apply_fix3): Call S_SET_THREAD_LOCAL for TLS relocations. * config/tc-ia64.c (md_apply_fix3): Likewise. * config/tc-alpha.c (md_apply_fix3): Likewise. * ld-i386/tlsnopic.rd: Change NOTYPE to TLS for UND sg* symbols.
2002-09-20symbols.c (colon): Do not allow symbols to be created in the absolute sectionNick Clifton1-7/+8
if WORKING_DOT_WORD is not defined and new_broken_words would require a new frag to be created.
2002-09-20Do not allow symbols to be created in the absolute section.Nick Clifton1-1/+7
2002-09-05gas reloc rewrite.Alan Modra1-0/+22
2002-06-12 * symbols.c (resolve_symbol_value): Initialise final_val.Ben Elliston1-1/+1
* subsegs.c (subsegs_print_statistics): Cast frchp to void *.
2002-06-07 * symbols.c: Replace CONST by const throughout.Alan Modra1-16/+23
(symbol_find_exact): Split out from.. (symbol_find_base): ..here. * symbols.h: Replace CONST by const throughout. (symbol_find_exact): Declare. * config/obj-elf.c: #include "struc-symbol.h". (elf_frob_file): If group name matches an exported symbol, use that symbol for the signature and ".group" as the section name.
2002-05-18 * app.c: Fix formatting.Kazu Hirata1-1/+1
* as.c: Likewise. * ehopt.c: Likewise. * expr.c: Likewise. * input-file.c: Likewise. * listing.c: Likewise. * macro.h: Likewise. * stabs.c: Likewise. * symbols.c: Likewise.
2002-05-03 * as.h: Fix formatting.Kazu Hirata1-4/+4
* cgen.c: Likewise. * cgen.h: Likewise. * dwarf2dbg.c: Likewise. * frags.h: Likewise. * gasp.c: Likewise. * macro.c: Likewise. * read.c: Likewise. * stabs.c: Likewise. * symbols.c: Likewise.
2002-04-03 * symbols.c (resolve_symbol_value <O_uminus, O_bit_not,Alan Modra1-11/+27
O_logical_not>): Derive final_seg from add_symbol. <O_multiply..O_logical_or>: More final_seg twiddles.
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