Add a flag to asection, linker_has_input, and use it to reliably
[deliverable/binutils-gdb.git] / bfd / ChangeLog
index d8a3353a2ac16a9763b3c4792410c1ee0a0c54c6..85a6b1380dd6c0a76104f2921b4c8a45e55824c1 100644 (file)
@@ -1,3 +1,396 @@
+2001-05-16  Alan Modra  <amodra@one.net.au>
+
+       * section.c (asection): Add linker_has_input field.
+       (STD_SECTION): Adjust initialization to suit.
+       * ecoff.c (bfd_debug_section): Likewise.
+       * bfd-in2.h: Regenerate.
+
+2001-05-15  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elf-m10300.c (mn10300_elf_relax_section): Don't relax
+       negative 32-bit operands to 16 operands when the operand is
+       going to be zero-extended by the modified opcode.
+
+2001-05-12  Peter Targett  <peter.targett@arccores.com>
+
+       * cpu-arc.c (arch_info_struct): Add entry 'base' representing old
+       name for 'arc5' core versions.
+       (bfd_arc_arch): Make bfd_mach_arc_6 default.
+
+       * elf32-arc.c (arc_elf_object_p): Make E_ARC_MACH_ARC6 default
+       architecture.
+       (arc_elf_final_write_processing): Make bfd_mach_arc_6 default.
+
+2001-05-11  Jakub Jelinek  <jakub@redhat.com>
+
+       * elfxx-ia64.c (is_unwind_section_name): Consider linkonce unwind
+       sections as well.
+       (elfNN_ia64_final_write_processing): Map .gnu.linkonce.ia64unw.FOO
+       to .gnu.linkonce.t.FOO text section.
+
+2001-05-11  Jakub Jelinek  <jakub@redhat.com>
+
+       * merge.c (struct sec_merge_hash_entry): Add u.entsize and u.suffix
+       fields, change sec into secinfo.
+       (struct sec_merge_info): Add chain, remove last fields.
+       (struct sec_merge_sec_info): Add next, sec, psecinfo fields.
+       (sec_merge_hash_lookup): If lookup could not use a string only
+       because it has bad alignment, mark the old string for deletion.
+       (sec_merge_add): Add secinfo argument. Don't compute entry's
+       position, instead record the section.
+       (sec_merge_emit): Update for the sec into secinfo change in
+       struct sec_merge_hash_entry.
+       (_bfd_merge_section): Only record the section for merging, defer
+       putting strings into the hash table.
+       (cmplengthentry, last4_eq, last_eq, record_section, merge_strings,
+       _bfd_merge_sections): New functions.
+       (_bfd_merged_section_offset): Update for the sec_merge_hash_entry
+       changes.
+       * libbfd-in.h (_bfd_merge_sections): Add prototype.
+       (_bfd_nolink_bfd_merge_sections): Define.
+       * libbfd.h: Likewise.
+       (bfd_generic_merge_sections): Add prototype.
+       * targets.c (BFD_JUMP_TABLE_LINK): Add _bfd_merge_sections.
+       (struct bfd_target): Likewise.
+       * bfd.c (bfd_merge_sections): Define.
+       * bfd-in2.h: Rebuilt.
+       * elf.c (_bfd_elf_merge_sections): New function.
+       * elf-bfd.h (_bfd_elf_merge_sections): Add prototype.
+       * elfxx-target.h (bfd_elfNN_bfd_merge_sections): Define.
+       * reloc.c (bfd_generic_merge_sections): New function.
+       * vms.c (vms_bfd_merge_sections): New function.
+       * aout-adobe.c (aout_32_bfd_merge_sections): Define.
+       * aout-target.h (MY_bfd_merge_sections): Define.
+       * aout-tic30.c (MY_bfd_merge_sections): Define.
+       * binary.c (binary_bfd_merge_sections): Define.
+       * bout.c (b_out_bfd_merge_sections): Define.
+       * coff-alpha.c (_bfd_ecoff_bfd_merge_sections): Define.
+       * coffcode.c (coff_bfd_merge_sections): Define.
+       * coff-mips.c (_bfd_ecoff_bfd_merge_sections): Define.
+       * i386msdos.c (msdos_bfd_merge_sections): Define.
+       * i386os9k.c (os9k_bfd_merge_sections): Define.
+       * ieee.c (ieee_bfd_merge_sections): Define.
+       * ihex.c (ihex_bfd_merge_sections): Define.
+       * nlm-target.h (nlm_bfd_merge_sections): Define.
+       * oasys.c (oasys_bfd_merge_sections): Define.
+       * ppcboot.c (ppcboot_bfd_merge_sections): Define.
+       * som.c (som_bfd_merge_sections): Define.
+       * srec.c (srec_bfd_merge_sections): Define.
+       * tekhex.c (tekhex_bfd_merge_sections): Define.
+       * versados.c (versados_bfd_merge_sections): Define.
+       * xcoff-target.h (_bfd_xcoff_bfd_merge_sections): Define.
+
+2001-05-11  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * dwarf1.c (_bfd_dwarf1_find_nearest_line): Change type of 'addr'
+       to be unsigned long, in order to match its use.
+
+2001-05-10  H.J. Lu  <hjl@gnu.org>
+
+       * linker.c (_bfd_generic_link_add_one_symbol): Check loop on
+       indirect symbols.
+
+2001-05-09  H.J. Lu  <hjl@gnu.org>
+
+       * elflink.h (elf_link_add_object_symbols): Fix a typo. Allocate
+       versymhdr->sh_size bytes for extversym instead of hdr->sh_size.
+       Remove the unused veriable `dynver'.
+
+2001-05-08  Ian Lance Taylor  <ian@zembu.com>
+
+       * coff-i386.c (coff_i386_reloc): Don't dump core if output_bfd is
+       NULL or is not COFF.
+       (coff_i386_rtype_to_howto): Don't dump core if output section
+       owner is not COFF.
+
+2001-05-07  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+       * ecoff.c (bfd_debug_section): Fix initialization.
+       * elf.c (_bfd_elf_slurp_version_tables): Change maxidx to unsigned, it
+       is always a positive integer. Cast away sign mismatch.
+       * elf32-mips.c: Fix misleading comment and typo.
+       (_bfd_mips_elf_section_from_bfd_section): Remove unused attribute, use
+       correct data type.
+       * elflink.c: Fix typo.
+       (_bfd_elf_create_dynamic_sections): Remove superfluous initialization.
+       * ecoffswap.h (ecoff_swap_fdr_in): Cast away sign mismatch.
+
+2001-05-04  Richard Henderson  <rth@redhat.com>
+
+       * elf64-alpha.c (SREL16, SREL32, SREL64): Set pcrel_offset true.
+
+2001-05-04  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * elf32-arm.h (elf32_arm_final_link_relocate): Set
+        EF_ARM_HASENTRY if the start address is set.
+
+2001-05-03  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * targets.c (_bfd_target_vector_entries): Compute value based on
+       the size of the _bfd_target_vector and not bfd_target_vector.
+
+2001-05-03  H.J. Lu  <hjl@gnu.org>
+
+       * elfcode.h: Include "libiberty.h".
+
+       * elflink.h (elf_link_add_object_symbols): Set
+       elf_dt_name (abfd) to basename of the bfd filename.
+       (NAME(bfd_elf,size_dynamic_sections)): Set vn_file to basename
+       of the bfd filename.
+
+2001-05-03  Andreas Jaeger  <aj@suse.de>
+
+       * elf64-gen.c (elf_generic_info_to_howto): Add unused attribute.
+       (elf_generic_info_to_howto_rel): Likewise.
+       * coff-alpha.c (reloc_nil): Likewise.
+       (alpha_ecoff_bad_format_hook): Likewise.
+       (alpha_adjust_reloc_out): Likewise.
+       (alpha_bfd_reloc_type_lookup): Likewise.
+       (alpha_convert_external_reloc): Likewise.
+       * elf64-alpha.c (elf64_alpha_reloc_nil): Likewise.
+       (elf64_alpha_reloc_bad): Likewise.
+       (elf64_alpha_reloc_gpdisp): Likewise.
+       (elf64_alpha_bfd_reloc_type_lookup): Likewise.
+       (elf64_alpha_info_to_howto): Likewise.
+       (elf64_alpha_add_symbol_hook): Likewise.
+       (elf64_alpha_create_got_section): Likewise.
+       (elf64_alpha_is_local_label_name): Likewise.
+       (elf64_alpha_merge_ind_symbols): Likewise.
+       * elf64-mips.c (mips_elf64_reloc_type_lookup): Likewise.
+       (mips_elf64_get_reloc_upper_bound): Likewise.
+       * nlm32-alpha.c (nlm_alpha_mangle_relocs): Likewise.
+       (nlm_alpha_get_public_offset): Likewise.
+
+2001-05-02  Johan Rydberg  <jrydberg@opencores.org>
+
+        * elf32-openrisc.c (openrisc_elf_howto_table): Do not complain
+       about overflow in R_OPENRISC_LO_16_IN_INSN and
+       R_OPENRISC_HI_16_IN_INSN.Index: bfd/elf32-openrisc.c
+
+2001-04-30  H.J. Lu  <hjl@gnu.org>
+
+       * elf.c (_bfd_elf_link_hash_hide_symbol): Set dynindx to -1
+       only for ELF_LINK_FORCED_LOCAL.
+       * elf32-hppa.c (elf32_hppa_hide_symbol): Likewise.
+       * elf32-mips.c (_bfd_mips_elf_hide_symbol): Likewise.
+       * elfxx-ia64.c (elfNN_ia64_hash_hide_symbol): Likewise.
+
+       * elflink.h (elf_fix_symbol_flags): Set ELF_LINK_FORCED_LOCAL
+       if the symbol has hidden or internal visibility.
+
+2001-04-30  Alan Modra  <amodra@one.net.au>
+
+       * elf32-hppa.c (final_link_relocate): Branch to .+8 for
+       calls to undefined weak symbols.
+
+2001-04-30  Andreas Jaeger  <aj@suse.de>, Andreas Schwab <schwab@suse.de>
+
+       * elf64-x86-64.c (elf64_x86_64_relocate_section): Correct test for
+       R_X86_64_GOTPCREL, don't use assignments instead of comparisons.
+
+2001-04-27  Andreas Jaeger  <aj@suse.de>
+
+       * elf64-x86-64.c (elf64_x86_64_finish_dynamic_sections): Only swap
+       out handled entries.
+       (elf64_x86_64_finish_dynamic_symbol): Set up GOT entries.
+       (elf64_x86_64_relocate_section): Fix GOTPCREL calculation.
+       (elf64_x86_64_relocate_section): Merge entries for GOTPCREL and
+       GOT32.
+
+2001-04-27  Sean McNeil <sean@mcneil.com>
+
+       * config.bfd: Add arm-vxworks target.
+       * coff-arm (coff_arm_relocate_section): Add in symbol value to
+       addend (fro VXworks targets).
+
+2001-04-26  H.J. Lu  <hjl@gnu.org>
+
+       * elf32-i386.c (elf_i386_check_relocs): Verify if r_symndx is
+       valid.
+
+2001-04-25  Frank Ch. Eigler  <fche@redhat.com>
+
+       * bfd-in.h (bfd_cache_close): Declare newly exported function.
+       * bfd-in2.h: Regenerated.
+
+2001-04-24  Jakub Jelinek  <jakub@redhat.com>
+
+       * merge.c (struct sec_merge_hash_entry): Add alignment field.
+       (struct sec_merge_hash): Remove alignment_power.
+       (sec_merge_hash_newfunc): Clear alignment.
+       (sec_merge_hash_lookup): Pass alignment as argument.
+       Use hashp->root.next, not hashp->next to walk the hash chain.
+       If a string already in the hashtable does not have required
+       alignment, create a new hashtable entry.
+       (sec_merge_init): Remove alignment_power argument.
+       (sec_merge_add): Add alignment argument.
+       (sec_merge_emit): Alignment is now a per-entity thing, not per
+       section.
+       (_bfd_merge_section): Sanity check even non-SEC_STRINGS sections
+       for proper alignment.
+       Pass alignment information to sec_merge_add.
+
+2001-04-24  Christian Groessler  <cpg@aladdin.de>
+
+       * coff-z8k.c (extra_case): added handler for R_DISP7, R_CALLR
+       and R_REL16 reloc types; accept odd values for R_REL16 type
+
+2001-04-24  Johan Rydberg  <jrydberg@opencores.org>
+
+       * cpu-openrisc.c: New file.
+       * elf32-openrisc.c: Likewise.
+
+       * Makefile.am (ALL_MACHINES): Add cpu-openrisc.lo.
+       (ALL_MACHINES_CFILES): Add cpu-openrisc.c.
+       (BFD32_BACKENDS): Add elf32-openrisc.lo.
+       (BFD32_BACKENDS_CFILES): Add elf32-openrisc.c.
+       (cpu-openrisc.lo, elf32-openrisc.lo): New rules.
+       * Makefile.in: Regenerated.
+       * config.bfd: (openrisc-*-elf): New target.
+       * configure.in (bfd_elf32_openrisc_vec): New vector.
+       * configure: Regenerated.
+       * libbfd.h: Regenerated.
+       * bfd-in2.h: Regenerated.
+       * reloc.c: Add OpenRISC relocations.
+       * targets.c (bfd_elf32_openrisc_vec): Declare.
+       (bfd_target_vect): Add bfd_elf32_openrisc_vec.
+       * archures.c (enum bfd_architecture): Add bfd_arch_openrisc.
+       (bfd_openrisc_arch): Declare.
+       (bfd_archures_list): Add bfd_openrisc_arch.
+       * elf.c (prep_headers): Add bfd_arch_openrisc.
+
+2001-04-23  Bo Thorsen  <bo@suse.de>
+
+       * elf64-x86-64.c: Add c++ vtable hack.
+       Small whitespace and comment changes.
+
+2001-04-19  Andreas Jaeger  <aj@suse.de>
+
+       * elf64-x86-64.c (elf64_x86_64_plt0_entry): Fix instructions.
+       (elf64_x86_64_plt_entry): Likewise.
+       (elf64_x86_64_finish_dynamic_sections): Fix PLT0 generation.
+       (elf64_x86_64_finish_dynamic_symbol): Fix PLT generation.
+
+2001-04-17  Hans-Peter Nilsson  <hp@axis.com>
+
+       * elf32-cris.c: Tweak comments related to dynamic linking.
+       (cris_elf_relocate_section): When not creating shared object, fill
+       in the .got table for any symbol not in the dynamic symbol table.
+       (elf_cris_finish_dynamic_symbol): When not creating shared object,
+       only emit a .got.rela reloc if the symbol is in the dynamic symbol
+       table.
+       (cris_elf_check_relocs): Use variable r_type in all places rather
+       than the original expression.  Add default case in switch for
+       reloc types.
+       (elf_cris_size_dynamic_sections): Iterate over
+       elf_cris_discard_excess_program_dynamics when not creating shared
+       library.
+       (elf_cris_discard_excess_dso_dynamics): Renamed from
+       elf_cris_discard_copies.  Correct typo, s/Rel/Rela/.
+       (elf_cris_discard_excess_program_dynamics): New.
+
+2001-04-14  Mark Elbrecht  <snowball3@bigfoot.com>
+
+       * coffcode.h (coff_write_object_contents): Use
+       bfd_coff_swap_filehdr_out instead of coff_swap_filehdr_out.
+
+2001-04-14  H.J. Lu  <hjl@gnu.org>
+
+       * bfd-in2.h: Regenerate.
+
+2001-04-14  Jakub Jelinek <jakub@redhat.com>
+
+       * section.c (STD_SECTION): Add entsize.
+
+2001-04-13  H.J. Lu  <hjl@gnu.org>
+
+       * section.c (SEC_MERGE): Define new flag for merging.
+       (SEC_STRINGS): Likewise.
+       (entsize): New field.
+
+2001-04-13  Roger Sayle  <roger@metaphorics.com>
+
+       * coff-i386.c (TARGET_SYM): SEC_READONLY is an applicable section
+       flag on pe-i386 targets.
+
+2001-04-13  Jakub Jelinek  <jakub@redhat.com>
+
+       * 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.
+
+2001-04-09  Hans-Peter Nilsson  <hp@axis.com>
+
+       * elflink.h (elf_fix_symbol_flags): For non-default visibilities,
+       only hide symbols marked STV_INTERNAL or STV_HIDDEN.
+
+2001-04-05  Steven J. Hill  <sjhill@cotw.com>
+
+       * config.bfd (mips*el*-*-linux-gnu*): Use traditional little
+       endian MIPS ELF target.
+       * config.bfd (mips*-*-linux-gnu*): Use traditional big endian
+       MIPS ELF target.
+
+       * configure.in (bfd_elf64_tradbigmips_vec): New. Traditional
+       64bit big endian MIPS ELF target.
+       (bfd_elf64_tradlittlemips_vec): New. Traditional 64bit little
+       endian MIPS ELF target.
+       * configure: Regenerated.
+
+       * elf32-mips.c (IRIX_COMPAT): Handle traditional 64bit and
+       little endian targets.
+       (mips_elf_sym_is_global): Handle traditional targets.
+
+       * elf64-mips.c (bfd_elf64_tradbigmips_vec): New. Traditional
+       64bit big endian MIPS ELF target.
+       (bfd_elf64_tradlittlemips_vec): New. Traditional 64bit little
+       endian MIPS ELF target.
+
+       * targets.c: (_bfd_target_vector): Add bfd_elf64_tradbigmips_vec
+       and bfd_elf64_tradlittlemips_vec.
+
+2001-04-05  David Mosberger  <davidm@hpl.hp.com>
+
+       * elf32-i386.c (elf_i386_fake_sections): Treat ".reloc" as an
+       ordinary "progbits" section.
+
+2001-04-04  Alan Modra  <alan@linuxcare.com.au>
+
+       * elflink.h (elf_fix_symbol_flags): Call elf_backend_hide_symbol
+       when -Bsymbolic causes a symbol to no longer need a .plt entry.
+
+2001-04-03  David Mosberger  <davidm@hpl.hp.com>
+
+       * efi-app-ia32.c (ALIGN_SECTIONS_IN_FILE): Deleted.
+
+2001-03-30  H.J. Lu  <hjl@gnu.org>
+
+       * efi-app-ia32.c (PEI_TARGET_SUBSYSTEM): Rename from ...
+       (PEI_DEFAULT_TARGET_SUBSYSTEM): This.
+
 2001-03-26  H.J. Lu  <hjl@gnu.org>
 
        * elf32-gen.c (elf32_generic_link_add_symbols): New. Check
 
        * Most files: Update copyright notices using Perl script created
        by Kevin Buettner <kevinb@redhat.com>.
-       
+
 2001-03-07  Nick Clifton  <nickc@redhat.com>
 
        * elf32-arm.h (elf32_arm_final_link_relocate): Conditionalise
This page took 0.027637 seconds and 4 git commands to generate.