Commit Graph

6341 Commits

Author SHA1 Message Date
Alan Modra 3dea8fca8b * elf.c (elf_modify_segment_map): Add remove_empty_load param.
Don't remove empty PT_LOAD header if false.
	(_bfd_elf_map_sections_to_segments): If user phdrs, pass false
	to elf_modify_segment_map.
	(assign_file_positions_for_load_sections): Pass false to
	elf_modify_segment_map.
2007-08-13 00:44:20 +00:00
Alan Modra ac2df442ac bfd/
* elf64-ppc.c (ADDI_R12_R12, LD_R11_0R2, LD_R2_0R2): Define.
	Update stub comments.
	(build_plt_stub): Build two variants, one without "addis".
	(ppc_build_one_stub): Build stubs without "addis" if possible.
	(ppc_size_one_stub): Size new stubs.
ld/testsuite/
	* ld-powerpc/relbrlt.s (.text.pad2): Adjust space.
	* ld-powerpc/relbrlt.d: Update.
	* ld-powerpc/tlsexe.d: Update.
	* ld-powerpc/tlsexe.g: Update.
	* ld-powerpc/tlsexe.r: Update.
	* ld-powerpc/tlsexetoc.d: Update.
	* ld-powerpc/tlsexetoc.g: Update.
	* ld-powerpc/tlsexetoc.r: Update.
	* ld-powerpc/tlsso.d: Update.
	* ld-powerpc/tlsso.g: Update.
	* ld-powerpc/tlsso.r: Update.
	* ld-powerpc/tlstocso.d: Update.
	* ld-powerpc/tlstocso.g: Update.
2007-08-13 00:20:59 +00:00
Alan Modra d673094738 daily update 2007-08-13 00:00:05 +00:00
Alan Modra f18b2e1bc4 daily update 2007-08-12 00:00:06 +00:00
Richard Sandiford 2f964f43a7 bfd/
* config.bfd (sh-*-vxworks): Define targ_underscore to "yes".
2007-08-11 17:31:23 +00:00
Alan Modra 124c70ca86 daily update 2007-08-11 00:00:06 +00:00
Alan Modra 470e0e5f84 daily update 2007-08-10 00:00:07 +00:00
Michael Snyder 6b8f0fd579 2007-08-09 Michael Snyder <msnyder@access-company.com>
* aoutx.h (aout_get_external_symbols): Return if count is zero.
2007-08-09 23:14:55 +00:00
H.J. Lu 6d33f2176c 2007-08-09 H.J. Lu <hongjiu.lu@intel.com>
PR ld/4909
	* elf.c (print_segment_map): New function.
	(assign_file_positions_for_load_sections): Call print_segment_map
	when a section can't be allocated in segment.
2007-08-09 23:13:41 +00:00
Jan Kratochvil c309eac207 * opncls.c (bfd_openr_iovec): Fix the OPEN parameter macro expansion. 2007-08-09 14:22:03 +00:00
Alan Modra 4969ffd9c9 daily update 2007-08-09 00:00:06 +00:00
Alan Modra 48219bd292 daily update 2007-08-08 00:00:06 +00:00
Nick Clifton e6902efc9c * po/bfd.pot: Updated template.
* po/BLD-POTFILES.in: Regenerate.
2007-08-07 11:01:42 +00:00
Alan Modra 817c2f79fd daily update 2007-08-07 00:00:05 +00:00
Alan Modra d5191d0cd4 * elf.c: (_bfd_elf_make_section_from_phdr): Properly handle
bss segments.
2007-08-06 22:53:27 +00:00
Daniel Jacobowitz 5eda1c47e4 * Makefile.am (BUILD_HFILES): Clean bfd_stdint.h.
* Makefile.in: Regenerated.
2007-08-06 20:53:29 +00:00
Daniel Jacobowitz be118e79ae * configure.in: Update version to 2.18.50.
* configure: Regenerated.
2007-08-06 20:13:48 +00:00
Daniel Jacobowitz bd97cb95f8 2007-08-06 Paul Brook <paul@codesourcery.com>
* elf32-arm.c (elf32_arm_link_hash_entry): Add
	plt_maybe_thumb_refcount.
	(elf32_arm_link_hash_newfunc): Set plt_maybe_thumb_refcount.
	(elf32_arm_copy_indirect_symbol): Ditto.
	(elf32_arm_adjust_dynamic_symbol): Ditto.
	(bfd_elf32_arm_process_before_allocation): Handle R_ARM_THM_JUMP24.
	(arm_add_to_rel): Ditto.
	(elf32_arm_final_link_relocate): Merge R_ARM_THM_JUMP24 with
	R_ARM_THM_CALL.  Handle R_ARM_THM_JUMP19 against a PLT stub.
	(elf32_arm_gc_sweep_hook): Call check_use_blx.  Update plt counts
	for R_ARM_THM_JUMP24 and R_ARM_THM_JUMP19.
	(elf32_arm_check_relocs): Update plt counts for R_ARM_THM_JUMP24
	and R_ARM_THM_JUMP19.
	(allocate_dynrelocs): Use plt_maybe_thumb_refcount.
	(elf32_arm_finish_dynamic_symbol): Ditto.
	(elf32_arm_output_plt_map): Ditto.
2007-08-06 18:47:21 +00:00
Daniel Jacobowitz c981028a3f * elf.c (rewrite_elf_program_header): Handle sections not sorted
by address.
	(copy_elf_program_header): Likewise.
2007-08-06 18:35:18 +00:00
Alan Modra 6278344fb5 daily update 2007-08-06 00:00:05 +00:00
Alan Modra ef18b5a26a daily update 2007-08-05 00:00:06 +00:00
H.J. Lu f7231afc19 2007-08-04 H.J. Lu <hongjiu.lu@intel.com>
* elf-bfd.h (xvec_get_elf_backend_data): Add const.

	* elfcode.h (elf_object_p): Use xvec_get_elf_backend_data.
	* elfcore.h (elf_core_file_p): Likewise.
