aboutsummaryrefslogtreecommitdiff
path: root/gas/write.c
AgeCommit message (Collapse)AuthorFilesLines
2004-11-03 * symbols.c (colon) [!WORKING_DOT_WORD]: Don't declareHans-Peter Nilsson1-5/+0
md_short_jump_size, md_long_jump_size. * write.c [!WORKING_DOT_WORD]: Ditto. * tc.h [!WORKING_DOT_WORD]: Declare them here. Drop const qualifier. * config/tc-cris.h (md_short_jump_size, md_long_jump_size): Don't declare. * config/tc-cris.c (md_short_jump_size, md_long_jump_size): Drop const qualifier in these definitions. * config/tc-i370.c, config/tc-m68k.c, config/tc-pdp11.c, config/tc-s390.c, config/tc-tahoe.c, config/tc-vax.c: Ditto.
2004-08-05 * write.c (relax_segment): Use was_address instead of address whenBob Wilson1-1/+1
setting fr_fix field for align frag due to backwards .org.
2004-07-02 * frags.h (struct frag): Add has_code and insn_addr fields.Alan Modra1-1/+4
* write.c (cvt_frag_to_fill): Invoke md_frag_check. * config/tc-ppc.c (md_assemble): Check and set insn_addr. * config/tc-ppc.h (md_frag_check): Define.
2003-12-06 * dwarf2dbg.c: Convert to ISO-C.Kazu Hirata1-138/+87
* write.c: Likewise. * write.h: Likewise.
2003-11-23 * README-vms: Fix comment typos.Kazu Hirata1-1/+1
* as.h: Likewise. * dwarf2dbg.c: Likewise. * ecoff.c: Likewise. * hash.c: Likewise. * listing.c: Likewise. * write.c: Likewise.
2003-08-16 * write.c (fixup_segment): When handling an expression involvingAlan Modra1-9/+3
the subtraction of two symbols in the same segment, don't clear fx_pcrel except for TC_M68K.
2003-06-24Update .comm error messages to assume an unsigned value.Nick Clifton1-9/+9
Update relaxing code to work in 64-bit address spaces.
2003-06-11 * write.c (write_relocs): Use xcalloc. Fix relocs initializationThiemo Seufer1-3/+2
in the RELOC_EXPANSION_POSSIBLE case.
2003-04-07 * write.c (write_relocs): Remove unused variable.Thiemo Seufer1-2/+0
2003-04-01Add Xtensa portNick Clifton1-0/+4
2003-02-12 * write.c (TC_FORCE_RELOCATION_SUB_SAME): Revert last change.Alan Modra1-1/+1
* config/tc-s390.h (TC_FORCE_RELOCATION_SUB_SAME): Define.
2003-01-23 * symbols.c (S_FORCE_RELOC): Add "strict" param.Alan Modra1-4/+17
* 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-12 * write.c (write_object_file): Fix signed/unsigned warning.Alan Modra1-1/+1
* config/e-crisaout.c (crisaout_bfd_name): Prototype. * config/e-criself.c (criself_bfd_name): Prototype. * config/obj-aout.c (s_sect): Remove unused function. * config/obj-bout.c (obj_bout_line <ignore>): Add ATTRIBUTE_UNUSED. * config/obj-coff.c (coff_last_bf): Don't declare for OBJ_XCOFF. (fixup_mdeps <h>): Add ATTRIBUTE_UNUSED. * config/obj-ecoff.c (ecoff_frob_file <addr>): Likewise. * config/obj-vms.c (setup_basic_type <spnt>): Likewise. (VMS_RSYM_Parse <Current_Routine>): Likewise. (vms_fixup_text_section <text_siz>): Likewise. (synthesize_data_segment <data_size>): Likewise. (vms_fixup_xtors_section <sect_no>): Likewise. (structure_count): Don't use implicit int type.
2002-11-30s/boolean/bfd_boolean/ s/true/TRUE/ s/false/FALSE/. SimplifyAlan Modra1-7/+7
comparisons of bfd_boolean vars with TRUE/FALSE. Formatting.
2002-11-28 * write.c (subsegs_finish): For SEC_MERGE sections pad last fragmentJakub Jelinek1-1/+19
to entsize.
2002-11-20 * write.c (adjust_reloc_syms): Don't reduce SEC_MERGE fixups withAlan Modra1-1/+2
fx_subsy non-NULL.
2002-11-01 * write.c (TC_FORCE_RELOCATION_SUB_ABS): Default to zero.Alan Modra1-5/+3
(TC_FORCE_RELOCATION_SUB_LOCAL): Likewise when DIFF_EXPR_OK. * doc/internals.texi (TC_FORCE_RELOCATION_SUB_ABS): Document changed default.
2002-09-23* write.c: Delete set_segment_vma and prototype. Update all callers.DJ Delorie1-25/+0
2002-09-19 * write.h (struct fix): Add fx_dot_value.Alan Modra1-1/+6
(dot_value): Declare. * write.c (dot_value): New var. (fix_new_internal): Save dot_value as fx_dot_value. * expr.c (expr): Update dot_value.
2002-09-05gas reloc rewrite.Alan Modra1-353/+227
2002-08-28 * write.c (BFD_FAST_SECTION_FILL): Remove unused macro.Alan Modra1-97/+80
(TC_ADJUST_RELOC_COUNT): Tweak param name. (TC_FORCE_RELOCATION, TC_FORCE_RELOCATION_SECTION): Likewise. (TC_FIX_ADJUSTABLE, MD_PCREL_FROM_SECTION): Likewise. (RELOC_ENUM): Define. (fix_new_internal): Use RELOC_ENUM. (fix_new, fix_new_exp): Likewise. (adjust_reloc_syms): Comment. Remove unnecessary tests on sym != NULL. Replace gotos with continue. (write_relocs): Formatting. Avoid symbol loops in RELOC_EXPANSION_POSSIBLE case too. Report bfd_reloc_outofrange errors, and error number in other cases. (fixup_segment): Remove param names from prototype. Rename "this_segment_type" to "this_segment". Update linkrelax comment. Remove "size, "place" and "where" local vars. Formatting. Update "no symbol" comment. Remove #if 0 and #if 1.
2002-06-08 * as.c: Replace CONST with const.Alan Modra1-3/+3
* write.c: Likewise. * config/obj-coff.c: Likewise. * config/tc-a29k.c: Likewise. * config/tc-arm.c: Likewise. * config/tc-dlx.c: Likewise. * config/tc-h8300.c: Likewise. * config/tc-h8500.c: Likewise. * config/tc-i370.c: Likewise. * config/tc-i860.c: Likewise. * config/tc-i960.c: Likewise. * config/tc-m68hc11.c: Likewise. * config/tc-m68k.c: Likewise. * config/tc-m88k.c: Likewise. * config/tc-mcore.c: Likewise. * config/tc-mips.c: Likewise. * config/tc-ns32k.c: Likewise. * config/tc-pdp11.c: Likewise. * config/tc-pj.c: Likewise. * config/tc-s390.c: Likewise. * config/tc-sh.c: Likewise. * config/tc-sparc.c: Likewise. * config/tc-tahoe.c: Likewise. * config/tc-tic80.c: Likewise. * config/tc-v850.c: Likewise. * config/tc-vax.c: Likewise. * config/tc-w65.c: Likewise. * config/tc-z8k.c: Likewise.
2002-05-23 * elf.c (_bfd_elf_make_section_from_shdr): Set SEC_THREAD_LOCALJakub Jelinek1-0/+7
for symbols from SHF_TLS section. (_bfd_elf_print_private_bfd_data): Add PT_TLS. (elf_fake_sections): Set SHF_TLS for SEC_THREAD_LOCAL sections. (map_sections_to_segments): Build PT_TLS segment if necessary. (assign_file_positions_for_segments): Likewise. (get_program_header_size): Account for PT_TLS segment. (swap_out_syms): Set type of BSF_THREAD_LOCAL symbols and symbols from SEC_THREAD_LOCAL sections to STT_TLS. * reloc.c: Add 386 and IA-64 TLS relocs. * section.c (SEC_THREAD_LOCAL): Define. (SEC_CONSTRUCTOR_TEXT, SEC_CONSTRUCTOR_DATA, SEC_CONSTRUCTOR_BSS): Remove. * elflink.h (elf_link_add_object_symbols): Support .tcommon. (size_dynamic_sections): If DF_STATIC_TLS, set DF_FLAGS unconditionally. (struct elf_final_link_info): Add first_tls_sec. (elf_bfd_final_link): Set first_tls_sec. Compute elf_hash_table (info)->tls_segment. (elf_link_output_extsym): Handle STT_TLS symbols. (elf_link_input_bfd): Likewise. * syms.c (BSF_THREAD_LOCAL): Define. * bfd-in2.h: Rebuilt. * libbfd.h: Rebuilt. * elf32-i386.c (elf_i386_tls_transition, dtpoff_base, tpoff, elf_i386_mkobject, elf_i386_object_p): New functions. (elf_howto_table): Add TLS relocs. (elf_i386_reloc_type_lookup): Support TLS relocs. (elf_i386_info_to_howto_rel): Likewise. (struct elf_i386_link_hash_entry): Add tls_type. (struct elf_i386_obj_tdata): New. (elf_i386_hash_entry, elf_i386_tdata, elf_i386_local_got_tls_type): New macros. (struct elf_i386_link_hash_table): Add tls_ldm_got. (link_hash_newfunc): Clear tls_type. (elf_i386_check_relocs): Support TLS relocs. (elf_i386_gc_sweep_hook): Likewise. (allocate_dynrelocs): Likewise. (elf_i386_size_dynamic_sections): Likewise. (elf_i386_relocate_section): Likewise. (elf_i386_finish_dynamic_symbol): Likewise. (bfd_elf32_mkobject, elf_backend_object_p): Define. * elfxx-ia64.c (struct elfNN_ia64_dyn_sym_info): Add tprel_offset, dtpmod_offset, dtprel_offset, tprel_done, dtpmod_done, dtprel_done, want_tprel, want_dtpmod, want_dtprel. (elfNN_ia64_tprel_base, elfNN_ia64_dtprel_base): New functions. (ia64_howto_table): Add TLS relocs, rename R_IA64_LTOFF_TP22 to R_IA64_LTOFF_TPREL22. (elf_code_to_howto_index): Add TLS relocs. (elfNN_ia64_check_relocs): Support TLS relocs. (allocate_global_data_got): Account for TLS .got data. (allocate_dynrel_entries): Account for TLS dynamic relocations. (elfNN_ia64_install_value): Supprt TLS relocs. (set_got_entry): Support TLS relocs. (elfNN_ia64_relocate_section): Likewise. * config/obj-elf.c (elf_common): Renamed from obj_elf_common. (obj_elf_common): Call elf_common. (obj_elf_tls_common): New function. (elf_pseudo_tab): Support .tls_common. (special_sections): Add .tdata and .tbss. (obj_elf_change_section): Set SEC_THREAD_LOCAL for SHF_TLS sections. (obj_elf_parse_section_letters): Support T in section flags (SHF_TLS). (obj_elf_parse_section_letters): Include T in error message. * config/tc-ppc.c (ppc_section_letter): Likewise. * config/tc-alpha.c (alpha_elf_section_letter): Likewise. (tc_gen_reloc): Handle SEC_THREAD_LOCAL the same way as SEC_MERGE. * config/tc-sparc.c (md_apply_fix3): Likewise. * config/tc-i386.c (tc_i386_fix_adjustable): Add TLS relocs. Define them if not BFD_ASSEMBLER. (lex_got): Support @TLSGD, @TLSLDM, @GOTTPOFF, @TPOFF, @DTPOFF and @NTPOFF. (md_apply_fix3): Add TLS relocs. * config/tc-ia64.c (enum reloc_func): Add FUNC_DTP_MODULE, FUNC_DTP_RELATIVE, FUNC_TP_RELATIVE, FUNC_LT_DTP_MODULE, FUNC_LT_DTP_RELATIVE, FUNC_LT_TP_RELATIVE. (pseudo_func): Support @dtpmod(), @dtprel() and @tprel(). (ia64_elf_section_letter): Include T in error message. (md_begin): Support TLS operators. (md_operand): Likewise. (ia64_gen_real_reloc_type): Support TLS relocs. * testsuite/gas/i386/tlspic.s: New file. * testsuite/gas/i386/tlsd.s: New file. * testsuite/gas/i386/tlsnopic.s: New file. * testsuite/gas/i386/tlsd.d: New file. * testsuite/gas/i386/tlsnopic.d: New file. * testsuite/gas/i386/tlspic.d: New file. * testsuite/gas/i386/i386.exp: Add tlsd, tlsnopic and tlspic tests. * testsuite/gas/ia64/tls.s: New file. * testsuite/gas/ia64/tls.d: New file. * testsuite/gas/ia64/ia64.exp: Add tls test. * write.c (adjust_reloc_syms): Don't change symbols in SEC_THREAD_LOCAL sections to STT_SECTION + addend. * elf/common.h (PT_TLS, SHF_TLS, STT_TLS, DF_STATIC_TLS): Define. * elf/ia64.h (R_IA64_LTOFF_TPREL22): Renamed from R_IA64_LTOFF_TP22. * elf/i386.h: Add TLS relocs. * scripttempl/elf.sc: Add .rel{,a}.t{bss,data}, .tdata and .tbss. * ldlang.c (lang_add_section): Set SEC_THREAD_LOCAL for output section if necessary. Handle .tbss. (lang_size_sections): Clear _raw_size for .tbss section (it allocates space in PT_TLS segment only). * ldwrite.c (build_link_order): Build link order for .tbss too. * readelf.c (get_segment_type): Add PT_TLS. (get_elf_section_flags): Add SHF_TLS. (get_dynamic_flags): Optimize. Add DF_STATIC_TLS. (process_dynamic_segment): Use puts instead of printf. (get_symbol_type): Support STT_TLS. * objdump.c (dump_section_header): Remove SEC_CONSTRUCTOR_TEXT, SEC_CONSTRUCTOR_DATA, SEC_CONSTRUCTOR_BSS. Add SEC_THREAD_LOCAL.
2002-05-23 * write.c (size_seg): Check adjustment to last frag.Alan Modra1-5/+22
(SUB_SEGMENT_ALIGN): If HANDLE_ALIGN defined, pad out last frag to section alignment. * config/obj-coff.c (SUB_SEGMENT_ALIGN): Likewise. * config/obj-ieee.c (SUB_SEGMENT_ALIGN): Likewise. (write_object_file): Invoke md_do_align if available, and use frag_align_code on text sections. * config/obj-vms.h (SUB_SEGMENT_ALIGN): Now two args. * config/tc-m88k.h (SUB_SEGMENT_ALIGN): Likewise. * config/tc-ppc.h (SUB_SEGMENT_ALIGN): Likewise. * config/tc-sh.h (SUB_SEGMENT_ALIGN): Likewise. * config/tc-i386.h (SUB_SEGMENT_ALIGN): Likewise. Define for BFD_ASSEMBLER too.
2002-05-13 * write.c (subsegs_finish): Don't specially align last subseg.Alan Modra1-6/+0
2002-05-01 * write.c (cvt_frag_to_fill): Set fr_offset to zero on .orgAlan Modra1-0/+1
backwards to prevent cascading errors.
2002-03-06 * config/tc-i386.c (tc_gen_reloc): Don't attempt to handle 8 byteAlan Modra1-2/+2
relocs except when BFD64. * write.c (number_to_chars_bigendian): Don't abort when N is larger than sizeof (VAL). (number_to_chars_littleendian): Likewise.
2002-01-05 * write.c (write_object_file): Make use of bfd_section_list_remove.Alan Modra1-9/+5
* config/obj-ecoff.c (ecoff_frob_file): Likewise. * config/tc-mmix.c (mmix_frob_file): Likewise.
2001-11-28 * elf64-alpha.c (ALPHA_ELF_GOT_ENTRY_RELOCS_XLATED): Defined.Jakub Jelinek1-0/+8
(elf64_alpha_relocate_section): Translate local_got_entries for STT_SECTION symbol to SHF_MERGE section the first time we see it. * elfxx-ia64.c (struct elfNN_ia64_local_hash_entry): Add sec_merge_done. (get_local_sym_hash): New, extracted from get_dyn_sym_info. (get_dyn_sym_info): Use it. (elfNN_ia64_relocate_section): Translate local dyn entries for STT_SECTION symbol to SHF_MERGE section the first time we see it. * write.c (adjust_reloc_syms): Mark SEC_MERGE symbols as used in reloc if it has non-zero addend. * config/tc-alpha.c (tc_gen_reloc): Reinstall SEC_MERGE check. * config/tc-sparc.c (md_apply_fix3): Likewise.
2001-11-23 * elf.c (_bfd_elf_rela_local_sym): New.Jakub Jelinek1-10/+0
* elflink.h (elf_link_input_bfd): Don't consider empty merged sections as removed in relocation tests. * elf-bfd.h (_bfd_elf_rela_local_sym): Add prototype. * elf32-i386.c (elf_i386_relocate_section): Handle relocs against STT_SECTION symbol of SHF_MERGE section. * elf32-arm.h (elf32_arm_relocate_section): Likewise. * elf32-avr.c (elf32_avr_relocate_section): Call _bfd_elf_rela_local_sym. * elf32-cris.c (cris_elf_relocate_section): Likewise. * elf32-d10v.c (elf32_d10v_relocate_section): Likewise. * elf32-fr30.c (fr30_final_link_relocate): Likewise. * elf32-h8300.c (elf32_h8_relocate_section): Likewise. * elf32-hppa.c (elf32_hppa_relocate_section): Likewise. * elf32-i370.c (i370_elf_relocate_section): Likewise. * elf32-i860.c (elf32_i860_relocate_section): Likewise. * elf32-m32r.c (m32r_elf_relocate_section): Likewise. * elf32-m68k.c (elf_m68k_relocate_section): Likewise. * elf32-mcore.c (mcore_elf_relocate_section): Likewise. * elf32-openrisc.c (openrisc_elf_relocate_section): Likewise. * elf32-ppc.c (ppc_elf_relocate_section): Likewise. * elf32-s390.c (elf_s390_relocate_section): Likewise. * elf32-sparc.c (elf32_sparc_relocate_section): Likewise. * elf32-v850.c (v850_elf_relocate_section): Likewise. * elf64-alpha.c (elf64_alpha_relocate_section): Likewise. * elf64-mmix.c (mmix_elf_relocate_section): Likewise. * elf64-ppc.c (ppc64_elf_relocate_section): Likewise. * elf64-s390.c (elf_s390_relocate_section): Likewise. * elf64-sparc.c (sparc64_elf_relocate_section): Likewise. * elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise. * elf-hppa.h (elf_hppa_relocate_section): Likewise. * elf-m10200.c (mn10200_elf_relocate_section): Likewise. * elf-m10300.c (mn10300_elf_relocate_section): Likewise. * elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise. * elf32-sh.c (sh_elf_relocate_section): Likewise for !partial_inplace relocs. Handle relocs against STT_SECTION symbol of SHF_MERGE for partial_inplace relocs. * config/tc-alpha.c (tc_gen_reloc): Remove SEC_MERGE test. * write.c (adjust_reloc_syms): Don't handle relocs against SEC_MERGE section symbols specially. (fixup_segment): Likewise.
2001-11-15Update all uses of md_apply_fix to use md_apply_fix3. Make it a void function.Nick Clifton1-20/+2
2001-11-13Fix tic54x testsuite failures and Lmem disassembly bugs.Timothy Wall1-1/+6
2001-10-18 * write.c (fixup_segment): Handle fixups for SEC_MERGE sections asHans-Peter Nilsson1-0/+3
for undefined symbols.
2001-09-18 * dwarf2dbg.c (dwarf2_directive_file): Avoid signed/unsigned warning.Alan Modra1-5/+5
* write.c (set_symtab): Update bfd_alloc declaration. Use a temp var to ensure bfd_alloc arg is the right type. (write_object_file): Cast args of bfd_seek. Replace bfd_write with bfd_bwrite. * config/obj-coff.c: Replace calls to bfd_write with calls to bfd_bwrite. Cast args of bfd_seek. * config/obj-elf.c (obj_elf_change_section): Avoid signed/unsigned warning. * config/tc-mn10300.c (set_arch_mach): Make param unsigned. * config/tc-tic54x.c (tic54x_mlib): Replace bfd_read call with call to bfd_bread.
2001-09-09 * expr.c (expr): Move code setting "retval" to the end of the loop,Alan Modra1-9/+11
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-01 * read.c: Standardize error/warning messages - don't capitalise, noAlan Modra1-11/+11
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-26 * write.c (relax_segment <rs_space>): Account for fr_fix.Alan Modra1-1/+1
2001-07-23 * symbols.c (S_GET_VALUE): Don't treat O_constant and localAlan Modra1-14/+5
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-03Fix mips16 testsuite failure by allowing finalize_syms to be set beforeNick Clifton1-3/+13
size_segs is called.
2001-06-27Do not set finalize_syms until after the segments have been sized.Nick Clifton1-3/+6
Some backends may still need to access the syms's frags in order to adjust relaxed frags.
2001-06-27 * write.c (fixup_segment <Difference of 2 syms same seg>): Don'tAlan Modra1-14/+24
subtract MD_PCREL_FROM_SECTION for 68k. (fixup_segment <Difference of 2 syms different seg>): Only fudge by adding MD_PCREL_FROM_SECTION for 68k or if not already pcrel.
2001-06-27 * write.c (fixup_segment <Difference of 2 syms same seg>): IfAlan Modra1-2/+4
pcrel, subtract MD_PCREL_FROM_SECTION value.
2001-05-27 * write.c (relax_segment <rs_space>): Check the section of aAlan Modra1-1/+1
symbol to determine whether it is absolute rather than comparing its frag against zero_address_frag as listings play tricks with frags.
2001-05-26 * write.c (relax_segment <rs_space>): Calculate growth usingAlan Modra1-15/+21
addresses before stretch. Prevent repeated error messages. From Peter Jakubek <pjak@snafu.de> Use as_bad_where and as_warn_where to pinpoint errors.
2001-05-24 * write.c (relax_segment): Don't zap fr_symbol when relaxing.Alan Modra1-4/+8
2001-05-24 * write.c (write_object_file): Set finalize_syms = 1 beforeAlan Modra1-3/+4
size_seg is called.
2001-05-22 * symbols.c (resolve_symbol_value): Remove "finalize" param,Alan Modra1-11/+9
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-13bfd/Jakub Jelinek1-0/+7
* libbfd-in.h (_bfd_merge_section): New. (_bfd_write_merged_section): New. (_bfd_merged_section_offset): New. * libbfd.h: Rebuilt. * linker.c (_bfd_generic_link_output_symbols): Handle discard_sec_merge. * aoutx.h (aout_link_write_symbols): Likewise. * pdp11.c (aout_link_write_symbols): Likewise. * elflink.h (elf_link_add_object_symbols): Call _bfd_merge_section. (elf_bfd_final_link): Adjust global symbols pointing into SEC_MERGE sections. (elf_link_sec_merge_syms): New. (elf_link_input_bfd): Call _bfd_merged_section_offset and _bfd_write_merged_section. Handle discard_sec_merge. * elf-bfd.h (struct elf_link_hash_table): Add merge_info field. (struct bfd_elf_section_data): Likewise. * elf.c (_bfd_elf_make_section_from_shdr): Set SEC_MERGE and SEC_STRINGS section flags and entsize from their ELF counterparts. (_bfd_elf_link_hash_table_init): Initialize merge_info. (elf_fake_sections): Set SHF_MERGE, SHF_STRINGS and sh_entsize from their BFD counterparts. * merge.c: New file. * Makefile.am: Add strtab.lo. * Makefile.in: Rebuilt. include/ * bfdlink.h (bfd_link_discard): Add discard_sec_merge. gas/ * config/obj-elf.c (obj_elf_change_section): Add entsize argument, handle SHF_MERGE and SHF_STRINGS. (obj_elf_parse_section_letters): Set SHF_MERGE and SHF_STRINGS. (obj_elf_section): Allow additional argument specifying entity size. * write.c (adjust_reloc_syms): Keep relocations against local symbols in SEC_MERGE sections. ld/ * ldmain.c (main): Default to discard_sec_merge. * lexsup.c (OPTION_DISCARD_NONE): Define. (ld_options): Add --discard-none. (parse_args): Handle OPTION_DISCARD_NONE. * ldlang.c (wild_doit): SEC_MERGE should be set in the output section only if SEC_MERGE and SEC_STRINGS flags and entsize of all its input sections match.
2001-04-04 * write.c (write_object_file): Reset broken word state beforeHans-Peter Nilsson1-0/+20
calling relax_seg.
2001-03-30Multi-pass relaxation machinery.Alan Modra1-21/+61