]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - bfd/ChangeLog
* elf.c (elfcore_grok_openbsd_procinfo)
[thirdparty/binutils-gdb.git] / bfd / ChangeLog
index df3961fa9b123f7a547558f4e3c460a29a7604f1..750b2e26192789957054c7401ccf60009bf453eb 100644 (file)
@@ -1,3 +1,328 @@
+2009-03-18  Mark Kettenis  <kettenis@gnu.org>
+
+       * elf.c (elfcore_grok_openbsd_procinfo) 
+       (elfcore_grok_openbsd_note): New functions.
+       (elf_parse_notes): Handle notes from OpenBSD ELF core files.
+
+2009-03-18  Alan Modra  <amodra@bigpond.net.au>
+
+       * vms-hdr.c: Don't include alloca.h.
+       * elf32-m68hc1x.c: Include alloca-conf.h.
+       * xsym.c: Likewise.
+       * elf64-hppa.c: Likewise.  Remove existing #if's handling alloca.
+       * som.c: Likewise.
+       * Makefile.am: Run "make dep-am".
+       * Makefile.in: Regenerate.
+
+2009-03-17  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * elf32-arm.c (elf32_arm_check_relocs): Correct symbian_p test.
+
+2009-03-17  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.h (struct spu_elf_params): ovly_flavour now only 1 bit.
+       Add compact_stub.
+       (emum _ovly_flavour): Delete ovly_compact, ovly_none.
+       * elf32-spu.c (struct spu_link_hash_table): Replace ovly_load and
+       ovly_return fields with ovly_entry[2].  Adjust all users.
+       (spu_elf_find_overlays): Set ovly_entry[1] from __icache_call_handler
+       when soft-icache.
+       (spu_elf_build_stubs): Likewise.
+       (ovl_stub_size): Change arg to spu_elf_params pointer.  Adjust for
+       ovly_flavour changes.  Update all callers.
+       (ovl_stub_size_log2): New function.
+       (build_stub): Handle compact icache stubs.  Use different manager
+       entry point for stubs in non-icache area.
+       (spu_elf_size_stubs): Don't allocate space for indirect branch
+       descriptors.
+       (spu_elf_build_stubs): And don't built them.
+
+2009-03-16  Andrew Stubbs  <ams@codesourcery.com>
+
+       * dwarf2.c (read_section): Always use rawsize, if available.
+
+2009-03-16  Alan Modra  <amodra@bigpond.net.au>
+
+       * simple.c (bfd_simple_get_relocated_section_contents): Use larger
+       of rawsize and size for buffer.
+
+2009-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * elf32-spu.c (spu_elf_check_vma): Do not reset auto_overlay
+       parameter just because fixed sections fit into local store.
+       (spu_elf_auto_overlay): Do not declare as "noreturn".  Skip
+       generating overlays if fixed sections plus reserved stack
+       and heap space fit into local store.
+
+2009-03-15  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (build_stub): Correct icache set_id.
+       (spu_elf_relocate_section): Likewise.
+
+2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * xcofflink.c (xcoff_link_check_archive_element): Only free the
+       symbol table if it was created by the current call.
+
+2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * xcofflink.c (xcoff_build_ldsyms): Give imported descriptors
+       class XMC_DS rather than XMC_UA.
+
+2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * bfd-in.h (bfd_xcoff_size_dynamic_sections): Replace the
+       bfd_boolean export_defineds parameter with an unsigned int
+       auto_export_flags parameter.
+       * bfd-in2.h: Regenerate.
+       * xcofflink.c (xcoff_archive_contains_shared_object_p): New function,
+       split out from xcoff_build_ldsyms.
+       (xcoff_covered_by_expall_p): New function.
+       (xcoff_auto_export_p): New function, split out from xcoff_build_ldsyms
+       but with extra code to handle -bexpfull and -bexpall.
+       (xcoff_mark_auto_exports): New function.
+       (xcoff_build_ldsyms): Use xcoff_auto_export_p to decide whether
+       a function should be automatically exported.
+       (bfd_xcoff_size_dynamic_sections): Replace the export_defineds
+       parameter with an auto_export_flags parameter.  Update ldinfo
+       accordingly.  Use xcoff_mark_auto_exports to mark all automatically-
+       exported symbols.
+
+2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * xcofflink.c (xcoff_mark_symbol_by_name): New function.
+       (bfd_xcoff_size_dynamic_sections): Use it to mark the entry,
+       init and fini functions.  Do garbage collection for objects
+       without an entry point too.
+
+2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * coffcode.h (coff_pointerize_aux_hook): Update CSECT_SYM_P to
+       check whether a symbol has csect information.
+       (coff_print_aux): Likewise.
+       * coff-rs6000.c (_bfd_xcoff_swap_aux_in): Handle auxillary csect
+       information for C_AIX_WEAKEXT too.
+       (_bfd_xcoff_swap_aux_out): Likewise.
+       (xcoff_reloc_type_br): Handle defweak symbols too.
+       * coff64-rs6000.c (_bfd_xcoff64_swap_aux_in): Handle auxillary csect
+       information for C_AIX_WEAKEXT too.
+       (_bfd_xcoff64_swap_aux_out): Likewise.
+       (xcoff64_reloc_type_br): Handle defweak symbols too.
+       * coffgen.c (coff_print_symbol): Handle auxillary function
+       information for C_AIX_WEAKEXT too.
+       * xcofflink.c (_bfd_xcoff_canonicalize_dynamic_symtab): Set BSF_WEAK
+       instead of BSF_GLOBAL if the L_WEAK flag is set.
+       (xcoff_dynamic_definition_p): New function.
+       (xcoff_link_add_dynamic_symbols): Use it to decide whether ldsym
+       defines h.  Don't change h if ldsym isn't the definition.  Otherwise,
+       always take the symbol class from the ldsym.  Use weak bfd symbol
+       types for weak ldsyms.
+       (xcoff_link_add_symbols): Use CSECT_SYM_P and EXTERN_SYM_P.
+       Fix the check for whether a definition is from a shared object.
+       Allow redefinitions of weak symbols.
+       (xcoff_link_check_ar_symbols): Use EXTERN_SYM_P.
+       (xcoff_keep_symbol_p): Likewise.
+       (bfd_xcoff_size_dynamic_sections): Use CSECT_SYM_P.
+       (xcoff_link_input_bfd): Use CSECT_SYM_P and EXTERN_SYM_P.
+       Add .loader entries for C_AIX_WEAKEXT as well as C_EXT symbols,
+       but mark them as L_WEAK.
+       (xcoff_write_global_symbol): Treat weak symbols as C_AIX_WEAKEXT
+       instead of C_EXT if C_AIX_WEAKEXT == C_WEAKEXT.
+
+2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * xcofflink.c (xcoff_mark): When walking the relocations,
+       only mark the target symbol or the target section, not both.
+       (xcoff_final_definition_p): New function.
+       (xcoff_keep_symbol_p): Use it to check whether an external XCOFF
+       symbol is a valid definition of the associated output symbol.
+       Use XCOFF_ALLOCATED to stop the same hash table entry having
+       two output symbols.
+       (bfd_xcoff_size_dynamic_sections): Set XCOFF_ALLOCATED when
+       keeping a symbol.
+       (xcoff_link_input_bfd): Use xcoff_final_definition_p.
+
+2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * xcofflink.c (bfd_xcoff_import_symbol): Treat imported absolute
+       symbols as XMC_XO.
+
+2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * libcoff-in.h (xcoff_tdata): Add a lineno_counts field.
+       * libcoff.h: Regenerate.
+       * xcofflink.c (xcoff_link_add_symbols): Record per-symbol
+       line-number counts in the bfd's lineno_counts field.
+       Don't keep per-csect line-number counts.
+       (xcoff_sweep): Don't update per-csect line-number counts.
+       (bfd_xcoff_size_dynamic_sections): Count the number of line-number
+       entries in each output section.
+       (xcoff_link_input_bfd): Get the number of line numbers from
+       the bfd's lineno_counts field, rather than recalculating it
+       from scratch.  Fix the range check when updating C_BINCL and
+       C_EINCL symbols.
+       (_bfd_xcoff_bfd_final_link): Don't count the output line numbers
+       here.  Don't expect csects to have line-number counts.
+
+2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * libcoff-in.h (xcoff_tdata): Change debug_indices to a signed long.
+       * libcoff.h: Regenerate.
+       * xcofflink.c (xcoff_keep_symbol_p): New function, using the
+       "skip" logic from xcoff_link_input_bfd.
+       (bfd_xcoff_size_dynamic_sections): Explicitly skip dynamic
+       objects in a dynamic link, rather than checking whether csectpp
+       is null.  Always allocate debug_index for other objects,
+       and always go through the loop.  Update the type of debug_index
+       after the change above.  Read the auxillary csect information
+       and use xcoff_keep_symbol_p to decide whether a symbol should
+       be kept.  Set its debug_index to -2 if not.
+       (xcoff_link_input_bfd): Update the type of debug_index after
+       the change above and always expect it to be nonnull.  Use it to
+       test whether a symbol should be stripped, rather than making the
+       decision here.  Postpone all symbol creation to the second pass.
+
+2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * xcofflink.c: (xcoff_mark_symbol): Mark the TOC section when
+       creating a descriptor.
+       (xcoff_sweep): Don't mark toc_section unless it's needed.
+       (bfd_xcoff_size_dynamic_sections): Skip the toc_section
+       when marking every bfd.
+       (xcoff_link_input_bfd): Skip all TOC anchors.
+       (xcoff_toc_section_p, xcoff_find_tc0): New functions.
+       (_bfd_xcoff_bfd_final_link): Don't set the output bfd's TOC anchor
+       to -1; call xcoff_find_tc0 instead.
+
+2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * libcoff-in.h (xcoff_section_tdata): Update commentary.
+       * libcoff.h: Regenerate.
+       * xcofflink.c (xcoff_link_add_symbols): Set the csect of XTY_ER
+       symbols to bfd_und_section_ptr or bfd_abs_section_ptr, rather than
+       the previous symbol's csect.  Treat last_symndx as an inclusive value
+       and simplify its handling.
+       (xcoff_mark): Treat last_symndx as an inclusive value.  Only mark
+       symbols with the right csect.  Don't mark rsec when processing
+       relocations against undefined or absolute sections.  
+       (bfd_xcoff_size_dynamic_sections): Don't check the SEC_MARK flag
+       of bfd_und_section_ptr.
+       (xcoff_link_input_bfd): Likewise.
+
+2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * coff-rs6000.c (xcoff_ppc_relocate_section): Report relocations
+       against undefined symbols if the symbol's XCOFF_WAS_UNDEFINED
+       flag is set.  Assert that all undefined symbols are either
+       imported or defined by a dynamic object.
+       * coff64-rs6000.c (xcoff64_ppc_relocate_section): Likewise.
+       * xcofflink.c (xcoff_link_add_symbols): Extend function-symbol
+       handling to all relocations.  Only set XCOFF_CALLED for function
+       symbols.
+       (xcoff_find_function): New function, split out from...
+       (bfd_xcoff_export_symbol) ...here.
+       (xcoff_set_import_path): New function, split out from...
+       (bfd_xcoff_import_symbol): ...here.  Remove assertion for old
+       meaning of XCOFF_CALLED.
+       (xcoff_mark_symbol): If we mark an undefined and unimported
+       symbol, find some way of defining it.  If the symbol is a function
+       descriptor, fill in its definition automatically.  If the symbol
+       is a function, mark its descriptor and allocate room for global
+       linkage code.  Otherwise mark the symbol as implicitly imported.
+       Move the code for creating function descriptors from...
+       (xcoff_build_ldsyms): ...here.  Use XCOFF_WAS_UNDEFINED to 
+       check for symbols that were implicitly defined.
+       (xcoff_mark): Don't count any dynamic relocations against
+       function symbols.
+       (bfd_xcoff_size_dynamic_sections): Save the rtld parameter
+       in the xcoff link info.
+       (xcoff_link_input_bfd): Remove handling of undefined and
+       unexported symbols.
+
+2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * coff-rs6000.c (xcoff_reloc_type_br): Make the branch absolute
+       if the target is absolute.  Fix comment typo.
+       (xcoff_ppc_relocate_section): Remove FIXME.
+       * coff64-rs6000.c (xcoff64_reloc_type_br): Make the branch absolute
+       if the target is absolute.
+
+2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * xcofflink.c (xcoff_mark, xcoff_link_input_bfd): Don't copy
+       R_POS and R_NEG relocations against absolute symbols to the
+       .loader section.
+
+2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * coff64-rs6000.c (xcoff64_write_object_contents): Set the cputype
+       to 2 for bfd_mach_ppc_620.
+
+2009-03-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+       * config.bfd: Treat AIX 6+ in the same way as AIX 5.
+       * configure.in: Likewise.
+       * configure: Regenerate.
+
+2009-03-13  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR binutils/9945
+       * elf.c (assign_section_numbers): Generate symbol table if there
+       is any relocation in output.
+       (_bfd_elf_compute_section_file_positions): Likewise.
+
+2009-03-13  Nick Clifton  <nickc@redhat.com>
+
+       PR 9934
+       * elf-bfd.h (NUM_SHDR_ENTRIES): Cope with an empty section.
+       * elflink.c (elf_link_read_relocs_from_section): Use
+       NUM_SHDR_ENTRIES.  Gracefully handle the case where there are
+       relocs but no symbol table.
+       * elf32-arm.c (elf32_arm_check_relocs): Likewise.
+
+2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/9938
+       * elf32-i386.c (elf_i386_check_tls_transition): Use strncmp
+       to check ___tls_get_addr.
+
+       * elf64-x86-64.c (elf64_x86_64_check_tls_transition): Use
+       strncmp to check __tls_get_addr.
+
+2009-03-12  Andrew Stubbs  <ams@codesourcery.com>
+
+       * dwarf2.c (read_section): Always check the offset, even when the
+       section has been read before.
+
+2009-03-11  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_check_tls_transition): Fix a typo in
+       comments.
+
+2009-03-11  Chris Demetriou  <cgd@google.com>
+
+       * bfd.c (BFD_DETERMINISTIC_OUTPUT): New flag.
+       * bfd-in2.h: Regenerate.
+       * archive.c (bfd_ar_hdr_from_filesystem): If BFD_DETERMINISTIC_OUTPUT
+       flag is set, use 0 for uid, gid, and timestamp, and use 0644 for file
+       mode.
+       (bsd_write_armap): Likewise.
+       (_bfd_archive_bsd_update_armap_timestamp): If BFD_DETERMINISTIC_OUTPUT
+       flag is set, do nothing.
+       (coff_write_armap): If BFD_DETERMINISTIC_OUTPUT flag is set, use 0
+       for timestamp.
+
+2009-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * elf32-spu.c (find_function_stack_adjust): Handle sf instruction
+       used to update stack pointer.
+
+2009-03-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR binutils/9921
+       * som.c (som_bfd_derive_misc_symbol_info): Set symbol type ST_ABSOLUTE
+       for unknown symbols in absolute section.
+
 2009-03-06  Nick Clifton  <nickc@redhat.com>
 
        * po/es.po: Updated Spanish translation.