2007-08-04 16:31:00 +00:00
Alan Modra 49ff476a98 daily update 2007-08-04 00:00:05 +00:00
Alan Modra 551a778a37 daily update 2007-08-03 00:00:04 +00:00
H.J. Lu bd33be6e27 bfd/
2007-08-02  H.J. Lu  <hongjiu.lu@intel.com>

	* coffcode.h (ALIGN_SET): Removed.
	(ELIFALIGN_SET): Likewise.
	(coff_set_alignment_hook): Handle IMAGE_SCN_ALIGN_128BYTES,
	IMAGE_SCN_ALIGN_256BYTES, IMAGE_SCN_ALIGN_512BYTES,
	IMAGE_SCN_ALIGN_1024BYTES, IMAGE_SCN_ALIGN_2048BYTES,
	IMAGE_SCN_ALIGN_4096BYTES and IMAGE_SCN_ALIGN_8192BYTES.

include/coff/

2007-08-02  H.J. Lu  <hongjiu.lu@intel.com>

	* pe.h (IMAGE_SCN_ALIGN_POWER_BIT_POS): New.
	(IMAGE_SCN_ALIGN_POWER_BIT_MASK): Likewise.
	(IMAGE_SCN_ALIGN_POWER_NUM): Likewise.
	(IMAGE_SCN_ALIGN_POWER_CONST): Likewise.
	(IMAGE_SCN_ALIGN_128BYTES): Likewise.
	(IMAGE_SCN_ALIGN_256BYTES): Likewise.
	(IMAGE_SCN_ALIGN_512BYTES): Likewise.
	(IMAGE_SCN_ALIGN_1024BYTES): Likewise.
	(IMAGE_SCN_ALIGN_2048BYTES): Likewise.
	(IMAGE_SCN_ALIGN_4096BYTES): Likewise.
	(IMAGE_SCN_ALIGN_8192BYTES): Likewise.
	(IMAGE_SCN_ALIGN_1BYTES): Redefined with
	IMAGE_SCN_ALIGN_POWER_CONST.
	(IMAGE_SCN_ALIGN_2BYTES): Likewise.
	(IMAGE_SCN_ALIGN_4BYTES): Likewise.
	(IMAGE_SCN_ALIGN_8BYTES): Likewise.
	(IMAGE_SCN_ALIGN_16BYTES): Likewise.
	(IMAGE_SCN_ALIGN_32BYTES): Likewise.
	(IMAGE_SCN_ALIGN_64BYTES): Likewise.
2007-08-02 16:02:01 +00:00
Alan Modra b49412aab8 daily update 2007-08-02 00:00:05 +00:00
Michael Snyder 9b0ec667bc 2007-08-01 Michael Snyder <msnyder@access-company.com>
* vms-tir.c (new_section): Fix cut and paste error.
2007-08-01 20:06:05 +00:00
Michael Snyder 20c6e70e8d 2007-08-01 Michael Snyder <msnyder@access-company.com>
* aoutx.h (aout_link_add_symbols): Return if count is zero.
2007-08-01 19:58:40 +00:00
Michael Snyder dcf6c77984 2007-08-01 Michael Snyder <msnyder@access-company.com>
* elf.c (bfd_elf_print_symbol): Macro dereferences pointer, so
	pointer must be non-null.
2007-08-01 19:55:10 +00:00
Nick Clifton e708816d5a * coffcode.h (coff_sort_func_alent): New function.
(coff_slurp_line_table): Sort line table if not already sorted.
2007-08-01 16:55:54 +00:00
Jakub Jelinek 55b581a678 * elf.c (_bfd_elf_map_sections_to_segments): Work around buggy
GCC 3.4.x warning.
2007-08-01 08:57:23 +00:00
Alan Modra ad756e3f9e * aoutx.h (swap_ext_reloc_in): Set howto to NULL for unknown
r_type.
	(swap_std_reloc_in): Likewise.
	(aout_link_input_section_std): Likewise.  Return with an error
	on unexpected relocation type.
	(aout_link_input_section_ext): Likewise.
2007-08-01 07:50:16 +00:00
Alan Modra f6e688f76b PR4694
* aoutx.h (final_link): Write a zero in first word of
	stringtab if no symbols rather than corrupting last byte
	of text/data.
2007-08-01 07:43:36 +00:00
Alan Modra 32d188a6f6 daily update 2007-08-01 00:00:06 +00:00
Jakub Jelinek 1c5265b57d * elf.c (get_program_header_size): Adjacent loadable .note*
sections need just one PT_NOTE segment.
	(_bfd_elf_map_sections_to_segments): Likewise.
2007-07-31 08:15:44 +00:00
Michael Snyder 9ee2139f60 2007-07-30 Michael Snyder <msnyder@access-company.com>
* coffgen.c (_bfd_coff_read_internal_relocs): Revert change of
	2007-07-26.  Buffer still in use, can't be freed.
