* elflink.h (elf_bfd_final_link): Assert that section reloc_count
[external/binutils.git] / bfd / ChangeLog
index 6da6d4e..1babf26 100644 (file)
@@ -1,3 +1,281 @@
+1999-07-07  Ian Lance Taylor  <ian@zembu.com>
+
+       * elflink.h (elf_bfd_final_link): Assert that section reloc_count
+       field equals the new rel_count field.
+       (elf_link_input_bfd): When doing a relocateable link, use the new
+       rel_count field rather than the reloc_count field.
+       (elf_reloc_link_order): Likewise.
+       (elf_finish_pointer_linker_section): Likewise.
+
+       Based on patch from H.J. Lu <hjl@gnu.org>:
+       * elflink.h (elf_merge_symbol): Permit a non-weak definition in a
+       shared library to override a weak definition in a regular object.
+
+Tue Jul  6 10:23:39 1999  Jeffrey A Law  (law@cygnus.com)
+
+        * libhppa.h: Revert July 2, 1999 patch.
+
+       * elf-hppa.h (_bfd_elf_hppa_gen_reloc_type): T mode selectors
+       need to generate DLTIND relocations, not DLTREL relocations.
+
+1999-07-05  Nick Clifton  <nickc@cygnus.com>
+
+       * coffcode.h (coff_set_arch_mach_hook): Recognise arm 5
+       architectures. 
+       (coff_set_flags): Recognise arm 5 architectures.
+
+       * cpu-arm.c: Add support for strongarm and arm9 cpus.
+       Add support for armv5 architecture.
+
+       * archures.c: Add bfd_mach_arm_5 and bfd_mach_arm_5T.
+       
+       * reloc.c: Add new, assembler only, ARM reloc:
+       BFD_RELOC_ARM_ADRL_IMMEDIATE.
+       
+       * bfd-in2.h: Regenerate.
+
+1999-07-02  Mark Mitchell  <mark@codesourcery.com>
+
+       * dwarf2.c (parse_comp_unit): Add ABBREV_LENGTH parameter.
+       (_bfd_dwarf2_find_nearest_line): Add ADDR_SIZE parameter.
+       * elf.c (_bfd_elf_find_nearest_line): Pass it.
+       * elf32-arm.h (elf32_arm_find_nearest_line): Likewise.
+       * elf32-mips.c (ABI_64_P): New macro.
+       (IRIX_COMPAT): We are IRIX6-compatible if ABI_64_P.
+       (_bfd_mips_elf_find_nearest_line): Adjust call to
+       _bfd_dwarf2_find_nearest_line.
+       * libbfd-in.h (_bfd_dwarf2_find_nearest_line): Update prototype.
+       * libbfd.h: Regenerated.
+
+1999-07-02  Ian Lance Taylor  <ian@zembu.com>
+
+       * config.bfd: Add * at the end of i[3456]86-*-unixware.
+
+Fri Jul  2 12:21:10 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * libhppa.h (HPPA_R_ARG_RELOC): Delete.
+       (HPPA_R_CONSTANT, HPPA_R_ADDEND): Likewise.
+
+1999-07-01  Mark Mitchell  <mark@codesourcery.com>
+
+       * elf-bfd.h (bfd_elf_section_data): Add rel_count and rel_count2
+       fields.
+       (_bfd_elf_init_reloc_shdr): New function.
+       * elf.c (_bfd_elf_new_section_hook): Use bfd_zalloc, rather than
+       bfd_alloc followed by memset.
+       (_bfd_elf_init_reloc_shdr): New function, split out from ...
+       (elf_fake_sections): Here.
+       (assign_section_numbers): Assign section numbers for the second
+       relocation section, if required.
+       * elflink.h (elf_link_output_relocs): New function.
+       (elf_link_size_reloc_section): Likewise.
+       (elf_bfd_final_link): Use elf_link_size_reloc_section.
+       (elf_link_input_bfd): Use elf_link_output_relocs.
+       
+       * elf32-mips.c (_bfd_mips_elf_fake_sections): Use
+       _bfd_elf_init_reloc_shdr to initialize rel_hdr2.
+
+Thu Jul  1 13:58:48 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * elf-hppa.h (_bfd_elf_hppa_gen_reloc_type): Handle R_PCREL_CALL
+       with 22bit format.
+
+1999-06-28  Mark Mitchell  <mark@codesourcery.com>
+
+       * elf32-mips.c (mips_elf_got_info): Move declaration before
+       prototypes.  Change global_gotsym to be a pointer to a hash entry,
+       rather than a number index.
+       (mips_elf_link_hash_entry): Move declaration before prototypes.
+       (mips_elf_irix6_finish_dynamic_symbol): New function.
+       (mips_elf_sign_extend): Likewise.
+       (mips_elf_high): Likewise.
+       (mips_elf_higher): Likewise.
+       (mips_elf_highest): Likewise.
+       (mips_elf_global_got_index): Likewise.
+       (mips_elf_local_got_index): Likewise.
+       (mips_elf_got_offset_from_index): Likeiwse.
+       (mips_elf_record_global_got_symbol): Likewise.
+       (mips_elf_got_page): Likewise.
+       (mips_elf_next_lo16_addend): Likewise.
+       (mips_elf_calculate_relocation): Likewise.
+       (mips_elf_obtain_contents): Likewise.
+       (mips_elf_perform_relocation): Likewise.
+       (mips_elf_assign_gp): Likewise.
+       (mips_elf_sort_hash_table_f): Likewise.
+       (mips_elf_sort_hash_table): Likewise.
+       (mips_elf_got_section): Likewise.
+       (mips_elf_got_info): Likewise.
+       (mips_elf_create_local_got_entry): Likewise.
+       (mips_elf_got16_entry): Likewise.
+       (mips_elf_create_dynamic_relocation): Likewise.
+       (elf_mips_howto_table): Add description of R_MIPS_SCN_DISP.
+       (mips_elf_final_gp): Use mips_elf_assign_gp.
+       (_bfd_mips_elf_symbol_processing): Don't move SHN_COMMON symbols
+       into SHN_SCOMMON automatically on IRIX6.
+       (mips_elf_add_symbol_hook): Likewise.
+       (mips_elf_relocate_section): Rewrite, using
+       mips_elf_calculate_relocation and mips_elf_perform_relocation.
+       (mips_elf_create_dynamic_section): Use MIPS_ELF_STUB_SECTION_NAME.
+       Don't deal with .rld_map on IRIX6.
+       (mips_elf_create_got_section): Adjust use of global_gotsym.  Set
+       section flags appropriately for .got.
+       (mips_elf_check_relocs): Handle IRIX6 relocations making use of
+       the got.  Call mips_elf_record_global_got_symbol and allocate
+       local got space appropriately.
+       (mips_elf_size_dynamic_sections): Use bfd_byte *, not unsigned
+       char *.  Rework calculation of GOT size.  Sort dynamic symbol
+       table entries so entries that do not require GOT entries appear at
+       the beginning.  Don't use DT_MIPS_HIPAGENO on IRIX6.  Remove dead
+       code dealing with DT_INIT and DT_FINI.  Remove fiddling with
+       global_gotsym.
+       (mips_elf_finish_dynamic_symbol): Adjust creation of global GOT
+       entries.
+       (mips_elf_finish_dynamic_symbol): Use
+       mips_elf_irix6_finish_dynamic_symbol.
+       (mips_elf_finish_dynamic_sections): Correct off-by-one error
+       setting DT_MIPS_UNREFEXTNO.  Adjust setting of DT_MIPS_GOTSYM for
+       change to global_gotsym.  Set DT_MIPS_OPTIONS on IRIX6.
+               
+1999-06-30  Ian Lance Taylor  <ian@zembu.com>
+
+       * elf32-mips.c (mips_elf_final_link): Don't set CPIC when doing a
+       relocateable link.  From Ralf Baechle <ralf@uni-koblenz.de>.
+
+1999-06-04  Philip Blundell  <philb@gnu.org>
+
+       * elf32-arm.h (elf_backend_got_header_size): Define.
+       (elf_backend_plt_header_size): Likewise.
+
+1999-06-28  Jim Pick  <jim@jimpick.com>
+
+       * elf32-arm.h (elf32_arm_relocate_section): Mind no_undefined
+
+Tue Jun 29 02:25:03 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * elf-hppa.c (elf_hppa_howto_table): Use bfd_elf_generic_reloc as
+       relocation function.
+       * elf32-hppa.c (hppa_elf_reloc): Kill unused/unwanted function.
+
+1999-06-27  Mark Mitchell  <mark@codesourcery.com>
+
+       * elf32-mips.c (MIPS_ELF_SRDATA_SECTION_NAME): New macro.
+       (MIPS_ELF_OPTIONS_SECTION_NAME): Likewise.
+       (MIPS_ELF_STUB_SECTION_NAME): Likewise.
+       (_bfd_mips_elf_section_from_shdr): Use them.
+       (_bfd_mips_elf_fake_sections): Likewise.  Add .srdata to the list
+       of GP-relative sections.
+       (_bfd_mips_elf_set_section_contents): Use them.
+       (_bfd_mips_elf_section_processing): Share code between .sdata and
+       .lit4/.lit8 sections.  Set appropriate flags for .srdata.
+       (mips_elf_additional_program_headers): Add handling for
+       PT_MIPS_OPTIONS segment on IRIX6.
+       (mips_elf_modify_segment_map): Likeiwse.
+       (mips_elf_final_link): Set EF_MIPS_CPIC when required by the ABI.
+       Include the options sections on IRIX6.  Don't look for GP-relative
+       sections by name; use SHF_MIPS_GPREL instead.
+       (ELF_DYNAMIC_INTERPRETER): Adjust to use /usr/lib32/libc.so.1 for
+       the N32 ABI.
+       (mips_elf_create_dynamic_sections): Don't muck about with section
+       alignments and such on IRIX6.
+       (mips_elf_adjust_dynamic_symbol): Use MIPS_ELF_STUB_SECTION_NAME.
+       (mips_elf_size_dynamic_sections): Likewise. Adjust to handle the
+       fact that ELF_DYNAMIC_INTERPRETER is no longer a constant.  Use
+       bfd_zalloc rather than bfd_alloc and memset.
+       (mips_elf_finish_dynamic_symbol): Use MIPS_ELF_STUB_SECTION_NAME.
+       Don't assert the existence of .rld_map on IRIX6.
+       (mips_elf_finish_dynamic_sections): Use MIPS_ELF_STUB_SECTION_NAME.
+               
+       * elf32-mips.c (mips_elf_adjust_dynindx): Remove.
+       (mips_elf_size_dynamic_sections): Use _bfd_elf_link_adjust_dynindx
+       instead.
+
+1999-06-26  Mark Mitchell  <mark@codesourcery.com>
+
+       * elf32-mips.c (mips_elf_swap_msym_in): New function.
+       (mips_elf_swap_msym_out): New function.
+       (mips_elf_create_msym_section): Likewise.
+       (MIPS_ELF_MSYM_SECTION_NAME): New macro.
+       (_bfd_mips_elf_final_write_processing): Set sh_link for .msym.
+       (_bfd_mips_elf_section_from_shdr): Reject an SHT_MIPS_MSYM
+       section not named .msym.
+       (_bfd_mips_elf_fake_sections): Use MIPS_ELF_MSYM_SECTION_NAME, not
+       .msym directly.  Set appropriate attributes for the .msym
+       section.
+       (mips_elf_link_hash_entry): Add min_dyn_reloc_index field.
+       (mips_elf_link_hash_newfunc): Clear it.
+       (mips_elf_create_dynamic_sections): Create the .msym section
+       on IRIX6.
+       (mips_elf_size_dynamic_sections):  Allocate space for the
+       .msym section.  Add a DT_MIPS_MSYM entry.
+       (mips_elf_finish_dynamic_symbol): Write out a .msym entry for
+       the symbol.
+       (mips_elf_finish_dynamic_sections): Assign a value for
+       DT_MIPS_MSYM.  Add .msym entries for the section symbols as well.
+
+       * elf32-mips.c (irix_compat_t): New enumeration.
+       (ABI_N32_P): New macro.
+       (IRIX_COMPAT): Likewise.
+       (SGI_COMPAT): Implement in terms of IRIX_COMPAT.
+       (mips_elf_relocate_section): Fix typo.
+       
+1999-06-26  Mumit Khan  <khan@xraylith.wisc.edu>
+
+       * peicode.h (coff_swap_scnhdr_out): Mark non readonly BFD sections
+       as writable PE sections.
+
+1999-06-26  David Mosberger  <davidm@hpl.hp.com>
+
+       * dwarf2.c (struct arange): New type.
+       (struct comp_unit): Replace LOW and HIGH by member ARANGE.
+       (arange_add): New function.
+       (decode_line_info): Keep track of address ranges that a compilation
+       unit covers.
+       (comp_unit_contains_address): Return true if address is contained
+       in _any_ of the address ranges associated with a compilation unit.
+       (_bfd_dwarf2_find_nearest_line): Call comp_unit_find_nearest_line
+       on the first comp_unit that contains the address.
+
+1999-06-26  David Mosberger  <davidm@hpl.hp.com>
+
+       * dwarf2.c (struct dwarf2_debug): Add member dwarf_line_buffer.
+       (decode_line_info): Add variable STASH and initialize it to point
+       to the per-bfd dwarf2_debug info.  Remove static variable
+       dwarf_line_buffer and use stash->dwarf_line_buffer in its place.
+
+1999-06-26  Ian Lance Taylor  <ian@zembu.com>
+
+       * elflink.h (elf_link_output_extsym): It's OK for a -Bsymbolic
+       shared library to have an undefined symbol.
+
+       From Franz Sirl <Franz.Sirl-kernel@lauterbach.com>:
+       * elf32-ppc.c (ppc_elf_relocate_section): Fix last patch.
+
+Thu Jun 24 20:59:11 1999  Jeffrey A Law  (law@cygnus.com)
+
+       * elf-hppa.c (elf_hppa_final_write_processing): New function.
+       * elf32-hppa.c: Remove everything related to symbol extension
+       sections & records.  Use the common elf_hppa_final_write_processing.
+
+1999-06-22  Mark Mitchell  <mark@codesourcery.com>
+
+       * elflink.h (size_dynamic_sections): Use user-specified init/fini
+       functions instead of _init/_fini if requested.
+
+1999-06-23  Ian Lance Taylor  <ian@zembu.com>
+
+       * elf.c (bfd_section_from_shdr): Avoid crashing on a bogus sh_link
+       field.
+
+1999-06-22  Ian Lance Taylor  <ian@zembu.com>
+
+       From Franz Sirl <Franz.Sirl-kernel@lauterbach.com>:
+       * elf32-ppc.c (ppc_elf_size_dynamic_sections): Set unused dynindx
+       field to 0, not -1.
+       (ppc_elf_finish_dynamic_sections): Check for positive section
+       dynindx field, rather than comparing against -1.
+       (ppc_elf_relocate_section): Only return false if undefined_symbol
+       or reloc_overflow fail, not always upon encountering an error.
+
 1999-06-22  Mark Mitchell  <mark@codesourcery.com>
 
        * elflink.h (link_read_relocs): Explicitly cast external_relocs to