stab-syms.c: Rewrite to improve performance. Shaves about 5% off gprof run
[binutils-gdb.git] / bfd / ChangeLog
index 0c6df02df4666100170fd59281eafd9377db3bd2..abf796d0df67a0cd57484933af0ba4f09078ed34 100644 (file)
@@ -1,3 +1,153 @@
+Tue Mar 14 05:54:33 1995  Ken Raeburn  (raeburn@kr-pc.cygnus.com)
+
+       * stab-syms.c (aout_stab_name): Moved aout_stab_names to be local
+       to this function.  Recoded function to stop using table, to
+       improve performance (on i486-netbsd host).  Left old version
+       intact under "#if 0" for further performance testing.
+
+Mon Mar 13 13:48:49 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * elfcode.h (write_relocs): Make static.  Use PTR argument as a
+       pointer to a boolean variable set to true if something fails.
+       Cast to PTR rather than void *.
+       (sym_is_global): Rewrite for clarity.
+       (map_program_segments): If the program header size is too small,
+       call _bfd_error_handler and return failure rather than aborting.
+       (NAME(bfd_elf,write_object_contents)): Pass boolean variable when
+       calling write_relocs.
+       (elf_symbol_from_bfd_symbol): Use BFD_ASSERT rather than abort.
+       (struct elf_info_failed): Define.
+       (NAME(bfd_elf,size_dynamic_sections)): Declare variables in inner
+       blocks.  Pass elf_info_failed structure when calling
+       elf_export_symbol and elf_adjust_dynamic_symbol.
+       (elf_export_symbol): Treat data argument as elf_info_failed rather
+       than bfd_link_info.  Set failed field on error.
+       (elf_adjust_dynamic_symbol): Likewise.
+       (struct elf_finfo_failed): Define.
+       (elf_bfd_final_link): Pass elf_finfo_failed structure when calling
+       elf_link_output_extsym.  Use BFD_ASSERT rather than abort.
+       (elf_link_output_extsym): Treat data argument as elf_finfo_failed
+       rather than elf_final_link_info.  Set failed field on error.
+       (elf_link_input_bfd): Use BFD_ASSERT rather than abort.
+       (elf_reloc_link_order): Likewise.
+
+       * elf32-sparc.c (elf32_sparc_size_dynamic_sections): Only write
+       out PLTRELSZ, PLTREL and JMPREL relocs if there is a .rela.plt
+       section.  Solaris 2.4 apparently does not handle empty reloc
+       information correctly.
+
+       * archive.c (bsd_write_armap): Cast getuid and getgid results to
+       long, and print with %ld.
+
+start-sanitize-arc
+Sun Mar 12 05:22:10 1995  Doug Evans  <dje@chestnut.cygnus.com>
+
+       * elf32-arc.c (elf_arc_howto_table): Relocs with implicit addends
+       don't work too well with zero src_masks.  Correct values.
+end-sanitize-arc
+
+Fri Mar 10 16:41:05 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * aoutx.h (translate_to_native_sym_flags): Always use the output
+       section if it is not NULL.
+
+Thu Mar  9 15:06:25 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * coffswap.h (coff_swap_scnhdr_out): If the line number count or
+       the reloc count does not fit, print an error and return 0.
+       * coffcode.h (coff_write_object_contents): Check return value of
+       coff_swap_scnhdr_out.
+       * ecoff.c (_bfd_ecoff_write_object_contents): Check return value
+       of bfd_coff_swap_scnhdr_out.
+
+       * bfd.c: Include <stdarg.h> or <varargs.h>, depending upon
+       ANSI_PROTOTYPES.
+       (bfd_error_handler_type): New global type.
+       (_bfd_error_program_name): New static variable.
+       (_bfd_default_error_handler): New static function.
+       (_bfd_error_handler): New BFD private global variable.
+       (bfd_set_error_handler): New globally visible function.
+       (bfd_set_error_program_name): New globally visible function.
+       * libbfd-in.h (_bfd_error_handler): Declare.
+       * bfd-in2.h, libbfd.h: Rebuild.
+
+       * aoutx.h (NAME(aout,swap_ext_reloc_in)): Add symcount parameter,
+       and use it instead of bfd_get_symcount.  Check r_index after
+       setting r_extern based on whether this is a base relative reloc.
+       (NAME(aout,swap_std_reloc_IN)): Add symcount parameter, and use it
+       instead of bfd_get_symcount.
+       (NAME(aout,slurp_reloc_table)): Pass bfd_get_symcount to reloc
+       swap routines.
+       * libaout.h (NAME(aout,swap_ext_reloc_in)): Add symcount parameter
+       to declaration.
+       (NAME(aout,swap_std_reloc_in)): Likewise.
+       * sunos.c (sunos_canonicalize_dynamic_reloc): Pass
+       info->dynsym_count to reloc swap routines.
+       * aout-ns32k.c (MY_swap_std_reloc_in): Add symcount parameter.
+       * hp300hpux.c (MY(swap_std_reloc_in)): Likewise.
+       (MY(slurp_reloc_table)): Pass bfd_get_symcount to reloc swap
+       routine.
+       * i386lynx.c (NAME(lynx,swap_ext_reloc_in)): Add symcount
+       parameter.
+       (NAME(lynx,swap_std_reloc_in)): Likewise.
+       (NAME(lynx,slurp_reloc_table)): Pass bfd_get_symcount to reloc
+       swap routines.
+
+Thu Mar  9 12:04:05 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+       * bfd.c (bfd_merge_private_bfd_data): New function vector to be
+       called by the linker to merge any private bfd data of the input
+       files and the output file.  Used by the PowerPC ELF support to
+       check whether -mrelocatable is used for all modules.
+       (bfd_set_private_flags): New function vector to be called by the
+       assembler to set private flags.  Used by the PowerPC ELF support
+       to set that a particular object file was assembled with the
+       -mrelocatable option.
+
+       * targets.c (BFD_JUMP_TABLE_COPY): Add intiialization of the
+       bfd_merge_private_bfd_data and bfd_set_private_flags function
+       vectors.
+
+       * bfd-in2.h, libbfd-in.h: Rebuild with bfd.c and targets.c
+       changes.
+
+       * elf32-ppc.c (ppc_elf_set_private_flags): New function to set the
+       ELF e_flags field.
+       (ppc_elf_copy_private_bfd_data): Copy the e_flags field from the
+       input file to the output file.
+       (ppc_elf_merge_private_bfd_data): Check for a mismatch between the
+       e_flags field of all of the linker input files.
+
+       * libelf.h (elf_obj_tdata): Add ppc_flags_init field so that the
+       PowerPC support can check if compataible e_flags are present.
+
+       * aout-target.h: Add NOP for the bfd_merge_private_bfd_data
+       and bfd_set_private_flags function vectors.
+       * coffcode.h: Ditto.
+       * elf32-target.h: Ditto.
+       * elf64-target.h: Ditto.
+       * libbfd.h: Ditto.
+       * libecoff.h: Ditto.
+       * som.c: Ditto.
+
+Wed Mar  8 00:53:54 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * cpu-mips.c (arch_info_struct): Add mips:8000 entry.
+
+       * elfcode.h (swap_out_syms): Mark an undefined BSF_WEAK symbol as
+       STB_WEAK rather than STB_GLOBAL.
+
+start-sanitize-arc
+Tue Mar  7 20:34:43 1995  Doug Evans  <dje@chestnut.cygnus.com>
+
+       * configure.in (SELECT_VECS): Split bfd_elf32_arc_vec into big/little.
+       * targets.c (bfd_target_vector): Likewise.
+       * elf32-arc.c (TARGET_BIG_SYM): Define.
+       (TARGET_BIG_NAME): Define.
+       * config/arc-elf.mt (DEFAULT_VECTOR): Set to bfd_elf32_littlearc_vec.
+       (SELECT_VECS): Add bfd_elf32_bigarc_vec.
+end-sanitize-arc
+
 Tue Mar  7 12:23:47 1995  Ian Lance Taylor  <ian@cygnus.com>
 
        * coffcode.h (bfd_coff_backend_data): Add new field