2007-07-31 03:53:24 +00:00
Alan Modra 11fd5315ac daily update 2007-07-31 00:00:06 +00:00
Alan Modra 16ba7cd086 daily update 2007-07-30 00:00:05 +00:00
Alan Modra 89916163cd daily update 2007-07-29 00:00:06 +00:00
Alan Modra 888107e419 daily update 2007-07-28 00:00:05 +00:00
Michael Snyder d63388ff70 2007-07-27 Michael Snyder <msnyder@access-company.com>
* cofflink.c (coff_link_add_symbols): Return if count is zero.
2007-07-27 22:04:23 +00:00
Michael Snyder 50a39e971e 2007-07-27 Michael Snyder <msnyder@access-company.com>
* coff-i386.c (coff_i386_rtype_to_howto): Off by one error.
2007-07-27 21:23:01 +00:00
Michael Snyder 87b3278031 2007-07-27 Michael Snyder <msnyder@access-company.com>
* aoutx.h (slurp_symbol_table): Return if count == 0.
2007-07-27 19:04:39 +00:00
Michael Snyder 9d7038d330 2007-07-27 Michael Snyder <msnyder@access-company.com>
* coffgen.c (_bfd_coff_read_internal_relocs): Return if count is zero.
2007-07-27 18:54:04 +00:00
Michael Snyder c6aa130f78 2007-07-27 Michael Snyder <msnyder@access-company.com>
* elf32-i386.c (elf_i386_check_relocs): Check for null pointer.
2007-07-27 18:50:18 +00:00
H.J. Lu 170bfeb9d3 2007-07-27 H.J. Lu <hongjiu.lu@intel.com>
* config.bfd (x86_64-*-mingw*): Don't include x86_64coff_vec.
2007-07-27 13:26:44 +00:00
Michael Snyder 507f589808 2007-07-26 Michael Snyder <msnyder@access-company.com>
* coff-i386.c (coff_i386_rtype_to_howto): Guard against null.
2007-07-27 01:15:27 +00:00
Michael Snyder a6626e8c30 2007-07-26 Michael Snyder <msnyder@svkmacdonelllnx>
* linker.c (bfd_section_already_linked_table_insert): Change
	return type from void to boolean.  Return FALSE on failure.
	(_bfd_generic_section_already_linked): Test return value of
	bfd_section_already_linked_table_insert, call fatal on error.

	* elflink.c (_bfd_elf_section_already_linked): Test return value
	of bfd_section_already_linked_table_insert, call fatal on error.

	* libbfd-in.h (bfd_section_already_linked_table_insert): Update
	return type to bfd_boolean.

	* libbfd.h: Regenerate.
2007-07-27 01:04:29 +00:00
Adam Nemet 36e44abdc2 * archive.c (do_slurp_bsd_armap, do_slurp_coff_armap,
bfd_slurp_armap): Improve function comment.
2007-07-27 00:49:06 +00:00
Alan Modra 4ccbd2de24 daily update 2007-07-27 00:00:06 +00:00
Michael Snyder 5ba8816a2d Fix bollixed check-in 2007-07-26 21:58:44 +00:00
Michael Snyder 2d4f3e92ff 2007-07-26 Michael Snyder <msnyder@access-company.com>
* linker.c (already_linked_newfunc): Check for NULL return from
	bfd_hash_allocate.
2007-07-26 21:53:35 +00:00
Michael Snyder ac38308c95 2007-07-26 Michael Snyder <msnyder@access-company.com>
* coffgen.c (fixup_symbol_value): Guard against null;
	bfd_is_com_section will dereference the section pointer.
2007-07-26 19:06:12 +00:00
Michael Snyder c82a7c57df 2007-07-26 Michael Snyder <msnyder@access-company.com>
* syms.c (bfd_decode_symclass): Guard against NULL, since
	bfd_is_com_section dereferences the pointer.
2007-07-26 18:53:51 +00:00
Michael Snyder 3d7b34d85b 2007-07-26 Michael Snyder <msnyder@access-company.com>
* srec.c (srec_scan): Check for EOF (critical because return value
	will be used as array index).
2007-07-26 18:45:13 +00:00
Michael Snyder 44c62d9e24 2007-07-26 Michael Snyder <msnyder@access-company.com>
* coffgen.c (_bfd_coff_read_internal_relocs): If internal_relocs
	are not to be cached, free the temporary buffer.
2007-07-26 18:43:24 +00:00
Michael Snyder 078c4bfc87 2007-07-26 Michael Snyder <msnyder@access-company.com>
* aoutx.h (slurp_reloc_table): Return TRUE if reloc_size == zero
	or count == zero.
2007-07-26 18:30:28 +00:00
Michael Snyder 814b5378b4 2007-07-26 Michael Snyder <msnyder@access-company.com>
* tekhex.c (first_phase): Check return value for null.
2007-07-26 18:18:07 +00:00
Michael Snyder b7fd5ce17d 2007-07-26 Michael Snyder <msnyder@access-company.com>
* elf.c (_bfd_elf_get_synthetic_symtab): Remove meaningless
	pointer increment.
2007-07-26 18:15:46 +00:00
Alan Modra 33774f084b * elflink.c (_bfd_elf_fix_symbol_flags): Remove unnecessary
check on dynobj.  Remove bed shadow.
2007-07-26 13:45:59 +00:00
Alan Modra e62071b60e * srec.c (srec_get_section_contents): Return immediately on
count zero.  Check that offset and count are within section.
	* libbfd.c (_bfd_generic_get_section_contents): Check that
	offset + count does not overflow.
2007-07-26 12:34:43 +00:00
Alan Modra b9da616afe * srec.c (srec_canonicalize_symtab): Don't alloc when symcount
is zero.  Correct return value on error.
	* mmo.c (mmo_canonicalize_symtab): Likewise.
	* binary.c (binary_canonicalize_symtab) Correct return on error.
2007-07-26 11:13:59 +00:00
Thiemo Seufer c2c966314b * bfd.c (_bfd_set_gp_value): Use abort instead of BFD_FAIL. 2007-07-26 11:05:23 +00:00
Alan Modra d494715016 * reloc.c (bfd_generic_get_relocated_section_contents): Avoid
bfd_canonicalize_reloc call when bfd_get_reloc_upper_bound
	says there are no relocs.
