* ihex.c: New file; support for Intel Hex format.
[deliverable/binutils-gdb.git] / bfd / ChangeLog
index 0f1dda446dd9da5d8c6c5df699e791d21c96b208..2785600bdd8982f5fad8bce79d78be47b1e09e2a 100644 (file)
@@ -1,3 +1,447 @@
+Fri Dec  1 14:46:51 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * srec.c (srec_scan): Set lma as well as vma.
+
+       * ihex.c: New file; support for Intel Hex format.
+       * targets.c (enum bfd_flavour): Add bfd_target_ihex_flavour.
+       (ihex_vec): Declare.
+       (bfd_target_vector): Always include ihex_vec.
+       * bfd.c (struct _bfd): Add ihex_data field to tdata union.
+       * Makefile.in: Rebuild dependencies.
+       (BFD_LIBS): Add ihex.o
+       (BFD_LIBS_CFILES): Add ihex.c.
+       * bfd-in2.h: Rebuild.
+
+       * elf.c (assign_file_positions_for_segments): Sort the sections in
+       each segment.
+       (get_program_header_size): Return the right size if segment_map is
+       not NULL.
+       (copy_private_bfd_data): Don't bother to sort the sections.
+
+       * bfd.c (bfd_record_phdr): New function.
+       * bfd-in.h (bfd_record_phdr): Declare.
+       * bfd_in2.h: Rebuild.
+
+       * elf32-sparc.c (elf32_sparc_relocate_section): Remove bogus
+       BFD_ASSERT.
+
+       * libbfd.c (bfd_malloc, bfd_realloc): New functions.
+       (bfd_zmalloc): Return PTR, not char *.  Take size_t, not
+       bfd_size_type.
+       * libbfd-in.h (bfd_malloc, bfd_realloc): Declare.
+       (bfd_zmalloc): Change declaration.
+       * libbfd.h: Rebuild.
+       * Many files: Use bfd_malloc and bfd_realloc rather than malloc
+       and realloc.  Don't set bfd_error_no_memory if they fail.
+
+Thu Nov 30 19:32:26 1995  Kim Knuttila  <krk@cygnus.com>
+
+       * coff-ppc.c: Added macros to tidy up toc cell treatment. Numerous
+       uses as well. Added a new howto to deal with TOCREL16 relocs that 
+       are TOCDEFN as well.
+       (coff_ppc_relocate_section): Expanded treatment of ADDR32NB relocs
+       to handle RVA relocs from dlltool.
+       (ppc_coff_rtype2howto): TOCDEFN reloc addition.
+       (coff_ppc_rtype_to_howto): TOCDEFN reloc addition.
+       (ppc_coff_reloc_type_lookup): TOCDEFN reloc addition.
+
+       * coffcode.h (coff_set_alignment_hook): check idata$X sections 
+       to get the right section alignment.
+
+Thu Nov 30 16:48:18 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * elf.c (_bfd_elf_make_section_from_shdr): Don't set lma based on
+       p_paddr if p_paddr is zero.
+       (make_mapping): Set includes_filehdr and includes_phdrs for first
+       PT_LOAD segment.
+       (map_sections_to_segments): Set includes_phdrs for PT_PHDR
+       segment.
+       (assign_file_positions_for_segments): Handle includes_filehdr and
+       includes_phdrs.  Remove special handling of PT_PHDR and first
+       PT_LOAD segments.
+       (copy_private_bfd_data): Set includes_filehdr and includes_phdr
+       when appropriate.  Remove special handling of PT_PHDR segment.
+       Use a more complex condition for when a section is included in a
+       segment to handle Solaris linker oddities.
+
+Thu Nov 30 11:17:33 1995  Manfred Hollstein KS/EF4A 60/1F/110 #40283  <manfred@lts.sel.alcatel.de>
+
+       * coff-m88k.c (howto_table): Reformatted for easier reading;
+       special_function now points to new function m88k_special_reloc.
+       (howto_hvrt16): Function previously used for handling HVRT16 relocs
+       removed.
+       (rtype2howto): Do not add reloc's r_offset to the addend, this will
+       be done correctly by m88k_special_reloc.
+       (reloc_processing): New function to be used by RELOC_PROCESSING.
+       (RELOC_PROCESSING): Define to call reloc_processing.
+
+Wed Nov 29 12:42:36 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * peicode.h (pe_print_idata): Call malloc rather than xmalloc.
+       (pe_print_pdata): Likewise.
+
+       * opncls.c (bfd_alloc_by_size_t): Set bfd_error_no_memory if
+       obstack_alloc fails.
+       (bfd_alloc_finish): Set bfd_error_no_memory if obstack_finish
+       fails.
+       * libbfd.c (bfd_zmalloc): Set bfd_error_no_memory if malloc fails.
+       * Many files: don't set bfd_error_no_memory if one of the above
+       routines fails.
+
+       * elf.c (assign_file_positions_for_segments): Don't adjust p_paddr
+       if p_paddr_valid is set.
+       (copy_private_bfd_data): New static function.
+       (_bfd_elf_copy_private_section_data): Call copy_private_bfd_data.
+
+       * elf.c (assign_file_positions_for_segments): Fix case where extra
+       program headers were allocated.
+
+       * elf.c (_bfd_elf_print_private_bfd_data): New function.
+       * elf-bfd.h (_bfd_elf_print_private_bfd_data): Declare.
+       * elfxx-target.h (bfd_elfNN_bfd_print_private_bfd_data): Define to
+       _bfd_elf_print_private_bfd_data.
+
+       * coff-alpha.c (alpha_ecoff_swap_reloc_in): Don't abort if
+       r_symndx is RELOC_SECTION_NONE for an ALPHA_R_IGNORE reloc.
+       Change a RELOC_SECTION_LITA symndx to RELOC_SECTION_ABS.
+       (alpha_ecoff_swap_reloc_out): Change RELOC_SECTION_ABS to
+       RELOC_SECTION_LITA for ALPHA_R_IGNORE.
+       (alpha_adjust_reloc_out): For ALPHA_R_IGNORE, don't change
+       RELOC_SECTION_ABS to RELOC_SECTION_NONE.
+
+Tue Nov 28 16:59:50 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * elf-bfd.h (struct elf_obj_tdata): Add segment_map field.
+       * elf.c (make_mapping): New static function.
+       (map_sections_to_segments): New static function.
+       (elf_sort_sections): New static function.
+       (assign_file_positions_for_segments): New static function.
+       (map_program_segments): Remove.
+       (get_program_header_size): Remove sorted_hdrs, count, and
+       maxpagesize parameters.  Simplify.
+       (assign_file_positions_except_relocs): When generating an
+       executable, use assign_file_positions_for_segments.
+       (elf_sort_hdrs): Remove.
+       (_bfd_elf_sizeof_headers): Remove eliminated parameters from call
+       to get_program_header_size.
+
+Mon Nov 27 12:27:46 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * hp300hpux.c (MY(callback)): Set lma as well as vma.
+
+       * configure, config.in: Regenerate with autoconf 2.7.
+
+       * elf32-i386.c (elf_backend_plt_readonly): Set correctly, to 1.
+       * elf32-sparc.c (elf_backend_plt_readonly): Set correctly, to 0.
+
+Wed Nov 22 12:02:09 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * ecoff.c (_bfd_ecoff_new_section_hook): Handle .rconst section.
+       (ecoff_sec_to_styp_flags): Likewise.
+       (_bfd_ecoff_styp_to_sec_flags): Handle STYP_RCONST.
+       (ecoff_set_symbol_info): Handle scRConst.
+       (ecoff_slurp_reloc_table): Handle RELOC_SECTION_RCONST.
+       (ecoff_compute_section_file_positions): Handle .rconst section.
+       (_bfd_ecoff_write_object_contents): Likewise.
+       (ecoff_link_check_archive_element): Handle scRConst.
+       (ecoff_link_add_externals): Likewise.
+       (ecoff_link_write_external): Handle .rconst section.
+       (ecoff_reloc_link_order): Likewise.
+       * ecofflink.c (bfd_ecoff_debug_accumulate): Handle scRConst.
+       * coff-alpha.c (alpha_convert_external_reloc): Handle .rconst
+       section.
+       (alpha_relocate_section): Handle RELOC_SECTION_RCONST.
+
+       * sunos.c (sunos_scan_dynamic_symbol): Only set written if the
+       DEF_DYNAMIC flag is set.
+
+Tue Nov 21 13:25:29 1995  Ken Raeburn  <raeburn@cygnus.com>
+
+       * host-aout.c: If TRAD_HEADER is defined, include it.
+
+Tue Nov 21 13:03:57 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * aclocal.m4 (AC_PROG_CC): Remove local definition.
+       (BFD_BINARY_FOPEN): Require AC_CANONICAL_SYSTEM.
+       (BFD_NEED_DECLARATION): New function.
+       * configure.in: Use BFD_NEED_DECLARATION.
+       * acconfig.h: Put NEED_DECLARATION_* in @TOP@ section.
+       * configure, config.in: Rebuild with autoconf 2.6.
+
+       * xcofflink.c (bfd_xcoff_size_dynamic_sections): Clear
+       special_sections before returning when called with a non XCOFF
+       BFD.
+
+       * coffgen.c (coff_renumber_symbols): Sort common symbols with
+       global symbols.
+
+       * coffcode.h (coff_compute_section_file_positions): Only pad the
+       previous section to force file alignment when creating an
+       executable.
+
+Mon Nov 20 14:54:09 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * coffcode.h (coff_compute_section_file_positions): If
+       RS6000COFF_C, set up the .debug section.
+
+       * xcofflink.c (xcoff_link_input_bfd): Adjust the TOC anchor value
+       if it is not large enough to accomodate the entire TOC area with
+       signed 16 bit offsets.
+       (xcoff_write_global_symbol): Handle negative TOC offsets in global
+       linkage code.
+       (_bfd_ppc_xcoff_relocate_section): Adjust relocations against a
+       TOC anchor to use the TOC value used in the output file.
+
+Sat Nov 18 18:01:41 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * coffgen.c (_bfd_coff_get_external_symbols): Cast malloc return.
+       (_bfd_coff_read_string_table): Likewise.
+
+Sat Nov 18 19:43:04 1995  Richard Earnshaw (rearnsha@armltd.co.uk)
+
+       * pe-arm.c: Fix typos.
+       * coff-arm.c: Likewise.
+
+Fri Nov 17 16:22:04 1995  Kim Knuttila  <krk@cygnus.com>
+
+       * coff-ppc.c (list_ele): Added "cat"egory member.
+       (record_toc): New category parameter (priv or pub).
+       (ppc_record_toc_entry): Check to see if toc bounds exceeded.
+       (ppc_process_before_allocation): Removed embrionic data-in-toc from
+       the mainline. It addes extra toc cells in error.
+       (ppc_coff_swap_sym_in_hook): Added some documentation.
+       (dump_toc): Can now diagnose "virtual toc" chicanery.
+
+Fri Nov 17 10:41:25 1995  Philippe De Muyter  <phdm@info.ucl.ac.be>
+
+       * elf-bfd.h (struct elf_link_hash_table): Change type of
+       dynsymcount and bucketcount fields from size_t to bfd_size_type.
+
+Fri Nov 17 10:02:58 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * coffcode.h (coff_pointerize_aux_hook): I960 version: don't
+       pointerize C_LEAFSTAT or C_LEAFEXT entries.
+
+       * elflink.h (NAME(bfd_elf,size_dynamic_sections)): Only create
+       DT_INIT and DT_FINI entries if the _init or _fini symbol is
+       defined or mentioned in a regular file.
+
+Thu Nov 16 15:16:42 1995  Kim Knuttila  <krk@cygnus.com>
+
+       * coff-ppc.c (ppc_record_data_in_toc_entry): new function
+       (coff_ppc_relocate_section): Handle TOCDEFN attribute
+       (coff_ppc_relocate_section): Correct REL24 handling
+       (ppc_process_before_allocation): Correct TOCDEFN handling
+
+       * peicode.h (dir_names): Added name descriptions
+
+Thu Nov 16 03:38:03 1995  Ken Raeburn  <raeburn@cygnus.com>
+
+       * VERSION: Updated to cygnus-2.6.
+
+Wed Nov 15 19:30:07 1995  Ken Raeburn  <raeburn@cygnus.com>
+
+       * targets.c (m68k4knetbsd_vec): Declare.
+
+Wed Nov 15 18:05:52 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * targets.c (bfd_target): Change type of second argument to
+       _bfd_print_private_bfd_data from void * to PTR.
+       * libbfd-in.h (_bfd_generic_bfd_print_private_bfd_data): Cast
+       using PTR rather than void *.
+       * bfd-in2, libbfd.h: Rebuild.
+       * peicode.h (pe_print_private_bfd_data): Change vfile from void *
+       to PTR.
+       * elfxx-target.h (bfd_elfNN_bfd_print_private_bfd_data): Define as
+       _bfd_generic_bfd_print_private_bfd_data rather than casting
+       bfd_true.
+
+Wed Nov 15 04:09:14 1995  Ken Raeburn  <raeburn@cygnus.com>
+
+       * Makefile.in (.dep1): Fix stupid typo in last change.  Remove any
+       "DO NOT DELETE" lines or blank lines that mkdep writes on some
+       systems.
+       (BFD_LIBS_CFILES, ALL_MACHINES_CFILES, BFD32_BACKENDS_CFILES,
+       BFD64_BACKENDS_CFILES): New variables.
+       (CFILES): Use them.
+       
+Tue Nov 14 11:52:23 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * peicode.h (coff_swap_aouthdr_out): For PPC PE, start isize at 0,
+       not at the file position of the first section.
+       * coffcode.h (coff_compute_section_file_positions): Avoid using
+       unportable #elif.
+       (coff_write_object_contents): When generating a PPC PE executable
+       with no symbols, round up the file size to a COFF_PAGE_SIZE
+       boundary.
+       * cofflink.c (_bfd_coff_final_link): If there are no symbols,
+       don't write out a string table.
+
+       * elf.c (bfd_section_from_shdr): When using a different section
+       header, pass the new one to _bfd_elf_make_section_from_shdr.
+       (elf_fake_sections): Don't set sh_info and sh_entsize fields.
+       (elf_map_symbols): Add section VMA to symbol value when comparing
+       against 0.
+       (_bfd_elf_compute_section_file_positions): Only build symbol table
+       if there are some symbols.  Set file offset of symtab and strtab
+       sections.
+       (assign_file_positions_except_relocs): Remove dosyms parameter.
+       Change all callers.  Never set file offset of symtab and strtab
+       sections.
+       (_bfd_elf_copy_private_section_data): New function.
+       (MAP_ONESYMTAB, MAP_DYNSYMTAB, MAP_STRTAB, MAP_SHSTRTAB): Define.
+       (_bfd_elf_copy_private_symbol_data): New function.
+       (swap_out_syms): Check for special mapping of st_shndx created by
+       copy_private_symbol_data.
+       * elfxx-target.h: Use new copy routines.
+       * elf-bfd.h (_bfd_elf_copy_private_symbol_data): Declare.
+       (_bfd_elf_copy_private_section_data): Declare.
+
+       * config.bfd (sh-*-*): Set targ_defvec to shcoff_vec.
+
+       * coffcode.h (coff_slurp_symbol_table): If COFF_WITH_PE, handle
+       C_NT_WEAK.
+
+       * coff-sh.c (shlcoff_vec): Use _bfd_generic_archive_p, not
+       _bfd_dummy_target, matching the recent change to archive
+       recognition.
+
+Mon Nov 13 13:24:38 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * libbfd.c (bfd_get_file_window): Use casts to avoid doing
+       arithmetic on PTR types.
+
+       * aout-target.h (MY(callback)): Set the lma of the sections.
+
+       * ecoff.c (ecoff_reloc_link_order): Turn a reloc against a defined
+       symbol into a reloc against the section.
+
+Mon Nov 13 07:31:35 1995  Kim Knuttila  <krk@cygnus.com>
+
+       * coff-ppc.c (ppc_coff_link_hash_entry): added support for inline
+       glue for the relocs: IMGLUE and IFGLUE.
+       (record_toc): new function - tracks toc contents
+       (ppc_mark_symbol_as_glue): new function - supports the IMGLUE reloc
+       (coff_ppc_relocate_section): Added support and fixes for IMGLUE/IFGLUE
+       (ppc_coff_rtype2howto): removed invalid IMGLUE hack
+       (coff_ppc_rtype_to_howto): removed invalid IMGLUE hack
+       (ppc_record_toc_entry): Removed a debug define (duh)
+
+       * peicode.h (coff_swap_scnhdr_out): Fixed invalid strcmp for ".reldata"
+       (pe_print_idata): New function - formats the idata section data
+       (pe_print_pdata): New function - formats the pdata section data
+       (pe_print_private_bfd_data): calls to above
+
+Sun Nov 12 12:23:24 1995  Stan Shebs  <shebs@andros.cygnus.com>
+
+       * Makefile.in (bfd_libs_here, etc): Provide empty definitions.
+       * coff-rs6000.c (rs6000coff_vec): Add conditional defines
+       TARGET_SYM and TARGET_NAME for vector and BFD name.
+       * coff-pmac.c (pmac_xcoff_vec): Remove.
+       (TARGET_SYM, TARGET_NAME): Define.
+       * coffcode.h (coff_set_arch_mach_hook) [POWERMAC]: Set the
+       machine to 0, not all PowerMacs are 601s.
+
+Fri Nov 10 12:10:14 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * elfcode.h (elf_object_p): Read in any program headers.
+       * elf.c (_bfd_elf_make_section_from_shdr): Adjust section lma
+       based on the program headers, if any.
+       (elf_fake_sections): Set sh_addr from the vma, not the lma.
+       (map_program_segments): Set p_paddr of program headers based on
+       the lma.
+
+Thu Nov  9 13:01:31 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * archive.c (bfd_generic_archive_p): Preserve tdata in case of
+       failure.
+
+       * aoutx.h (NAME(aout,final_link)): Report a reasonable error when
+       trying to do a relocateable link with a non-a.out object file.
+
+       * archive.c (bfd_generic_archive_p): Check the first object file
+       in an archive even if target_defaulted is set.  If the object file
+       has the wrong xvec, reject it.
+
+       * aoutx.h (NAME(aout,set_section_contents)): If a section can not
+       be represented, report the name via _bfd_error_handler.
+       (translate_to_native_sym_flags): Likewise.
+       * elf32-mips.c (mips_elf_final_link): Likewise.
+       * oasys.c (oasys_write_sections): Likewise.
+
+       * coffcode.h (coff_set_alignment_hook): Write RS6000COFF_C version
+       which checks for STYP_OVRFLO sections.
+       (coff_compute_section_file_positions): If RS6000COFF_C, handle
+       reloc and lineno count overflows.
+       (coff_write_object_contents): Call coff_count_linenumbers before
+       coff_compute_section_file_positions.  If RS6000COFF_C, handle
+       reloc and lineno count overflows.
+       * xcofflink.c (_bfd_xcoff_bfd_final_link): Count line numbers and
+       relocs before dealing with .pad sections.  Count overflow section
+       headers when handling .pad sections.
+
+       * coffcode.h (coff_write_object_contents): Set a.out vstamp to 1
+       if RS6000COFF_C.
+
+       * xcofflink.c (XCOFF_DESCRIPTOR): Define.
+       (struct xcoff_link_hash_table): Add descriptor_section and
+       special_sections fields.
+       (_bfd_xcoff_bfd_link_hash_table_create): Initialize new fields.
+       (xcoff_link_add_symbols): Set linkage section alignment.  Create
+       descriptor section.  Check for magic symbol names (_text, etc.),
+       and record them in special_sections if found.  Set
+       XCOFF_DESCRIPTOR flag for a function descriptor, and set its
+       descriptor field to point back to the function code symbol.
+       (xcoff_sweep): Always mark the special descriptor_section.
+       (bfd_xcoff_export_symbol): Check whether the symbol might be a
+       function descriptor, and mark it if it is.
+       (bfd_xcoff_size_dynamic_sections): Add new special_sections
+       parameter, and fill it in.  Allocate space for the descriptor
+       section.
+       (xcoff_build_ldsyms): Set XCOFF_DEF_REGULAR flag when defining
+       global linkage code.  If an undefined function descriptor is
+       exported, arrange to define it.  Warn about any other undefined
+       exported symbol.
+       (_bfd_xcoff_bfd_final_link): Write out the descriptor section.
+       (xcoff_write_global_symbol): Create a function descriptor when
+       necessary.
+       * bfd-in.h (bfd_xcoff_size_dynamic_sections): Update declaration.
+       * bfd-in2.h: Rebuild.
+
+Thu Nov  9 08:40:23 1995  Kim Knuttila  <krk@cygnus.com>
+
+       * coff-ppc.c (ppc_coff_link_hash_entry): new types for hashing
+       (ppc_coff_link_hash_table): new types for hashing
+       (ppc_coff_link_hash_newfunc): hash entry constructor
+       (ppc_coff_link_hash_table_init): hash table initializer
+       (ppc_coff_link_hash_table_create): hash table constructor
+       (ppc_record_toc_entry): changed references to hash table
+       (coff_ppc_relocate_section): changed references to hash table
+
+       * libcoff-in.h (coff_link_hash_entry): removed toc_offset
+       * libcoff.h: Rebuild
+
+       * cofflink.c (_bfd_coff_link_hash_newfunc): removed toc_offset init
+       (coff_link_add_symbols): removed toc_offset init
+
+Thu Nov  9 04:00:38 1995  Ken Raeburn  <raeburn@cygnus.com>
+
+       * Makefile.in (.dep1): Make sure the file mkdep is to write exists
+       first.
+
+       * configure.in: Added new option --with[out]-mmap.  Set USE_MMAP
+       if it is given and mmep is available.
+       * acconfig.h: Undef USE_MMAP.
+       * configure, config.in: Regenerated.
+       * aoutx.h: If USE_MMAP is not defined, do all symbol and string
+       table handling the old way.
+       (aout_get_external_symbols): Don't complain if last byte of string
+       table is nonzero.
+       * libbfd.c [HAVE_MADVISE]: Include sys/types.h and sys/mman.h.
+       (bfd_free_window) [! USE_MMAP]: Don't define.
+       (bfd_get_file_window,
+       _bfd_generic_get_section_contents_in_window) [! USE_MMAP]: Abort.
+
 Wed Nov  8 20:03:44 1995  Eric Freudenthal <freudenthal@nyu.edu>
 
        * coff-a29k.c (SIGN_EXTEND_HWORD): Use ~0xffff rather than
@@ -5,6 +449,11 @@ Wed Nov  8 20:03:44 1995  Eric Freudenthal <freudenthal@nyu.edu>
 
 Wed Nov  8 11:31:11 1995  Ian Lance Taylor  <ian@cygnus.com>
 
+       * coff-a29k.c (a29k_reloc): Change handling of R_IREL reloc to be
+       compatible with AMD generated COFF files.  Try to support both AMD
+       and GNU formats simultaneously.
+       (coff_a29k_relocate_section): Likewise.
+
        * libbfd.c (bfd_get_file_window): Change writable parameter from
        int to boolean; update all callers.  Pass MAP_SHARED if not
        writable--it's required on Solaris.  Cast fprintf argument to
This page took 0.03438 seconds and 4 git commands to generate.