2007-07-26 09:37:13 +00:00
Nick Clifton bd210d54db Speed up bfd_dwarf2_find_line.
* dwarf2.c (struct dwarf2_debug): Add new fields to support function and variable info hash tables. Add last_comp_unit, info_hash_count, funcinfo_hash_table, varinfo_hash_table, hash_units_head.
  (struct comp_unit): Add prev_unit, cached.
  (struct info_list_node, struct info_hash_entry, struct info_hash_table): New.
  (info_hash_table_newfunc, create_info_hash_table, insert_info_hash_table, lookup_info_hash_table): New functions implementing function and variable info hash tables.
  (scan_unit_for_symbols): Add checks to make sure hash tables are consistent with compilation units.
  (comp_unit_maybe_decode_line_info): New function.
  (comp_unit_find_line): Use comp_unit_maybe_decode_line_info.
  (reverse_funcinfo_list, reverse_varinfo_list, comp_unit_hash_info, info_hash_lookup_funcinfo, info_hash_lookup_varinfo, stash_maybe_update_info_hash_table, stash_verify_info_hash_table, stash_maybe_enable_info_hash_tables, stash_find_line_fast): New functions. Make use of info hash tables to speed up bfd_dwarf2_find_line.
  (find_line): Use hash table for faster lookup if it is turned on.
  Also add code to maintain bi-directional link in comp units.
2007-07-26 08:31:03 +00:00
Michael Snyder 353c55748a 2007-07-25 Michael Snyder <msnyder@access-company.com>
* coffgen.c (_bfd_coff_get_external_symbols): Nothing to be done
	if size == 0; return and avoid possible null pointer issues.
2007-07-26 02:01:49 +00:00
Alan Modra d429448cf8 daily update 2007-07-26 00:00:07 +00:00
Alan Modra 7124a847c2 daily update 2007-07-25 00:00:17 +00:00
Alan Modra f08c429c32 warning fix 2007-07-24 23:38:13 +00:00
Michael Snyder f6eea5aed8 2007-07-23 Michael Snyder <msnyder@access-company.com>
* opncls.c (bfd_make_writable): Check return from bfd_malloc.
2007-07-24 19:58:06 +00:00
Michael Snyder d0f16d5ece 2007-07-24 Michael Snyder <msnyder@access-company.com>
* elflink.c (bfd_elf_final_link): Avoid redundant frees -- return
	on bfd_malloc error rather than goto error_return.
2007-07-24 19:54:01 +00:00
Alan Modra 4d269e42e3 * elflink.c (_bfd_elf_link_just_syms, merge_sections_remove_hook,
_bfd_elf_merge_sections, _bfd_elf_link_hash_newfunc,
	_bfd_elf_link_hash_copy_indirect, _bfd_elf_link_hash_hide_symbol,
	_bfd_elf_link_hash_table_init, _bfd_elf_link_hash_table_create,
	bfd_elf_set_dt_needed_name, bfd_elf_get_dyn_lib_class,
	bfd_elf_set_dyn_lib_class, bfd_elf_get_needed_list,
	bfd_elf_get_runpath_list, bfd_elf_get_dt_soname,
	bfd_elf_get_bfd_needed_list, struct elf_symbuf_symbol,
	struct elf_symbuf_head, struct elf_symbol, elf_sort_elf_symbol,
	elf_sym_name_compare, elf_create_symbuf,
	bfd_elf_match_symbols_in_sections,
	_bfd_elf_match_sections_by_type): Move to here..
	* elf.c: ..from here.
2007-07-24 08:09:20 +00:00
Alan Modra 685b3d2680 daily update 2007-07-24 00:00:06 +00:00
Richard Sandiford a26587bab5 bfd/
* elflink.c (_bfd_elf_fix_symbol_flags): Only assert the type
	of weakdef->root.type if weakdef has no regular definition.

ld/testsuite/
	* ld-elf/weak-dyn-1a.s, ld-elf/weak-dyn-1b.s, ld-elf/weak-dyn-1.ld,
	* ld-elf/weak-dyn-1.rd: New test.
	* ld-elf/elf.exp: Run it.
2007-07-23 09:56:19 +00:00
Alan Modra 07a5aea53e daily update 2007-07-23 00:00:06 +00:00
Adam Nemet 0e53d9daab * elfxx-mips.c (struct mips_elf_link_hash_table): Add new field
small_data_overflow_reported.
	(_bfd_mips_elf_link_hash_table_create): Initialize it.
	(_bfd_mips_elf_relocate_section) <bfd_reloc_overflow>: Report
	small-data section overflow.
2007-07-22 16:45:06 +00:00
Alan Modra 9516781d06 daily update 2007-07-22 00:00:05 +00:00
Alan Modra 8dcdf3b7aa daily update 2007-07-21 00:00:05 +00:00
Alan Modra dec4bb46b3 daily update 2007-07-20 00:00:07 +00:00
Nick Clifton 6b33789f61 PR binutils/4797
* dwarf2.c: (find_line) Do not dereference functionname_ptr if do_line is true.
2007-07-19 16:51:10 +00:00
Alan Modra b93bc07744 daily update 2007-07-19 00:00:06 +00:00
Bob Wilson 13161072f2 * elf32-xtensa.c (xtensa_callback_required_dependence): Ignore
non-ELF sections.
2007-07-18 21:06:06 +00:00
Bob Wilson e29297b73c * elf32-xtensa.c (elf_xtensa_finish_dynamic_sections): Get section
vma and size for dynamic tags from the output sections.
2007-07-18 18:23:47 +00:00
Alan Modra a5d1b3b53e * elf-bfd.h (struct sym_sec_cache): Delete "sec". Add "shndx".
* elf.c (bfd_section_from_r_symndx): Don't cache bfd section of
	symbol.  Instead cache ELF section index.  Remove redundant
	checks of st_shndx.
2007-07-18 11:23:37 +00:00
Alan Modra e6b368d89f daily update 2007-07-18 00:00:05 +00:00
Alan Modra bd4dd364df daily update 2007-07-17 00:00:06 +00:00
Alan Modra cbafdc0d90 daily update 2007-07-16 00:00:06 +00:00
Mike Frysinger d955dada99 * trad-core.c (NBPG): If not defined, set to getpagesize(). 2007-07-15 06:33:34 +00:00
Alan Modra 20ee575b1e daily update 2007-07-15 00:00:06 +00:00
Alan Modra c144990811 daily update 2007-07-14 00:00:06 +00:00
Roland McGrath 979dc3bca9 . 2007-07-13 10:44:44 +00:00
Roland McGrath bfb53a4f5b 2007-07-13 Roland McGrath <roland@redhat.com>
* elf-bfd.h (struct elf_obj_tdata): Revert last change.
	Add after_write_object_contents, after_write_object_contents_info.
	* elf.c (_bfd_elf_write_object_contents): Revert last change.
	Instead, call after_write_object_contents if set.
2007-07-13 10:44:12 +00:00
Alan Modra 44139f2d0c daily update 2007-07-13 00:00:05 +00:00
Nick Clifton d2df793a71 Add support for building on a 64-bit Windows host. 2007-07-12 07:16:41 +00:00
Alan Modra 2d9d480e3b daily update 2007-07-12 00:00:06 +00:00
Alan Modra 5aa7ce4b0a daily update 2007-07-11 00:00:06 +00:00
H.J. Lu a3a4ddad29 2007-07-10 H.J. Lu <hongjiu.lu@intel.com>
* Makefile.in: Regenerated.
2007-07-10 15:03:03 +00:00
H.J. Lu 329b43c490 2007-07-10 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/4756
	* simple.c (bfd_simple_get_relocated_section_content): Don't
	apply relocation on executable and shared library.
2007-07-10 13:49:04 +00:00
Nathan Sidwell cfd2c77310 * elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Don't eliminate
copy relocs on vxworks.
2007-07-10 07:42:30 +00:00
Alan Modra 1489a3a0d7 * elf32-arm.c (elf32_arm_size_info): Init checksum_contents field.
* elf64-alpha.c (alpha_elf_size_info): Likewise.
	* elf64-hppa.c (hppa64_elf_size_info): Likewise.
	* elf64-mips.c (mips_elf64_size_info): Likewise.
	* elf64-s390.c (s390_elf64_size_info): Likewise.
	* elf64-sparc.c (elf64_sparc_size_info): Likewise.
2007-07-10 04:08:12 +00:00
H.J. Lu 00cbee0aa8 2007-07-09 H.J. Lu <hongjiu.lu@intel.com>
* elflink.c (bfd_elf_record_link_assignment): Handle indirect
	symbol.
	(_bfd_elf_merge_symbol): Properly update normal symbol when
	overriding the versioned symbol from a dynamic library.
2007-07-10 02:40:31 +00:00
Alan Modra e93cb65d42 daily update 2007-07-10 00:00:05 +00:00
Roland McGrath fd2f25da9b . 2007-07-09 21:25:39 +00:00
Roland McGrath ff59fc360e 2007-07-09 Roland McGrath <roland@redhat.com>
* elf-bfd.h (struct elf_obj_tdata): Add members
	emit_note_gnu_build_id and note_gnu_build_id_sec.
	* elf.c (_bfd_id_note_section_size): New global function.
	(read_hex, _bfd_elf_write_build_id_section): New static functions.
	(_bfd_elf_write_object_contents): Call _bfd_elf_write_build_id_section
	if emit_note_gnu_build_id is set.
	* Makefile.am (elf.lo): Update dependencies.
2007-07-09 21:23:43 +00:00
Roland McGrath 20a761b5e9 2007-07-09 Roland McGrath <roland@redhat.com>
* elf-bfd.h (struct elf_obj_tdata): Add members
	emit_note_gnu_build_id and note_gnu_build_id_sec.
	* elf.c (_bfd_id_note_section_size): New global function.
	(read_hex, _bfd_elf_write_build_id_section): New static functions.
	(_bfd_elf_write_object_contents): Call _bfd_elf_write_build_id_section
	if emit_note_gnu_build_id is set.
	* Makefile.am (elf.lo): Update dependencies.
	* elf-bfd.h (struct elf_size_info): Add checksum_contents hook.
	(bfd_elf32_checksum_contents, bfd_elf64_checksum_contents): Declare.
	* elfcode.h (elf_checksum_contents): New macro and function.
	(NAME(_bfd_elf,size_info)): Initialize checksum_contents hook.
2007-07-09 21:23:39 +00:00
Roland McGrath d94838b102 2007-07-09 Roland McGrath <roland@redhat.com>
* elf-bfd.h (struct elf_size_info): Add checksum_contents hook.
	(bfd_elf32_checksum_contents, bfd_elf64_checksum_contents): Declare.
	* elfcode.h (elf_checksum_contents): New macro and function.
	(NAME(_bfd_elf,size_info)): Initialize checksum_contents hook.
2007-07-09 21:23:37 +00:00
Alan Modra 049c3c6b72 daily update 2007-07-09 00:00:06 +00:00
Alan Modra 5da62ef0e8 daily update 2007-07-08 00:00:06 +00:00
Alan Modra 489cadc25a daily update 2007-07-07 00:00:06 +00:00
Alan Modra 9af2a943ee * elflink.c (elf_link_add_object_symbols): Return via
error_free_vers on "notice" failure.
2007-07-06 02:29:10 +00:00
Alan Modra e3bb9257f6 daily update 2007-07-06 00:00:05 +00:00
H.J. Lu a93221e521 2007-07-04 H.J. Lu <hongjiu.lu@intel.com>
* peicode.h (pe_bfd_object_p): Don't check PE vs. EFI target
	if arch is unknown.
2007-07-05 02:50:02 +00:00
Alan Modra 004082e09a daily update 2007-07-05 00:00:06 +00:00
Nick Clifton b49281938d * elf32-mep.c (mep_final_link_relocate) [R_MEP_HI16S]: Correctly compensate
for high bit set in R_MEP_LOW16.
2007-07-04 14:23:22 +00:00
Alan Modra 51afcce0d3 daily update 2007-07-04 00:00:05 +00:00
Joseph Myers 3cfad14c4a bfd:
* elf32-arm.c (elf32_arm_merge_eabi_attributes): Copy type from
	input attributes if value has been copied.

ld/testsuite:
	* ld-arm/attr-merge-2a.s, ld-arm/attr-merge-2b.s,
	ld-arm/attr-merge-2.attr: New.
	* ld-arm/arm-elf.exp (armelftests): Add new test.
2007-07-03 15:21:30 +00:00
Nick Clifton cd123cb70c Switch sources over to use the GPL version 3 2007-07-03 14:26:43 +00:00
Alan Modra 6e29ef6d28 daily update 2007-07-03 00:00:05 +00:00
Joseph Myers 741d6ea85b bfd:
* elfxx-mips.c (mips_elf_calculate_relocation): Handle
	R_MIPS_TLS_DTPREL32 and R_MIPS_TLS_DTPREL64.
	* elf64-mips.c (mips_elf64_howto_table_rela): Support
	R_MIPS_TLS_DTPREL64.

gas:
	* config/tc-mips.c (s_dtprelword, s_dtpreldword,
	s_dtprel_internal): New.
	(mips_pseudo_table): Add .dtprelword and .dtpreldword.
	(md_apply_fix): Handle BFD_RELOC_MIPS_TLS_DTPREL32 and
	BFD_RELOC_MIPS_TLS_DTPREL64.
2007-07-02 10:49:42 +00:00
Alan Modra ae351704e2 Regenerate files. 2007-07-02 07:12:53 +00:00
Alan Modra 3e5484dbb9 * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Tidy
symsec != NULL tests.
2007-07-02 06:51:57 +00:00
Alan Modra 08a40648e5 PR 4712
* elf.c (assign_file_positions_for_load_sections): Adjust lma
	by p_vaddr_offset.
2007-07-02 06:47:43 +00:00
Alan Modra 3adf154903 daily update 2007-07-02 00:00:06 +00:00
Alan Modra 89526cc00d daily update 2007-07-01 00:00:04 +00:00
H.J. Lu 86b57e315d bfd/
2007-06-30  H.J. Lu  <hongjiu.lu@intel.com>

	* aclocal.m4: Regenerated.
	* Makefile.in: Likewise.

bfd/doc/

2007-06-30  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.in: Likewise.

binutils/

2007-06-30  H.J. Lu  <hongjiu.lu@intel.com>

	* aclocal.m4: Regenerated.
	* doc/Makefile.in: Likewise.
	* Makefile.in: Likewise.

gas/

2007-06-30  H.J. Lu  <hongjiu.lu@intel.com>

	* aclocal.m4: Regenerated.
	* doc/Makefile.in: Likewise.
	* Makefile.in: Likewise.

gprof/

2007-06-30  H.J. Lu  <hongjiu.lu@intel.com>

	* aclocal.m4: Regenerated.
	* Makefile.in: Likewise.

ld/

2007-06-30  H.J. Lu  <hongjiu.lu@intel.com>

	* aclocal.m4: Regenerated.
	* Makefile.in: Likewise.

opcodes/

2007-06-30  H.J. Lu  <hongjiu.lu@intel.com>

	* aclocal.m4: Regenerated.
	* Makefile.in: Likewise.
2007-06-30 17:21:16 +00:00
Joseph Myers 34c8bcbae2 bfd:
* elf32-ppc.c (ppc_elf_merge_obj_attributes): New.
	(ppc_elf_merge_private_bfd_data): Call it.

binutils:
	* readelf.c (display_power_gnu_attribute, process_power_specific):
	New.
	(process_arch_specific): Call process_power_specific.

include/elf:
	* ppc.h (Tag_GNU_Power_ABI_FP): Define.

ld/testsuite:
	* ld-powerpc/attr-gnu-4-0.s, ld-powerpc/attr-gnu-4-00.d,
	ld-powerpc/attr-gnu-4-01.d, ld-powerpc/attr-gnu-4-02.d,
	ld-powerpc/attr-gnu-4-1.s, ld-powerpc/attr-gnu-4-10.d,
	ld-powerpc/attr-gnu-4-11.d, ld-powerpc/attr-gnu-4-12.d,
	ld-powerpc/attr-gnu-4-13.d, ld-powerpc/attr-gnu-4-2.s,
	ld-powerpc/attr-gnu-4-20.d, ld-powerpc/attr-gnu-4-21.d,
	ld-powerpc/attr-gnu-4-22.d, ld-powerpc/attr-gnu-4-3.s,
	ld-powerpc/attr-gnu-4-31.d: New.
	* ld-powerpc/powerpc.exp: Run these new tests.
2007-06-30 00:03:40 +00:00
Alan Modra 89ebe69733 daily update 2007-06-30 00:00:05 +00:00
Joseph Myers 2cf19d5cb9 bfd:
* elfxx-mips.c (mips_elf_merge_obj_attributes): New.
	(_bfd_mips_elf_merge_private_bfd_data): Call it.

binutils:
	* readelf.c (display_mips_gnu_attribute): New.
	(process_mips_specific): Call process_attributes.

include/elf:
	* mips.h (Tag_GNU_MIPS_ABI_FP): Define.

ld/testsuite:
	* ld-mips-elf/attr-gnu-4-0.s, ld-mips-elf/attr-gnu-4-00.d,
	ld-mips-elf/attr-gnu-4-01.d, ld-mips-elf/attr-gnu-4-02.d,
	ld-mips-elf/attr-gnu-4-03.d, ld-mips-elf/attr-gnu-4-1.s,
	ld-mips-elf/attr-gnu-4-10.d, ld-mips-elf/attr-gnu-4-11.d,
	ld-mips-elf/attr-gnu-4-12.d, ld-mips-elf/attr-gnu-4-13.d,
	ld-mips-elf/attr-gnu-4-14.d, ld-mips-elf/attr-gnu-4-2.s,
	ld-mips-elf/attr-gnu-4-20.d, ld-mips-elf/attr-gnu-4-21.d,
	ld-mips-elf/attr-gnu-4-22.d, ld-mips-elf/attr-gnu-4-23.d,
	ld-mips-elf/attr-gnu-4-3.s, ld-mips-elf/attr-gnu-4-30.d,
	ld-mips-elf/attr-gnu-4-31.d, ld-mips-elf/attr-gnu-4-32.d,
	ld-mips-elf/attr-gnu-4-33.d, ld-mips-elf/attr-gnu-4-4.s,
	ld-mips-elf/attr-gnu-4-41.d: New.
	* ld-mips-elf/mips-elf.exp: Run these new tests.
2007-06-29 16:41:32 +00:00
Joseph Myers 104d59d19c bfd:
* elf-attrs.c: New.
	* Makefile.am (BFD32_BACKENDS): Add elf-attrs.lo.
	(BFD32_BACKENDS_CFILES): Add elf-attrs.c.
	(elf-attrs.lo): Generate dependencies.
	* Makefile.in: Regenerate.
	* configure.in (elf): Add elf-attrs.lo.
	* configure: Regenerate.
	* elf-bfd.h (struct elf_backend_data): Add entries for object
	attributes.
	(NUM_KNOWN_OBJ_ATTRIBUTES, obj_attribute, obj_attribute_list,
	OBJ_ATTR_PROC, OBJ_ATTR_GNU, OBJ_ATTR_FIRST, OBJ_ATTR_LAST,
	Tag_NULL, Tag_File, Tag_Section, Tag_Symbol, Tag_compatibility):
	New.
	(struct elf_obj_tdata): Add entries for object attributes.
	(elf_known_obj_attributes, elf_other_obj_attributes,
	elf_known_obj_attributes_proc, elf_other_obj_attributes_proc):
	New.
	(bfd_elf_obj_attr_size, bfd_elf_set_obj_attr_contents,
	bfd_elf_get_obj_attr_int, bfd_elf_add_obj_attr_int,
	bfd_elf_add_proc_attr_int, bfd_elf_add_obj_attr_string,
	bfd_elf_add_proc_attr_string, bfd_elf_add_obj_attr_compat,
	bfd_elf_add_proc_attr_compat, _bfd_elf_attr_strdup,
	_bfd_elf_copy_obj_attributes, _bfd_elf_obj_attrs_arg_type,
	_bfd_elf_parse_attributes, _bfd_elf_merge_object_attributes): New.
	* elf.c (_bfd_elf_copy_private_bfd_data): Copy object attributes.
	(bfd_section_from_shdr): Handle attributes sections.
	* elflink.c (bfd_elf_final_link): Handle attributes sections.
	* elfxx-target.h (elf_backend_obj_attrs_vendor,
	elf_backend_obj_attrs_section, elf_backend_obj_attrs_arg_type,
	elf_backend_obj_attrs_section_type): New.
	(elfNN_bed): Update.
	* elf32-arm.c (NUM_KNOWN_ATTRIBUTES, aeabi_attribute,
	aeabi_attribute_list): Remove.
	(struct elf32_arm_obj_tdata): Remove object attributes fields.
	(check_use_blx, bfd_elf32_arm_set_vfp11_fix, using_thumb2,
	elf32_arm_copy_private_bfd_data, elf32_arm_merge_eabi_attributes):
	Update for new object attributes interfaces.
	(uleb128_size, is_default_attr, eabi_attr_size,
	elf32_arm_eabi_attr_size, write_uleb128, write_eabi_attribute,
	elf32_arm_set_eabi_attr_contents, elf32_arm_bfd_final_link,
	elf32_arm_new_eabi_attr, elf32_arm_get_eabi_attr_int,
	elf32_arm_add_eabi_attr_int, attr_strdup,
	elf32_arm_add_eabi_attr_string, elf32_arm_add_eabi_attr_compat,
	copy_eabi_attributes, elf32_arm_parse_attributes): Remove.  Moved
	to generic code in elf-attrs.c.
	(elf32_arm_obj_attrs_arg_type): New.
	(elf32_arm_fake_sections): Do not handle .ARM.attributes.
	(elf32_arm_section_from_shdr): Do not handle SHT_ARM_ATTRIBUTES.
	(bfd_elf32_bfd_final_link): Remove.
	(elf_backend_obj_attrs_vendor, elf_backend_obj_attrs_section,
	elf_backend_obj_attrs_arg_type,
	elf_backend_obj_attrs_section_type): New.
	* elf32-bfin.c (bfin_elf_copy_private_bfd_data): Copy object
	attributes.
	* elf32-frv.c (frv_elf_copy_private_bfd_data): Likewise.
	* elf32-iq2000.c (iq2000_elf_copy_private_bfd_data): Likewise.
	* elf32-mep.c (mep_elf_copy_private_bfd_data): Likewise.
	* elf32-mt.c (mt_elf_copy_private_bfd_data): Likewise.
	* elf32-sh.c (sh_elf_copy_private_data): Likewise.
	* elf64-sh64.c (sh_elf64_copy_private_data_internal): Likewise.

binutils:
	* readelf.c (display_gnu_attribute): New.
	(process_arm_specific): Rearrange as process_attributes.
	(process_arm_specific): Replace by wrapper of process_attributes.

gas:
	* as.c (create_obj_attrs_section): New.
	(main): Call create_obj_attrs_section for ELF.
	* read.c (s_gnu_attribute, skip_whitespace, skip_past_char,
	skip_past_comma, s_vendor_attribute): New.
	(potable): Add gnu_attribute for ELF.
	* read.h (s_vendor_attribute): Declare.
	* config/tc-arm.c (s_arm_eabi_attribute): Replace by wrapper
	round s_vendor_attribute.
	(aeabi_set_public_attributes): Update for new attributes
	interfaces.
	(arm_md_end): Remove attributes contents setting now done
	generically.

include/elf:
	* arm.h (elf32_arm_add_eabi_attr_int,
	elf32_arm_add_eabi_attr_string, elf32_arm_add_eabi_attr_compat,
	elf32_arm_get_eabi_attr_int, elf32_arm_set_eabi_attr_contents,
	elf32_arm_eabi_attr_size, Tag_NULL, Tag_File, Tag_Section,
	Tag_Symbol, Tag_compatibility): Remove.
	* common.h (SHT_GNU_ATTRIBUTES): Define.

ld:
	* emulparams/armelf.sh (OTHER_SECTIONS): Remove .ARM.attributes.
	(ATTRS_SECTIONS): Define.
	* scripttempl/elf.sc, scripttempl/elf32sh-symbian.sc,
	scripttempl/elf_chaos.sc, scripttempl/elfi370.sc,
	scripttempl/elfxtensa.sc: Handle ATTRS_SECTIONS.
2007-06-29 16:29:17 +00:00
Paul Brook 5ab7998193 2007-06-29 Paul Brook <paul@codesourcery.com>
bfd/
	* elf32-arm.c (bfd_elf32_arm_process_before_allocation): Suppress
	call veneers for call relocations against undefined symbols.
	(elf32_arm_final_link_relocate): Turn call to undefined symbol
	into a jump to the next instruction.

	ld/testuite/
	* ld-arm/arm-elf.exp (armelftests): Add callweak.
	* ld-arm/callweak.d: New test.
	* ld-arm/callweak.s: New test.
2007-06-29 15:05:47 +00:00
Nick Clifton 32e8a950c4 * bfd.c (bfd_demangle): Plug memory leak (Coverity). 2007-06-29 14:36:21 +00:00
Nick Clifton 3d3d428f04 New port: National Semiconductor's CR16 2007-06-29 14:09:34 +00:00
Alan Modra c55fe0967e * elflink.c (_bfd_elf_link_assign_sym_version): Improve error
message for undefined version nodes.
	(elf_gc_sweep): Don't warn when zero size sections are
	removed.
2007-06-29 02:09:42 +00:00
Alan Modra 375de94a5e * elf32-ppc.c (ppc_elf_info_to_howto): Check for invalid relocation
types.
2007-06-29 01:51:55 +00:00
Alan Modra 7d3287cb71 * elf32-spu.c (spu_elf_fake_sections): New function.
(elf_backend_fake_sections): Define.
2007-06-29 01:39:54 +00:00
H.J. Lu 36fc76aebb Mention PR ld/4701. 2007-06-29 01:22:40 +00:00
Alan Modra 6a3cd2b4ed * elf.c (assign_file_positions_for_load_sections): Use elf
section header sh_size rather than bfd section size, simplifying
	.tbss handling.
2007-06-29 01:21:08 +00:00
Alan Modra bf988460f1 * elf.c (assign_file_positions_for_load_sections): Ensure bss
segments meet gABI alignment requirements.  Don't allocate
	file space for bss sections in a segment also containing file
	or program headers.
2007-06-29 01:12:52 +00:00
Alan Modra 0f504e0094 daily update 2007-06-29 00:00:05 +00:00
Alan Modra fe0a07a117 daily update 2007-06-28 00:00:05 +00:00
Alan Modra cc481421d0 bfd/
* bfd.c (struct bfd): Rename "next" to "archive_next".
	* archive.c: Rename uses throughout file.
	* archive64.c: Likewise.
	* coff-rs6000.c: Likewise.
	* ecoff.c: Likewise.
	* som.c: Likewise.
	* bfd-in2.h: Regenerate.
binutils/
	* ar.c: Rename uses of bfd.next to bfd.archive_next throughout.
	* arsup.c: Likewise.
	* binemul.c: Likewise.
	* objcopy.c: Likewise.
	* dlltool.c: Likewise.
ld/
	* pe-dll.c: Rename uses of bfd.next to bfd.archive_next throughout.
2007-06-27 11:54:10 +00:00
Alan Modra 58eb693ef1 * elf32-spu.c (spu_elf_create_sections): Properly iterate over
input bfds.
2007-06-27 07:12:54 +00:00
Alan Modra 60b31e8d17 * elf32-ppc.c (ppc_elf_select_plt_layout): Properly iterate over
input bfds.
2007-06-27 06:42:14 +00:00
Alan Modra bd30bda7eb daily update 2007-06-27 00:00:05 +00:00
Nick Clifton bec42b1574 * dwarf2.c (find_line): New. Contains the duplicated code from:
(_bfd_dwarf2_find_nearest_line): Use it.
  (_bfd_dwarf2_find_line): Use it.
2007-06-26 14:28:13 +00:00
Joseph Myers 3d3e6f9a7c bfd:
* elf32-arm.c (copy_eabi_attributes): Copy type of attributes.

ld/testsuite:
	* ld-arm/attr-merge.s, ld-arm/attr-merge.attr: New.
	* ld-arm/arm-elf.exp (armelftests): Add new test.
2007-06-26 13:55:04 +00:00
Alan Modra 5bbffd3d1d daily update 2007-06-26 00:00:05 +00:00
Richard Sandiford b314ec0eae bfd/
* elfxx-mips.c (mips_elf_calculate_relocation): Allow local stubs
	to be used for calls from MIPS16 code.

gas/
	* config/tc-mips.h (TC_SYMFIELD_TYPE): New.
	* config/tc-mips.c (append_insn): Record which symbols have
	R_MIPS16_26 relocations against them.
	(mips_fix_adjustable): Don't reduce relocations against such symbols.

ld/testsuite/
	* ld-mips-elf/mips16-local-stubs-1.s,
	* ld-mips-elf/mips16-local-stubs-1.d: New tests.
	* ld-mips-elf/mips-elf.exp: Run them.
2007-06-25 10:13:57 +00:00
Alan Modra 10efce5dc8 daily update 2007-06-25 00:00:06 +00:00
Alan Modra fa1de3c9b5 daily update 2007-06-24 00:00:05 +00:00