Commit graph

10435 commits

Author SHA1 Message Date
Alan Modra
de0f1f2f05 daily update 2013-02-19 23:00:05 +00:00
Maciej W. Rozycki
cbf8d970f7 * elfxx-mips.c (_bfd_mips_elf_finish_dynamic_symbol): Also clear
STO_MICROMIPS annotation.
2013-02-19 21:58:46 +00:00
Alan Modra
30e8ee25e3 include/
* bfdlink.h (struct bfd_link_info): Delete emit_note_gnu_build_id.
bfd/
	* configure.in: Bump version to 2.23.52.
	* elf-bfd.h (struct elf_build_id_info): New.
	(struct elf_obj_tdata): Delete after_write_object_contents,
	after_write_object_contents_info and build_id_size.  Make build_id
	a pointer to struct elf_build_id_info.
	* elf.c (_bfd_elf_write_object_contents): Style.  Update
	after_write_ibject_contents invocation.
	(elfobj_grok_gnu_build_id): Update for new build_id struct.  Don't
	allow zero size notes.
	* configure: Regenerate.
gdb/
	* elfread.c (struct build_id): Delete.  Use struct elf_build_id
	throughout file instead.
	(build_id_bfd_get): Update to use new elf_tdata build_id field.
	Don't xmalloc return value.
	(build_id_verify): Similarly.  Don't xfree.
	(build_id_to_debug_filename): Update.
	(find_separate_debug_file_by_buildid): Update, don't xfree.
ld/
	* emultempl/elf32.em (emit_note_gnu_build_id): New static var.
	Replace all info->emit_note_gnu_build_id refs.
	(id_note_section_size): Rename from
	gld${EMULATION_NAME}_id_note_section_size.
	(struct build_id_info): Delete.
	(write_build_id): Rename from
	gld${EMULATION_NAME}_write_build_id_section.
	Update elf_tdata usage.  Style, formatting.
	(setup_build_id): New function.
	(gld${EMULATION_NAME}_after_open): Use setup_build_id.
2013-02-18 23:50:32 +00:00
Maciej W. Rozycki
5b175e562b * elf64-mips.c (micromips_elf64_howto_table_rel): Add
R_MICROMIPS_SCN_DISP and R_MICROMIPS_JALR.
	(micromips_elf64_howto_table_rela): Likewise.
	(micromips_reloc_map): Add BFD_RELOC_MICROMIPS_JALR.
	* elfn32-mips.c (elf_micromips_howto_table_rel): Add
	R_MICROMIPS_SCN_DISP and R_MICROMIPS_JALR.
	(elf_micromips_howto_table_rela): Likewise.
	(micromips_reloc_map): Add BFD_RELOC_MICROMIPS_JALR.
2013-02-18 23:20:45 +00:00
Maciej W. Rozycki
e8faf7d129 * elfxx-mips.c (MICROMIPS_P): New macro.
(_bfd_mips_elf_symbol_processing): Use it.
2013-02-18 23:18:16 +00:00
Maciej W. Rozycki
c164a95dfa * elfxx-mips.c (_bfd_mips_elf_create_dynamic_sections): Clarify
comment on _PROCEDURE_LINKAGE_TABLE_ creation.
2013-02-18 23:16:35 +00:00
Alan Modra
7b4c9bf698 daily update 2013-02-18 23:00:04 +00:00
Alan Modra
d45f8bdadc PR ld/12549
* elf-bfd.h (_bfd_elf_strtab_clear_refs): Delete.
	(_bfd_elf_strtab_clear_all_refs): Declare.
	(_bfd_elf_strtab_resize): Declare.
	* elf-strtab.c (_bfd_elf_strtab_clear_refs): Delete.
	(_bfd_elf_strtab_clear_all_refs): New function.
	(_bfd_elf_strtab_resize): Likewise.
	* elflink.c (elf_link_add_object_symbols): Use _bfd_elf_strtab_resize.
2013-02-18 10:40:19 +00:00
Alan Modra
698600e4b4 * elf-bfd.h (struct elf_obj_tdata): Move find_line_info, local_stubs,
local_call_stubs, elf_data_symbol, elf_text_symbol, elf_data_section,
	and elf_text_section to..
	* elfxx-mips.c (struct mips_elf_obj_tdata): ..here.  Update all refs.
	* elf64-alpha.c (struct mips_elf_find_line): Rename to..
	(struct alpha_elf_find_line): ..this.
	(struct alpha_elf_obj_tdata): Add find_line_info, update refs.
2013-02-18 02:56:58 +00:00
Alan Modra
5c092ce819 daily update 2013-02-17 23:00:06 +00:00
Alan Modra
56fd55a9da daily update 2013-02-16 23:00:05 +00:00
H.J. Lu
3d5bef4c08 Don't add DT_NEEDED for references from the dummy bfd
bfd/

	PR ld/15146
	* elflink.c (elf_link_add_object_symbols): Don't add DT_NEEDED
	for references from the dummy bfd.

ld/

	PR ld/15146
	* plugin.c (plugin_notice): Replace the undefined dummy bfd with
	the real one.

ld/testsuite/

	PR ld/15146
	* ld-plugin/pr15146.d: New file.
	* ld-plugin/pr15146a.c: Likewise.
	* ld-plugin/pr15146b.c: Likewise.
	* ld-plugin/pr15146c.c: Likewise.
	* ld-plugin/pr15146d.c: Likewise.

	* ld-plugin/lto.exp: Add tests for PR ld/15146.
2013-02-16 17:54:37 +00:00
H.J. Lu
313ed4a9b0 Also track weak references
PR ld/15149
	* elflink.c (elf_link_add_object_symbols): Also track weak
	references.
2013-02-16 17:48:57 +00:00
Alan Modra
512b5d674d daily update 2013-02-15 23:00:05 +00:00
H.J. Lu
989fbeffb2 Don't allow a nested archive pointing to itself
PR binutils/15151
	* archive.c (_bfd_find_nested_archive): Don't allow a nested
	archive pointing to itself.
	(_bfd_get_elt_at_filepos): Revert the last 2 changes.
2013-02-15 18:26:06 +00:00
Nick Clifton
088f7bb95c Allow for some recursion when scanning archives. 2013-02-15 15:53:42 +00:00
Nick Clifton
a043396b72 PR binutils/15140
* ar.c (open_inarch): Fail on attempts to convert a normal archive
	to a thin archive or vice versa.
	* elfcomm.c (make_qualified_name): Handle corrupted thin
	archives.
	* readelf.c (process_archive): Likewise.
	* doc/binutils.texi: Clarify documentation describing thin
	archives.

	* archive.c (_bfd_get_elt_at_filepos): Prevent an infinite loop
	accessing a corrupt nested archive.
2013-02-15 14:37:39 +00:00
Alan Modra
12ec676307 daily update 2013-02-14 23:00:04 +00:00
Alan Modra
c7e80221a9 daily update 2013-02-13 23:00:05 +00:00
Richard Sandiford
13db6b44ea bfd/
* elfxx-mips.c (mips_got_page_ref): New structure.
	(mips_got_page_entry): Use a section rather than a (bfd, symndx)
	pair to represent the anchor point.
	(mips_got_info): Add a got_page_refs field.
	(mips_elf_link_hash_table): Add a sym_cache field.
	(mips_got_page_ref_hash, mips_got_page_ref_eq): New functions.
	(mips_got_page_entry_hash, mips_got_page_entry_eq): Update for
	new anchor representation.
	(mips_elf_create_got_info): Create got_page_refs rather than
	got_page_entries.
	(mips_elf_record_got_page_ref): New function.
	(mips_elf_pages_for_range): Move further down file.
	(mips_elf_record_got_page_entry): Likewise.  Take a got as argument.
	Use a section rather than a (bfd, symndx) pair to represent the
	anchor point.
	(mips_elf_resolve_got_page_ref): New function.
	(mips_elf_resolve_final_got_entries): Use it to populate
	got_page_entries.
	(_bfd_mips_elf_check_relocs): Call mips_elf_record_got_page_ref
	rather than mips_elf_record_got_page_entry.  Only nullify h
	afterwards.
	(mips_elf_lay_out_got): Call mips_elf_resolve_final_got_entries
	earlier.

ld/testsuite/
	* ld-mips-elf/mips16-pic-2.dd,
	ld-mips-elf/mips16-pic-2.gd: Remove 3 unused local GOT entries.
	* ld-mips-elf/got-page-4a.s, ld-mips-elf/got-page-4b.s,
	ld-mips-elf/got-page-4a.d, ld-mips-elf/got-page-4a.got,
	ld-mips-elf/got-page-4b.d, ld-mips-elf/got-page-4b.got,
	ld-mips-elf/got-page-5.s, ld-mips-elf/got-page-5.d,
	ld-mips-elf/got-page-5.got, ld-mips-elf/got-page-6.s,
	ld-mips-elf/got-page-6.d, ld-mips-elf/got-page-6.got,
	ld-mips-elf/got-page-7a.s, ld-mips-elf/got-page-7b.s,
	ld-mips-elf/got-page-7c.s, ld-mips-elf/got-page-7d.s,
	ld-mips-elf/got-page-7e.s, ld-mips-elf/got-page-7.d,
	ld-mips-elf/got-page-7.got: New tests.
	* ld-mips-elf/mips-elf.exp: Run them.
2013-02-13 14:08:58 +00:00
Alan Modra
27df6be5ad daily update 2013-02-12 23:00:05 +00:00
Richard Sandiford
57093f5e80 bfd/
* elfxx-mips.c (mips_elf_lay_out_got): Count VxWorks GOT relocs
	in g->relocs.
2013-02-12 09:54:56 +00:00
Alan Modra
a21f0dd3aa daily update 2013-02-11 23:00:04 +00:00
Alan Modra
9c3f90c430 * elfxx-target.h (bfd_elfNN_bfd_link_hash_table_free): Provide
suitable definition when using generic linker hash table.
2013-02-11 22:15:53 +00:00
Richard Sandiford
476366af69 bfd/
* elfxx-mips.c (mips_elf_count_got_entries): Delete.
	(mips_elf_check_recreate_got, mips_elf_recreate_got): Take a
	mips_elf_traverse_got_arg.  Count GOT entries.
	(mips_elf_resolve_final_got_entries): Take the bfd_link_info
	as argument.  Update after above changes.
	(mips_elf_merge_got, mips_elf_lay_out_got): Don't call
	mips_elf_count_got_entries.  Update the calls to
	mips_elf_resolve_final_got_entries.
2013-02-11 18:20:51 +00:00
Richard Sandiford
9ab066b4cf bfd/
* elfxx-mips.c (mips_got_tls_type): New enum.
	(mips_got_entry): Add tls_initialized.
	(mips_elf_got_entry_hash, mips_elf_got_entry_eq, mips_tls_got_relocs)
	(mips_elf_count_got_entry, mips_elf_initialize_tls_index): Remove
	GOT_TLS_TYPE masks.
	(mips_elf_reloc_tls_type, mips_tls_got_entries)
	(mips_elf_record_global_got_symbol, mips_elf_initialize_tls_index)
	(_bfd_mips_elf_finish_dynamic_symbol): Use GOT_TLS_NONE rather
	than GOT_NORMAL.
	(mips_elf_initialize_tls_slots): Replace got_offset and tls_type_p
	arguments with a GOT entry.  Remove GOT_TLS_TYPE masks.  Use
	tls_initialized rather than GOT_TLS_DONE.
	(mips_tls_got_index): Delete.
	(mips_elf_local_got_index, mips_elf_global_got_index): Use
	mips_elf_initialize_tls_slots rather than mips_tls_got_index.
	(mips_elf_record_got_entry): Initialize tls_initialized.
2013-02-11 18:17:57 +00:00
Richard Sandiford
6c42ddb92b bfd/
* elfxx-mips.c (mips_got_entry): Remove tls_ldm_offset.
	(mips_elf_link_hash_entry): Remove tls_ie_type, tls_gd_type,
	tls_ie_got_offset and tls_gd_got_offset.
	(mips_elf_link_hash_newfunc): Remove initialization.
	(mips_elf_create_got_info): Likewise.
	(mips_elf_count_local_got_entries, mips_elf_count_global_tls_entries)
	(mips_tls_single_got_index): Delete.
	(mips_elf_local_got_index): Always use the GOT entry to track
	GOT indices.
	(mips_elf_global_got_index): Likewise.
	(mips_elf_create_local_got_entry): Assert that TLS entries have
	already been allocated.
	(mips_elf_record_global_got_symbol): Don't initialize
	tls_ie_type or tls_gd_type.
	(mips_elf_count_got_symbols): Only count reloc-only GOT entries here.
	(mips_elf_initialize_tls_index): Allocate a GOT index for every TLS
	entry.
	(mips_elf_lay_out_got): Use mips_elf_count_got_entries to count
	the GOT entries.
	(_bfd_mips_elf_finish_dynamic_symbol): Assert that TLS GOT offsets
	have been allocated.
	(_bfd_mips_elf_copy_indirect_symbol): Remove handling of
	tls_ie_type and tls_gd_type.
2013-02-11 18:15:47 +00:00
Richard Sandiford
ebc53538f7 bfd/
* elfxx-mips.c (mips_elf_create_local_got_entry): Tidy.  Avoid
	aliasing violation.  Check for htab allocation failures.
2013-02-11 18:12:27 +00:00
Richard Sandiford
13fbec8390 bfd/
* elfxx-mips.c (mips_elf_primary_global_got_index): New function,
	split out from...
	(mips_elf_global_got_index): ...here.  Reorder arguments so that
	the output bfd and info come first.
	(mips_elf_calculate_relocation): Update the call to
	mips_elf_global_got_index accordingly.
	(_bfd_mips_elf_finish_dynamic_symbol): Use
	mips_elf_primary_global_got_index rather than
	mips_elf_global_got_index.
	(_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
2013-02-11 18:11:17 +00:00
Richard Sandiford
3dff0dd1e3 bfd/
* elfxx-mips.c (mips_got_entry): Update comments.
	(mips_elf_multi_got_entry_eq): Rename to...
	(mips_elf_got_entry_eq): ...this, deleting the old definition.
	(mips_elf_create_got_info): Remove master_got_p argument.
	Always use mips_elf_got_entry_eq.
	(mips_elf_bfd_got, mips_elf_multi_got, mips_elf_create_got_section):
	Update calls accordingly.

ld/testsuite/
	* ld-mips-elf/tlsdyn-o32-1.d, ld-mips-elf/tlsdyn-o32-1.got,
	ld-mips-elf/tlsdyn-o32-2.d, ld-mips-elf/tlsdyn-o32-2.got,
	ld-mips-elf/tlsdyn-o32-3.d, ld-mips-elf/tlsdyn-o32-3.got,
	ld-mips-elf/tls-hidden3.d, ld-mips-elf/tls-hidden3.got: Update
	for new hash table order.
2013-02-11 18:09:24 +00:00
Richard Sandiford
d720656991 bfd/
* elfxx-mips.c (mips_got_info): Remove bfd2got.
	(mips_elf_bfd2got_hash): Delete.
	(mips_elf_got_per_bfd_arg): Remove bfd2got.
	(mips_elf_replace_bfd_got, mips_elf_count_got_entries): New functions.
	(mips_elf_global_got_index, mips_elf_create_local_got_entry): Use
	g->next to test for the multigot case.  Use mips_elf_bfd_got rather
	than mips_elf_got_for_ibfd.
	(mips_elf_bfd2got_entry_hash, mips_elf_bfd2got_entry_eq)
	(mips_elf_got_for_ibfd, mips_elf_get_got_for_bfd): Delete.
	(mips_elf_make_got_per_bfd): Replace with...
	(mips_elf_add_got_entry): ...this new function.
	(mips_elf_make_got_pages_per_bfd): Replace with...
	(mips_elf_add_got_page_entry): ...this new function.
	(mips_elf_merge_got_with): Replace bfd2got argument with separate
	bfd and GOT arguments.  Use mips_elf_add_got_entry and
	mips_elf_add_got_page_entry instead of mips_elf_make_got_per_bfd
	and mips_elf_make_got_pages_per_bfd.  Use mips_elf_replace_bfd_got
	to set the BFD's GOT and free the old table.
	(mips_elf_merge_got): Replace bfd2got argument with separate
	bfd and GOT arguments.  Apply mips_elf_resolve_final_got_entries.
	Use mips_elf_count_got_entries to count the number of entries in
	each GOT.  Update the calls to mips_elf_merge_got_with.
	(mips_elf_adjust_gp): Use g->next to test for the multigot case.
	Use mips_elf_bfd_got rather than mips_elf_got_for_ibfd.
	(mips_elf_multi_got): Don't create the bfd2got hash table.
	Replace hash table traversal with a walk over the input bfds,
	updating the call to mips_elf_merge_got.  Use mips_elf_replace_bfd_got
	to set the output bfd's GOT.
	(mips_elf_lay_out_got): Rename "sub" to "ibfd".  Record that all
	bfds use the master GOT in the single-GOT case.
	(_bfd_mips_elf_finish_dynamic_sections): Use mips_elf_bfd_got
	rather than mips_elf_got_for_ibfd.

ld/testsuite/
	* ld-mips-elf/tls-hidden4.got, ld-mips-elf/tls-multi-got-1.d,
	ld-mips-elf/tls-multi-got-1.got: Update for changes in the order
	that symbols are added to per-bfd GOTs.
2013-02-11 18:06:10 +00:00
Richard Sandiford
ee227692d7 bfd/
* elfxx-mips.c (mips_elf_obj_tdata): Add a got field.
	(mips_elf_bfd_got, mips_elf_record_got_entry): New functions.
	(mips_elf_record_global_got_symbol): Update the hash entry before
	adding the mips_got_entry.  Use mips_elf_record_got_entry to do
	the latter.
	(mips_elf_record_local_got_symbol): Use mips_elf_record_got_entry.
	(mips_elf_record_got_page_entry): Record the entry in both the
	master and bfd GOTs.
2013-02-11 18:01:58 +00:00
Richard Sandiford
72e7511a70 bfd/
* elfxx-mips.c (mips_elf_recreate_got): Don't change the entry;
	create another one if necessary.
	(mips_elf_set_gotidx): New function.
	(mips_elf_set_global_gotidx): Use it.
	(mips_elf_initialize_tls_index): Likewise.  Take a
	mips_elf_traverse_got_arg as argument.
	(mips_elf_lay_out_got): Update use of mips_elf_initialize_tls_index.
	(mips_elf_multi_got): Likewise.  Cope with error returns from
	mips_elf_set_global_gotidx.
2013-02-11 17:59:31 +00:00
Richard Sandiford
ab361d499a bfd/
* elfxx-mips.c (mips_got_info): Add relocs field.
	(mips_elf_set_global_got_offset_arg, mips_elf_count_tls_arg): Replace
	with...
	(mips_elf_traverse_got_arg): ...this new structure.
	(mips_elf_count_local_tls_relocs): Delete.
	(mips_elf_count_global_tls_relocs): Likewise.
	(mips_elf_count_got_entry): New function.
	(mips_elf_count_local_got_entries): Likewise.
	(mips_elf_count_global_tls_entries): Take a mips_elf_traverse_got_arg
	rather than a mips_elf_count_tls_arg.  Count both relocs and entries.
	(mips_elf_record_local_got_symbol): Don't count got entries here.
	(mips_elf_make_got_per_bfd): Use mips_elf_count_got_entry.
	(mips_elf_set_global_got_offset): Split into...
	(mips_elf_set_global_got_area, mips_elf_set_global_gotidx): ...these
	new functions.  Take a mips_elf_traverse_got_arg rather than a
	mips_elf_set_global_got_offset_arg.  Don't count TLS relocs here.
	Use g->relocs to record the number of relocs needed for global GOT
	entries.
	(mips_elf_multi_got): Use mips_elf_traverse_got_arg rather than
	mips_elf_set_global_got_offset_arg.  Use the relocs field to count
	relocations.  Update for above function split.
	(mips_elf_lay_out_got): Use mips_elf_count_local_got_entries
	to count both the number of GOT entries and the number of TLS
	relocs required by local entries.  Likewise
	mips_elf_count_global_tls_entries and global entries.
	Remove uses of mips_elf_count_local_tls_relocs and
	mips_elf_count_global_tls_relocs.
2013-02-11 17:55:27 +00:00
Richard Sandiford
e641e783fb bfd/
* elfxx-mips.c (mips_got_entry): Update comment above tls_type entry
	to say that each structure represents only one type of TLS reference.
	(GOT_TLS_TYPE): New define.
	(mips_elf_link_hash_entry): Temporarily split tls_type and
	tls_got_offset into two variables each.
	(mips_elf_link_hash_newfunc): Update accordingly.
	(mips_elf_got_entry_eq, mips_elf_got_entry_hash)
	(mips_elf_multi_got_entry_eq): Require the tls_type to be the same.
	(mips_elf_reloc_tls_type, mips_tls_got_entries): New functions.
	(mips_tls_got_relocs): Use a switch statement.
	(mips_elf_count_global_tls_entries): Handle the new hash entry fields.
	(mips_elf_initialize_tls_slots): Use a switch statement.  Avoid
	local "offset" variable.
	(mips_tls_got_index): Remove r_type argument and assert.  Remove
	code that handled entries with two TLS types; always use the
	original got_index instead.
	(mips_tls_single_got_index): New function.
	(mips_elf_local_got_index): Use entry->tls_type to check for
	TLS entries.  Use mips_tls_single_got_index.  Update call to
	mips_tls_got_index.
	(mips_elf_global_got_index): Use mips_elf_reloc_tls_type.
	Use p->tls_type to check for TLS entries.  Update call to
	mips_tls_got_index.  Use mips_tls_single_got_index.
	(mips_elf_create_local_got_entry): Use mips_elf_reloc_tls_type.
	Use entry.tls_type to check for TLS entries.
	(mips_elf_record_global_got_symbol): Replace tls_flag argument
	with r_type argument.  Use mips_elf_reloc_tls_type.
	Set up the new hash entry fields.
	(mips_elf_record_local_got_symbol): Replace tls_flag argument
	with r_type argument.  Use mips_elf_reloc_tls_type and
	mips_tls_got_entries.  Remove code that handled entries
	with multiple TLS types.
	(mips_elf_make_got_per_bfd): Use mips_tls_got_entries.
	(mips_elf_initialize_tls_index): Handle new hash entry fields.
	Use equality rather than masks when checking for specific TLS types.
	Use mips_tls_got_entries.  Remove code that handled entries
	with multiple TLS types.
	(mips_elf_calculate_relocation): Use TLS_RELOC_P instead of
	testing the hash table entry.
	(_bfd_mips_elf_check_relocs): Update calls to
	mips_elf_record_global_got_symbol and mips_elf_record_local_got_symbol.
	(_bfd_mips_elf_finish_dynamic_symbol): Don't check h->type.
	(_bfd_mips_elf_copy_indirect_symbol): Handle new hash entry fields.
2013-02-11 17:54:16 +00:00
Richard Sandiford
d9bf376d09 bfd/
* elfxx-mips.c (mips_elf_multi_got_entry_hash): Rename to...
	(mips_elf_got_entry_hash): ...this, deleting the old version.
	(mips_elf_create_got_info): Use mips_elf_got_entry_hash for
	both types of GOT.

ld/testsuite/
	* ld-mips-elf/tls-hidden3.d, ld-mips-elf/tls-hidden3.got,
	ld-mips-elf/tls-multi-got-1.got, ld-mips-elf/tlsbin-o32.d,
	ld-mips-elf/tlsbin-o32.got, ld-mips-elf/tlsdyn-o32-1.d,
	ld-mips-elf/tlsdyn-o32-1.got, ld-mips-elf/tlsdyn-o32-2.d,
	ld-mips-elf/tlsdyn-o32-2.got, ld-mips-elf/tlsdyn-o32-3.d,
	ld-mips-elf/tlsdyn-o32-3.got, ld-mips-elf/tlsdyn-o32.d,
	ld-mips-elf/tlsdyn-o32.got, ld-mips-elf/tlslib-o32.d,
	ld-mips-elf/tlslib-o32.got, ld-mips-elf/tlslib-o32-hidden.got,
	ld-mips-elf/tlslib-o32-ver.got: Adjust GOT layout for new
	got_entry hash function.
2013-02-11 17:46:02 +00:00
Richard Sandiford
5334aa52f0 bfd/
* elfxx-mips.c (mips_elf_create_got_info): New function.
	(mips_elf_get_got_for_bfd, mips_elf_multi_got): Use it.
	(mips_elf_create_got_section): Likewise.
2013-02-11 17:43:00 +00:00
Richard Sandiford
946c668d89 bfd/
* elfxx-mips.c (mips_elf_record_local_got_symbol): Always set
	gotidx to -1.
2013-02-11 17:40:51 +00:00
Richard Sandiford
59b089943c bfd/
* elfxx-mips.c (mips_elf_multi_got): Simplify size calculation.
2013-02-11 17:38:53 +00:00
Richard Sandiford
d222d21028 bfd/
* elfxx-mips.c (mips_got_info): Move global_gotsym to...
	(mips_elf_link_hash_table): ...here.  Update rest of file accordingly.
2013-02-11 17:31:23 +00:00
Richard Sandiford
1fd20d7055 bfd/
* elfxx-mips.c (mips_elf_count_global_tls_entries)
	(mips_elf_count_global_tls_relocs): Don't count indirect or
	warning symbols.
	(mips_elf_multi_got, mips_elf_lay_out_got): Assert that the right
	number of TLS entries were allocated.

ld/testsuite/
	* ld-mips-elf/tlsdyn-o32-2.got, ld-mips-elf/tlsdyn-o32-3.got: Remove
	unused GOT entries.
2013-02-11 17:29:35 +00:00
Richard Sandiford
7d94b3191a bfd/
* elfxx-mips.c (mips_elf_sort_hash_table_f): Remove asserts.
2013-02-11 17:27:57 +00:00
Richard Sandiford
172149374e bfd/
* elfxx-mips.c (mips_elf_merge_got_with): Only use arg->global_count
	if there are TLS relocations.
2013-02-11 17:25:23 +00:00
Richard Sandiford
9efeb38dd1 bfd/
* elfxx-mips.c (mips_elf_recreate_got): Remove free.
	(mips_elf_resolve_final_got_entries): Remove bogus comment.
2013-02-11 17:21:31 +00:00
Alan Modra
9f7c3e5e99 * elfcode.h (elf_checksum_contents): Free contents.
* elf-bfd.h (_bfd_elf_link_hash_table_free): Declare.
	* elflink.c (_bfd_elf_link_hash_table_free): New function.
	(elf_final_link_free): New function, extracted from..
	(bfd_elf_final_link): ..here.  Always call
	_bfd_elf_write_section_eh_frame_hdr.
	* elfxx-target.h (bfd_elfNN_bfd_link_hash_table_free): Default to
	_bfd_elf_link_hash_table_free.
	* libbfd-in.h (_bfd_merge_sections_free): Declare.
	* libbfd.h: Regenerate.
	* merge.c (_bfd_merge_sections_free): New function.
	* elf-eh-frame.c (_bfd_elf_write_section_eh_frame_hdr): Free
	hdr_info->array.
	* elf-m10300.c (elf32_mn10300_link_hash_table_free): Call
	_bfd_elf_link_hash_table_free.
	* elf32-arm.c (elf32_arm_link_hash_table_free): Likewise.
	* elf32-avr.c (elf32_avr_link_hash_table_free): Likewise.
	* elf32-hppa.c (elf32_hppa_link_hash_table_free): Likewise.
	* elf32-i386.c (elf_i386_link_hash_table_free): Likewise.
	* elf32-m68hc1x.c (m68hc11_elf_hash_table_free): Likewise.
	* elf32-m68k.c (elf_m68k_link_hash_table_free): Likewise.
	* elf32-metag.c (elf_metag_link_hash_table_free): Likewise.
	* elf32-xgate.c (xgate_elf_bfd_link_hash_table_free): Likewise.
	* elf64-aarch64.c (elf64_aarch64_link_hash_table_free): Likewise.
	* elf64-ia64-vms.c (elf64_ia64_hash_table_free): Likewise.
	* elf64-ppc.c (ppc64_elf_link_hash_table_free): Likewise.
	* elf64-x86-64.c (elf_x86_64_link_hash_table_free): Likewise.
	* elfnn-ia64.c (elfNN_ia64_hash_table_free): Likewise.
	* elf32-cr16.c (elf32_cr16_link_hash_table_free): Delete.
	(bfd_elf32_bfd_link_hash_table_free): Don't define.
	* elf32-tic6x.c (elf32_tic6x_link_hash_table_free): Delete.
	(bfd_elf32_bfd_link_hash_table_free): Dont' define.
2013-02-11 05:30:54 +00:00
Alan Modra
ade3edce91 daily update 2013-02-10 23:00:05 +00:00
Alan Modra
7bf52ea2ca * coff-arm.c (coff_arm_link_hash_table_create): Use bfd_zmalloc.
* coff-h8300.c (h8300_coff_link_hash_table_create): Likewise.
	* m68klinux.c (linux_link_hash_table_create): Likewise.
	* sparclinux.c (linux_link_hash_table_create): Likewise.
	* sunos.c (sunos_link_hash_table_create): Likewise.
	* xcofflink.c (_bfd_xcoff_bfd_link_hash_table_create): Likewise.
	* elf-m10300.c (elf32_mn10300_link_hash_table_create): Likewise.
	* elf32-arm.c (elf32_arm_link_hash_table_create): Likewise.
	* elf32-avr.c (elf32_avr_link_hash_table_create): Likewise.
	* elf32-cr16.c (elf32_cr16_link_hash_table_create): Likewise.
	* elf32-cris.c (elf_cris_link_hash_table_create): Likewise.
	* elf32-hppa.c (elf32_hppa_link_hash_table_create): Likewise.
	* elf32-i386.c (elf_i386_link_hash_table_create): Likewise.
	* elf32-lm32.c (lm32_elf_link_hash_table_create): Likewise.
	* elf32-m32r.c (m32r_elf_link_hash_table_create): Likewise.
	* elf32-m68hc1x.c (m68hc11_elf_hash_table_create): Likewise.
	* elf32-m68k.c (elf_m68k_link_hash_table_create): Likewise.
	* elf32-metag.c (elf_metag_link_hash_table_create): Likewise.
	* elf32-nios2.c (nios2_elf32_link_hash_table_create): Likewise.
	* elf32-s390.c (elf_s390_link_hash_table_create): Likewise.
	* elf32-score.c (elf32_score_link_hash_table_create): Likewise.
	* elf32-spu.c (spu_elf_link_hash_table_create): Likewise.
	* elf32-tic6x.c (elf32_tic6x_link_hash_table_create): Likewise.
	* elf32-vax.c (elf_vax_link_hash_table_create): Likewise.
	* elf32-xgate.c (xgate_elf_bfd_link_hash_table_create): Likewise.
	* elf32-xtensa.c (elf_xtensa_link_hash_table_create): Likewise.
	* elf64-aarch64.c (elf64_aarch64_link_hash_table_create): Likewise.
	* elf64-s390.c (elf_s390_link_hash_table_create): Likewise.
	* elf64-sh64.c (sh64_elf64_link_hash_table_create): Likewise.
	* elf64-x86-64.c (elf_x86_64_link_hash_table_create): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_link_hash_table_create): Likewise.
	* elflink.c (_bfd_elf_link_hash_table_create): Likewise.
	(_bfd_elf_link_hash_table_init): Assume zero fill table on entry.
2013-02-10 04:36:33 +00:00
Alan Modra
22cdc249cd * i386linux.c (linux_link_hash_table_create): Allocate table
with bfd_zmalloc, not bfd_alloc.
	* pdp11.c (link_hash_table_create): Allocate table with
	bfd_malloc, not bfd_alloc.
	* elf32-bfin.c (bfinfdpic_elf_link_hash_table_create): Allocate table
	with bfd_zmalloc, not bfd_zalloc.
	(bfin_link_hash_table_create): Likewise.
	* elf32-frv.c (frvfdpic_elf_link_hash_table_create): Likewise.
	* elf64-hppa.c (elf64_hppa_hash_table_create): Likewise.
2013-02-10 04:01:15 +00:00
Alan Modra
0e5de31a6c PR ld/15113
* elf32-sh.c (sh_elf_link_hash_table_create): Use bfd_zmalloc.
2013-02-10 02:19:18 +00:00
Alan Modra
d1a67bc3b9 daily update 2013-02-09 23:00:07 +00:00
Alan Modra
0aef3221e5 daily update 2013-02-08 23:00:06 +00:00
Nick Clifton
34c67f14b0 (elf_metag_adjust_dynamic_symbol): Don't error on zero size dynbss symbol. 2013-02-08 17:14:49 +00:00
Nick Clifton
ad1fc92a0f * elf32-metag.c: Use bfd_get_linker_section to get SEC_LINKER_CREATED sections. 2013-02-08 17:11:36 +00:00
Yufeng Zhang
170a82956d bfd/
2013-02-08  Yufeng Zhang  <yufeng.zhang@arm.com>

	* elf64-aarch64.c (elf64_aarch64_grok_prstatus): Change 'size' from
	288 to 272.
2013-02-08 12:32:42 +00:00
Alan Modra
619a703ea3 PR binutils/15106
* elf-bfd.h (struct elf_obj_tdata): Add elf_find_function_cache.
	* elf.c (elf_find_function): Revert last change.  Use new
	tdata field rather than static vars for cache.
2013-02-08 07:04:50 +00:00
H.J. Lu
02acbe2250 Set STB_GNU_UNIQUE only if symbol is defined in regular object
bfd/

	PR ld/15107
	* elflink.c (elf_link_output_extsym): Set STB_GNU_UNIQUE only if
	symbol is defined in regular object.

ld/testsuite/

	PR ld/15107
	* ld-unique/unique_empty.s: Add reference to "b".
2013-02-08 01:33:01 +00:00
Alan Modra
83fe9eb914 daily update 2013-02-07 23:00:05 +00:00
Alan Modra
1965d5f2d0 PR binutils/15106
* elf.c (elf_find_function): Don't cache if symbols change.
2013-02-07 04:20:31 +00:00
Alan Modra
dafbc74d2c PR binutils/14873
* elf-attrs.c (_bfd_elf_copy_obj_attributes): Don't attempt to
	copy attributes from or to non-ELF.
2013-02-07 03:44:26 +00:00
H.J. Lu
20e52bd2b8 Don't resolve size relocation against non-zero TLS symbol
bfd/

	* elf32-i386.c (elf_i386_allocate_dynrelocs): Don't clear pc_count
	for non-zero TLS symbol.
	(elf_i386_relocate_section): Don't resolve size relocation against
	non-zero TLS symbol.
	* elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Don't clear
	pc_count for non-zero TLS symbol.
	(elf_x86_64_relocate_section): Don't resolve size relocation
	against non-zero TLS symbol.

ld/testsuite/

	* ld-size/size-10.rd: Updated.
	* ld-size/size-8.rd: Likewise.
	* ld-size/size32-2-i386.d: Likewise.
	* ld-size/size32-2-x32.d: Likewise.
	* ld-size/size32-2-x86-64.d: Likewise.
	* ld-size/size64-2-x32.d: Likewise.
	* ld-size/size64-2-x86-64.d: Likewise.

	* ld-size/size.exp (run_time_tests): Pass --hash-styl=gnu to
	linker for size-8 test.
2013-02-07 02:15:30 +00:00
Sandra Loosemore
36591ba149 2013-02-06 Sandra Loosemore <sandra@codesourcery.com>
Andrew Jenner <andrew@codesourcery.com>

	Based on patches from Altera Corporation.

	bfd/
	* Makefile.am (ALL_MACHINES): Add cpu-nios2.lo.
	(ALL_MACHINES_CFILES): Add cpu-nios2.c.
	(BFD_BACKENDS): Add elf32-nios2.lo.
	(BFD32_BACKENDS_CFILES): Add elf32-nios2.c.
	* Makefile.in: Regenerated.
	* configure.in: Add entries for bfd_elf32_bignios2_vec and
	bfd_elf32_littlenios2_vec.
	* configure: Regenerated.
	* config.bfd: Add cases for nios2.
	* archures.c (enum bfd_architecture): Add bfd_arch_nios2.
	(bfd_mach_nios2): Define.
	(bfd_nios2_arch): Declare.
	(bfd_archures_list): Add bfd_nios2_arch.
	* targets.c (bfd_elf32_bignios2_vec): Declare.
	(bfd_elf32_littlenios2_vec): Declare.
	(_bfd_target_vector): Add entries for bfd_elf32_bignios2_vec and
	bfd_elf32_littlenios2_vec.
	* elf-bfd.h (enum elf_target_id): Add NIOS2_ELF_DATA.
	* reloc.c (enum bfd_reloc_code_real): Add Nios II relocations.
	* bfd-in2.h: Regenerated.
	* libbfd.h: Regenerated.
	* cpu-nios2.c: New file.
	* elf32-nios2.c: New file.

	opcodes/
	* Makefile.am (TARGET_LIBOPCODES_CFILES): Add nios2-dis.c and
	nios2-opc.c.
	* Makefile.in: Regenerated.
	* configure.in: Add case for bfd_nios2_arch.
	* configure: Regenerated.
	* disassemble.c (ARCH_nios2): Define.
	(disassembler): Add case for bfd_arch_nios2.
	* nios2-dis.c: New file.
	* nios2-opc.c: New file.

	include/
	* dis-asm.h (print_insn_big_nios2): Declare.
	(print_insn_little_nios2): Declare.

	include/elf
	* nios2.h: New file.

	include/opcode/
	* nios2.h: New file.

	gas/
	* Makefile.am (TARGET_CPU_CFILES): Add config/tc-nios2.c.
	(TARGET_CPU_HFILES): Add config/tc-nios2.h.
	* Makefile.in: Regenerated.
	* configure.tgt: Add case for nios2*-linux*.
	* config/obj-elf.c: Conditionally include elf/nios2.h.
	* config/tc-nios2.c: New file.
	* config/tc-nios2.h: New file.
	* doc/Makefile.am (CPU_DOCS): Add c-nios2.texi.
	* doc/Makefile.in: Regenerated.
	* doc/all.texi: Set NIOSII.
	* doc/as.texinfo (Overview): Add Nios II options.
	(Machine Dependencies): Include c-nios2.texi.
	* doc/c-nios2.texi: New file.
	* NEWS: Note Altera Nios II support.

	gas/testsuite/
	* gas/nios2/add.d: New.
	* gas/nios2/add.s: New.
	* gas/nios2/align_fill.d: New.
	* gas/nios2/align_fill.s: New.
	* gas/nios2/align_text.d: New.
	* gas/nios2/align_text.s: New.
	* gas/nios2/and.d: New.
	* gas/nios2/and.s: New.
	* gas/nios2/branch.d: New.
	* gas/nios2/branch.s: New.
	* gas/nios2/break.d: New.
	* gas/nios2/break.s: New.
	* gas/nios2/bret.d: New.
	* gas/nios2/bret.s: New.
	* gas/nios2/cache.d: New.
	* gas/nios2/cache.s: New.
	* gas/nios2/call26.d: New.
	* gas/nios2/call26.s: New.
	* gas/nios2/call.d: New.
	* gas/nios2/call.s: New.
	* gas/nios2/cmp.d: New.
	* gas/nios2/cmp.s: New.
	* gas/nios2/comments.d: New.
	* gas/nios2/comments.s: New.
	* gas/nios2/complex.d: New.
	* gas/nios2/complex.s: New.
	* gas/nios2/ctl.d: New.
	* gas/nios2/ctl.s: New.
	* gas/nios2/custom.d: New.
	* gas/nios2/custom.s: New.
	* gas/nios2/etbt.d: New.
	* gas/nios2/etbt.s: New.
	* gas/nios2/flushda.d: New.
	* gas/nios2/flushda.s: New.
	* gas/nios2/illegal.l: New.
	* gas/nios2/illegal.s: New.
	* gas/nios2/jmp.d: New.
	* gas/nios2/jmp.s: New.
	* gas/nios2/ldb.d: New.
	* gas/nios2/ldb.s: New.
	* gas/nios2/ldh.d: New.
	* gas/nios2/ldh.s: New.
	* gas/nios2/ldw.d: New.
	* gas/nios2/ldw.s: New.
	* gas/nios2/lineseparator.d: New.
	* gas/nios2/lineseparator.s: New.
	* gas/nios2/mov.d: New.
	* gas/nios2/movia.d: New.
	* gas/nios2/movia.s: New.
	* gas/nios2/movi.d: New.
	* gas/nios2/movi.s: New.
	* gas/nios2/mov.s: New.
	* gas/nios2/mul.d: New.
	* gas/nios2/mul.s: New.
	* gas/nios2/nios2.exp: New.
	* gas/nios2/nor.d: New.
	* gas/nios2/nor.s: New.
	* gas/nios2/or.d: New.
	* gas/nios2/or.s: New.
	* gas/nios2/ret.d: New.
	* gas/nios2/ret.s: New.
	* gas/nios2/rol.d: New.
	* gas/nios2/rol.s: New.
	* gas/nios2/rotate.d: New.
	* gas/nios2/rotate.s: New.
	* gas/nios2/stb.d: New.
	* gas/nios2/stb.s: New.
	* gas/nios2/sth.d: New.
	* gas/nios2/sth.s: New.
	* gas/nios2/stw.d: New.
	* gas/nios2/stw.s: New.
	* gas/nios2/sub.d: New.
	* gas/nios2/sub.s: New.
	* gas/nios2/sync.d: New.
	* gas/nios2/sync.s: New.
	* gas/nios2/trap.d: New.
	* gas/nios2/trap.s: New.
	* gas/nios2/tret.d: New.
	* gas/nios2/tret.s: New.
	* gas/nios2/warn_noat.l: New.
	* gas/nios2/warn_noat.s: New.
	* gas/nios2/warn_nobreak.l: New.
	* gas/nios2/warn_nobreak.s: New.
	* gas/nios2/xor.d: New.
	* gas/nios2/xor.s: New.

	ld/
	* Makefile.am (enios2elf.c): New rule.
	* Makefile.in: Regenerated.
	* configure.tgt: Add case for nios2*-*-*.
	* emulparams/nios2elf.sh: New file.
	* NEWS: Note Altera Nios II support.

	ld/testsuite/
	* ld-nios2/emit-relocs-1a.s: New.
	* ld-nios2/emit-relocs-1b.s: New.
	* ld-nios2/emit-relocs-1.d: New.
	* ld-nios2/emit-relocs-1.ld: New.
	* ld-nios2/gprel.d: New.
	* ld-nios2/gprel.s: New.
	* ld-nios2/hilo16.d: New.
	* ld-nios2/hilo16.s: New.
	* ld-nios2/hilo16_symbol.s: New.
	* ld-nios2/imm5.d: New.
	* ld-nios2/imm5.s: New.
	* ld-nios2/imm5_symbol.s: New.
	* ld-nios2/nios2.exp: New.
	* ld-nios2/pcrel16.d: New.
	* ld-nios2/pcrel16_label.s: New.
	* ld-nios2/pcrel16.s: New.
	* ld-nios2/relax_callr.d: New.
	* ld-nios2/relax_callr.ld: New.
	* ld-nios2/relax_callr.s: New.
	* ld-nios2/relax_cjmp.d: New.
	* ld-nios2/relax_cjmp.s: New.
	* ld-nios2/relax_jmp.ld: New.
	* ld-nios2/relax_section.d: New.
	* ld-nios2/relax_section.s: New.
	* ld-nios2/relax_ujmp.d: New.
	* ld-nios2/relax_ujmp.s: New.
	* ld-nios2/reloc.d: New.
	* ld-nios2/reloc.s: New.
	* ld-nios2/reloc_symbol.s: New.
	* ld-nios2/s16.d: New.
	* ld-nios2/s16.s: New.
	* ld-nios2/s16_symbol.s: New.
	* ld-nios2/u16.d: New.
	* ld-nios2/u16.s: New.
	* ld-nios2/u16_symbol.s: New.
	* ld-elf/indirect.exp: Skip on targets that don't support
	-shared -fPIC.
	* ld-elfcomm/elfcomm.exp: Build with -G0 for nios2.
	* ld-plugin/lto.exp: Skip shared library tests on targets that
	don't support them.  Skip execution tests on non-native targets.

	binutils/
	* readelf.c: Include elf/nios2.h.
	(dump_relocations): Add case for EM_ALTERA_NIOS2.
	(get_nios2_dynamic_type): New.
	(get_dynamic_type): Add case for EM_ALTERA_NIOS2.
	(is_32bit_abs_reloc): Fix EM_ALTERA_NIOS2 case.
	(is_16bit_abs_reloc): Likewise.
	(is_none_reloc): Add EM_ALTERA_NIOS2 and EM_NIOS32 cases.
	* NEWS: Note Altera Nios II support.
	* MAINTAINERS: Add Nios II maintainers.
2013-02-06 23:22:26 +00:00
Alan Modra
574b0b3165 daily update 2013-02-06 23:00:04 +00:00
Alan Modra
ca6b5f82a5 * elf32-arm.c (elf32_arm_final_link_relocate): Only test for
stubs in stub_bfd.
2013-02-05 23:18:44 +00:00
Alan Modra
21c238470a daily update 2013-02-05 23:00:04 +00:00
Alan Modra
37ba9f93b2 * Makefile.am (SOURCE_HFILES): Add `elf-linux-psinfo.h'.
* Makefile.in: Regenerate.
2013-02-05 13:57:49 +00:00
Alan Modra
80d79f653c daily update 2013-02-04 23:00:04 +00:00
Sergio Durigan Junior
70a38d42c5 2013-02-04 Sergio Durigan Junior <sergiodj@redhat.com>
Pedro Alves  <palves@redhat.com>

	* Makefile.in (SOURCE_HFILES): Add `elf-linux-psinfo.h'.
	* elf-bfd.h (elf_internal_linux_prpsinfo): New structure
	declaration.
	(elfcore_write_linux_prpsinfo32, elfcore_write_linux_prpsinfo64)
	(elfcore_write_ppc32_linux_prpsinfo32): New declarations.
	* elf-linux-psinfo.h: New file.
	* elf.c: Include elf-linux-psinfo.h.
	(elfcore_write_linux_prpsinfo32, elfcore_write_linux_prpsinfo64):
	New functions.
	* elf32-ppc.c: Include `elf-linux-psinfo.h'.
	(elf_external_ppc_linux_prpsinfo32): New structure declaration.
	(PPC_LINUX_PRPSINFO32_SWAP_FIELDS): New macro.
	(elfcore_write_ppc_linux_prpsinfo32): New function.
2013-02-04 18:26:34 +00:00
Tristan Gingold
5ee43bc47a 2013-02-04 Tristan Gingold <gingold@adacore.com>
* mach-o.c (bfd_mach_o_scan_start_address): Do not fail if no
	start address.
2013-02-04 14:48:20 +00:00
Alan Modra
0cadb185c7 * Makefile.am (BFD64_BACKENDS): Remove elf-nacl.lo.
(BFD64_BACKENDS_CFILES): Remove elf-nacl.c.
	* Makefile.in: Regenerate.
	* po/SRC-POTFILES.in: Regenerate.
2013-02-04 06:02:10 +00:00
Alan Modra
5d42dfb5b9 include/coff/
* ti.h (SWAP_OUT_RELOC_EXTRA): Define.
bfd/
	* coff-tic54x.c (SWAP_OUT_RELOC_EXTRA): Delete.
	* coff-tic80.c (SWAP_OUT_RELOC_EXTRA): Delete.
2013-02-04 05:25:41 +00:00
Alan Modra
4d9d2f16a6 correct pr reference 2013-02-04 05:10:44 +00:00
Alan Modra
c254914192 daily update 2013-02-03 23:00:07 +00:00
Alan Modra
5a3c4024f8 daily update 2013-02-02 23:00:05 +00:00
Alan Modra
df68024921 daily update 2013-02-01 23:00:06 +00:00
Alan Modra
c57da1a761 * elf64-ppc.c (dec_dynrel_count): Don't error when elf_gc_sweep_symbol
clears def_regular.
2013-02-01 11:06:37 +00:00
Alan Modra
c556a362b6 daily update 2013-01-31 23:00:04 +00:00
Tristan Gingold
c0fd7846dc 2013-01-31 Tristan Gingold <gingold@adacore.com>
* mach-o.c (bfd_mach_o_scan): Call bfd_mach_o_flatten_sections
	earlier.  Fix status checking of bfd_mach_o_scan_start_address.
	(bfd_mach_o_scan_start_address): Handle LC_MAIN.
2013-01-31 09:55:41 +00:00
Alan Modra
b45b6908c1 PR ld/15056
* elfxx-sparc.c (_bfd_sparc_elf_gc_mark_hook): Handle implicit
	references to __tls_get_addr.
	* elf32-tilpro.c (tilepro_elf_gc_mark_hook): Likewise.  Correct
	vtinherit and vtentry reloc handling too.
	* elfxx-tilegx.c (tilegx_elf_gc_mark_hook): As for tilepro.
2013-01-31 07:32:45 +00:00
Alan Modra
bcaa2f8235 bfd/
* elf64-ppc.c (ppc_stub_name): Trim off trailing "+0".
ld/testsuite/
	* ld-powerpc/tlsexe.d: Update for changed stub names.
	* ld-powerpc/tlsexe.r: Likewise.
	* ld-powerpc/tlsexetoc.d: Likewise.
	* ld-powerpc/tlsexetoc.r: Likewise.
	* ld-powerpc/tlsso.d: Likewise.
	* ld-powerpc/tlsso.r: Likewise.
	* ld-powerpc/tlstocso.d: Likewise.
	* ld-powerpc/tlstocso.r: Likewise.
2013-01-31 06:28:48 +00:00
Alan Modra
bfe8a16067 daily update 2013-01-30 23:00:04 +00:00
Alan Modra
22aa0c7ed3 * elf64-ppc.c (build_plt_stub): Correct plt stub branch to glink. 2013-01-30 22:31:31 +00:00
Alan Modra
92ff23a1bf revert last commit 2013-01-30 10:07:26 +00:00
Alan Modra
ca3e555cca daily update 2013-01-29 23:00:05 +00:00
DJ Delorie
392ca75208 * config/tc-rl78.c (rl78_cons_fix_new): Handle user-specified
relocs in .word/.etc statements.
2013-01-29 22:17:53 +00:00
Alan Modra
4a1af94739 daily update 2013-01-28 23:00:05 +00:00
Alan Modra
bc30df1657 * elf64-ppc.c: Use %T to print symbols names and remove redundant
"relocation" in error messages throughout file.
	(ppc64_elf_relocate_section): Remove sibling call error message,
	replace with "call lacks nop".  Specially report errors for
	branches to function entry points via OPD lookup and branches
	to stubs.  Remove NULL symbol handling now done by %T.
2013-01-28 12:30:17 +00:00
Alan Modra
89d7b8aa6b * archive.c (bfd_generic_archive_p): Return target and keep
ardata on partial matches.
	* format.c (bfd_check_format_matches): Adjust for above
	change.  Remove bfd_error_file_ambiguously_recognized dead
	code.
2013-01-28 07:58:16 +00:00
Alan Modra
b30c8b939b daily update 2013-01-27 23:00:05 +00:00
Mike Frysinger
36af392657 mention fixed bug in ChangeLog 2013-01-27 16:58:44 +00:00
Alan Modra
df686045e0 daily update 2013-01-26 23:00:06 +00:00
Alan Modra
c9ba0c87bf * bfd.c (struct bfd_preserve, bfd_preserve_save, bfd_preserve_restore,
bfd_preserve_finish): Move to..
	* format.c: ..here, splitting out..
	(bfd_reinit): ..this.  New function.
	(bfd_check_format_matches): Use bfd_preserve_save/restore to
	keep bfd state for a match.
	* elfcode.h (elf_object_p): Don't use bfd_preserve_save/restore.
	* elfcore.h (elf_core_file_p): Likewise.
	* mach-o.c (bfd_mach_o_header_p): Likewise.
	* pef.c (bfd_pef_object_p, bfd_pef_xlib_object_p): Likewise.
	* xsym.c (bfd_sym_object_p): Likewise.
	* mmo.c (mmo_scan): Clear abfd->symcount.
	* opncls.c (_bfd_new_bfd): Use a smaller section hash table.
	* section.c (bfd_section_list_clear): Clear section_htab.count.
	* bfd-in2.h: Regenerate.
2013-01-26 02:08:01 +00:00
Alan Modra
05c7f19361 daily update 2013-01-25 23:00:05 +00:00
Nick Clifton
d79dcc73ac * elf32-h8300.c (elf32_h8_relax_section): When checking for a
second reloc, make sure that the reloc potentially exists first.
2013-01-25 14:22:10 +00:00
Alan Modra
3623d4240a daily update 2013-01-24 23:00:04 +00:00
Nick Clifton
78c8d46ca4 Add support for V850E3V5 architecture 2013-01-24 11:14:05 +00:00
Alan Modra
df5263dc7b daily update 2013-01-23 23:00:08 +00:00
Nick Clifton
1a18f0aeb1 * elf32-metag.c: Error on HIADDR16/LOADDR16 in shared link. 2013-01-23 12:41:32 +00:00
Alan Modra
f65a9e5395 * config.bfd (x86_64-*-rdos*): Remove targ_selvecs. 2013-01-23 10:29:42 +00:00
Alan Modra
e4d8164c7a daily update 2013-01-22 23:00:05 +00:00
Alan Modra
03d72d1e9b daily update 2013-01-21 23:00:04 +00:00
Alan Modra
c16b7819b1 daily update 2013-01-20 23:00:07 +00:00
Alan Modra
73c75e1838 daily update 2013-01-19 23:00:04 +00:00
Alan Modra
8c9ae9d3f7 daily update 2013-01-18 23:00:05 +00:00
H.J. Lu
3bea1fcb8b Resolve size relocation against non-zero TLS symbol
bfd/

	* elf32-i386.c (elf_i386_allocate_dynrelocs): Clear pc_count for
	non-zero TLS symbol.
	(elf_i386_relocate_section): Resolve size relocation against
	non-zero TLS symbol.
	* elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Clear pc_count
	for non-zero TLS symbol.
	(elf_x86_64_relocate_section): Resolve size relocation against
	non-zero TLS symbol.

ld/testsuite/

	* ld-size/size-10.rd: Updated.
	* ld-size/size-8.rd: Likewise.
	* ld-size/size32-2-i386.d: Likewise.
	* ld-size/size32-2-x32.d: Likewise.
	* ld-size/size32-2-x86-64.d: Likewise.
	* ld-size/size64-2-x32.d: Likewise.
	* ld-size/size64-2-x86-64.d: Likewise.
2013-01-18 22:50:30 +00:00
Mike Frysinger
b1b00fcc61 ld: change --enable-new-dtags to only generate new dtags
The "new" dtags options have been around for 14+ years, so there
shouldn't be a need to generate both new & old tags anymore.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-01-18 17:43:58 +00:00
H.J. Lu
06a6a421f2 Count size relocation as PC-relative relocation
bfd/

	* elf32-i386.c (elf_i386_check_relocs): Count size relocation as
	PC-relative relocation.
	* elf64-x86-64.c (elf_x86_64_check_relocs): Count size relocation
	as PC-relative relocation.

ld/testsuite/

	* ld-size/size32-3-i386.d: New file.
	* ld-size/size32-3-x32.d: Likewise.
	* ld-size/size32-3-x86-64.d: Likewise.
	* ld-size/size32-3.s: Likewise.
2013-01-17 23:36:10 +00:00
Alan Modra
deef9214a4 daily update 2013-01-17 23:00:06 +00:00
Alan Modra
79f41398d3 daily update 2013-01-16 23:00:04 +00:00
H.J. Lu
6a3e1baeae Update x86 size relocation check
* elf32-i386.c (elf_i386_check_relocs): Update R_386_SIZE32
	check.
	(elf_i386_relocate_section): Don't check TLS for R_386_SIZE32.

	* elf64-x86-64.c (elf_x86_64_check_relocs): Update R_X86_64_SIZE32
	and R_X86_64_SIZE64 check.
	(elf_x86_64_relocate_section): Don't check TLS for R_X86_64_SIZE32
	nor R_X86_64_SIZE64.
2013-01-16 22:41:03 +00:00
H.J. Lu
1788fc08f7 Add x86 size relocation support to bfd
* bfd-in2.h: Regenerated.
	* libbfd.h: Likewise.

	* elf32-i386.c (elf_howto_table): Fill R_386_SIZE32 entry.
	(elf_i386_reloc_type_lookup): Support BFD_RELOC_SIZE32.
	(elf_i386_check_relocs): Handle R_386_SIZE32.
	(elf_i386_gc_sweep_hook): Likewise.
	(elf_i386_relocate_section): Likewise.

	* elf64-x86-64.c (x86_64_elf_howto_table): Fill R_X86_64_SIZE32
	and R_X86_64_SIZE64 entries.
	(x86_64_reloc_map): Add BFD_RELOC_SIZE32 and BFD_RELOC_SIZE64,
	(elf_x86_64_rtype_to_howto): Handle R_X86_64_SIZE32 for x32.
	(elf_x86_64_reloc_name_lookup): Likewise.
	(elf_x86_64_check_relocs): Handle R_X86_64_SIZE32 and
	R_X86_64_SIZE64.
	(elf_x86_64_gc_sweep_hook): Likewise.
	(elf_x86_64_relocate_section): Likewise.

	* reloc.c (bfd_reloc_code_type): Add BFD_RELOC_SIZE32 and
	BFD_RELOC_SIZE64.
2013-01-16 21:34:46 +00:00
Alan Modra
0a19f5610e daily update 2013-01-15 23:00:04 +00:00
H.J. Lu
1e53645179 Define R_X86_64_standard with R_X86_64_RELATIVE64
* elf64-x86-64.c (R_X86_64_standard): Replace R_X86_64_IRELATIVE
	with R_X86_64_RELATIVE64.
2013-01-15 17:30:49 +00:00
Nick Clifton
77bf820f91 Fix spelling typo. 2013-01-15 08:35:39 +00:00
Alan Modra
e245874365 bfd/
* elf64-ppc.c (ppc64_elf_size_stubs): Default shared libs to
	plt-thread-safe.
gold/
	* powerpc.cc (Target_powerpc::do_relax): Default shared libs to
	plt-thread-safe.
ld/testsuite/
	* ld-powerpc/tlsso.d: Adjust for plt-thread-safe stubs.
	* ld-powerpc/tlsso.g: Likewise.
	* ld-powerpc/tlsso.r: Likewise.
	* ld-powerpc/tlstocso.d: Likewise.
	* ld-powerpc/tlstocso.g: Likewise.
2013-01-15 06:13:26 +00:00
Alan Modra
c56e69a0ca daily update 2013-01-14 23:00:05 +00:00
Alan Modra
405bf443e5 PR binutils/14813
* bfdio.c (struct bfd_iovec <bclose>): Revert 2012-11-06.
	(memory_bclose): Likewise.  Return 0 on success.
	* cache.c (cache_bclose): Likewise.
	* opncls.c (opncls_bclose, bfd_close): Likewise.
	* vms-lib.c (vms_lib_bclose): Likewise.
	* libbfd.h: Regenerate.
2013-01-14 13:14:08 +00:00
Alan Modra
30be67bc7d daily update 2013-01-13 23:00:05 +00:00
Alan Modra
ee659f1f4b * elf-bfd.h (struct elf_link_hash_entry): Delete dynamic_weak.
Add ref_dynamic_nonweak.
	* elflink.c (_bfd_elf_mark_dynamic_def_weak): Delete.
	(_bfd_elf_merge_symbol): Don't call above function.  Move
	setting of ref_dynamic_nonweak and dynamic_def earlier.  Don't
	clear dynamic_def.
	(elf_link_add_object_symbols): Delete redundant "override" test.
	Don't set dynamic_def here.
	(elf_link_output_extsym): Update.
2013-01-13 12:32:10 +00:00
H.J. Lu
68c4a57ee6 Set bfd errror for normal and TLS symbol access
* elf32-i386.c (elf_i386_check_relocs): Set bfd errror for
	normal and TLS symbol access.
	* elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
2013-01-13 00:30:20 +00:00
Alan Modra
c5f0f53c45 daily update 2013-01-12 23:00:05 +00:00
Alan Modra
8d06c1cf64 daily update 2013-01-11 23:00:06 +00:00
Alan Modra
02be4619f1 * elf-bfd.h (_bfd_elf_strtab_refcount): Declare.
* elf-strtab.c (_bfd_elf_strtab_refcount): New function.
	* elflink.c (elf_add_dt_needed_tag): Use _bfd_elf_strtab_refcount.
2013-01-11 14:09:59 +00:00
Alan Modra
a4542f1b23 PR ld/12549
* elf-bfd.h (_bfd_elf_strtab_clear_refs): Declare.
	(_bfd_elf_strtab_clear_all_refs): Define.
	* elf-strtab.c (_bfd_elf_strtab_clear_refs): New function.
	(_bfd_elf_strtab_clear_all_refs): Delete.
	* elflink.c (elf_link_add_object_symbols): Clear out added
	strtab refs.  Correct handling of warning common symbols.
2013-01-11 13:55:02 +00:00
Alan Modra
ea072fe700 daily update 2013-01-10 23:00:05 +00:00
H.J. Lu
68ffbac672 Remove trailing white spaces in bfd
* aout0.c: Remove trailing white spaces.
	* archive.c: Likewise.
	* archures.c: Likewise.
	* bfd-in.h: Likewise.
	* bfd-in2.h: Likewise.
	* coff-alpha.c: Likewise.
	* coff-i860.c: Likewise.
	* coff-mips.c: Likewise.
	* coff-ppc.c: Likewise.
	* coff-tic80.c: Likewise.
	* coff-x86_64.c: Likewise.
	* coff-z80.c: Likewise.
	* coffcode.h: Likewise.
	* coffgen.c: Likewise.
	* cofflink.c: Likewise.
	* compress.c: Likewise.
	* corefile.c: Likewise.
	* cpu-arm.c: Likewise.
	* cpu-avr.c: Likewise.
	* cpu-bfin.c: Likewise.
	* cpu-cr16.c: Likewise.
	* cpu-cr16c.c: Likewise.
	* cpu-crx.c: Likewise.
	* cpu-h8300.c: Likewise.
	* cpu-i386.c: Likewise.
	* cpu-lm32.c: Likewise.
	* cpu-m68k.c: Likewise.
	* cpu-moxie.c: Likewise.
	* cpu-msp430.c: Likewise.
	* cpu-sh.c: Likewise.
	* cpu-xc16x.c: Likewise.
	* dwarf2.c: Likewise.
	* ecofflink.c: Likewise.
	* ecoffswap.h: Likewise.
	* elf-ifunc.c: Likewise.
	* elf-m10300.c: Likewise.
	* elf-vxworks.c: Likewise.
	* elf32-avr.c: Likewise.
	* elf32-avr.h: Likewise.
	* elf32-cr16.c: Likewise.
	* elf32-cr16c.c: Likewise.
	* elf32-cris.c: Likewise.
	* elf32-crx.c: Likewise.
	* elf32-frv.c: Likewise.
	* elf32-hppa.c: Likewise.
	* elf32-i860.c: Likewise.
	* elf32-ip2k.c: Likewise.
	* elf32-iq2000.c: Likewise.
	* elf32-m32c.c: Likewise.
	* elf32-m68hc1x.c: Likewise.
	* elf32-msp430.c: Likewise.
	* elf32-mt.c: Likewise.
	* elf32-ppc.c: Likewise.
	* elf32-rl78.c: Likewise.
	* elf32-s390.c: Likewise.
	* elf32-score.h: Likewise.
	* elf32-sh-symbian.c: Likewise.
	* elf32-sh.c: Likewise.
	* elf32-spu.c: Likewise.
	* elf32-tic6x.c: Likewise.
	* elf32-v850.c: Likewise.
	* elf32-xc16x.c: Likewise.
	* elf32-xtensa.c: Likewise.
	* elf64-alpha.c: Likewise.
	* elf64-hppa.c: Likewise.
	* elf64-ppc.c: Likewise.
	* elf64-s390.c: Likewise.
	* elfcore.h: Likewise.
	* elflink.c: Likewise.
	* elfxx-mips.c: Likewise.
	* elfxx-sparc.c: Likewise.
	* elfxx-tilegx.c: Likewise.
	* ieee.c: Likewise.
	* libcoff.h: Likewise.
	* libpei.h: Likewise.
	* libxcoff.h: Likewise.
	* linker.c: Likewise.
	* mach-o-i386.c: Likewise.
	* mach-o-target.c: Likewise.
	* mach-o.c: Likewise.
	* mach-o.h: Likewise.
	* mmo.c: Likewise.
	* opncls.c: Likewise.
	* pdp11.c: Likewise.
	* pe-x86_64.c: Likewise.
	* peXXigen.c: Likewise.
	* pef-traceback.h: Likewise.
	* pei-x86_64.c: Likewise.
	* peicode.h: Likewise.
	* plugin.c: Likewise.
	* reloc.c: Likewise.
	* riscix.c: Likewise.
	* section.c: Likewise.
	* som.c: Likewise.
	* syms.c: Likewise.
	* tekhex.c: Likewise.
	* ticoff.h: Likewise.
	* vaxbsd.c: Likewise.
	* xcofflink.c: Likewise.
	* xtensa-isa.c: Likewise.
2013-01-10 20:03:55 +00:00
Nick Clifton
a3c629886c * common.h: Fix case of "Meta".
* metag.h: New file.

	* dis-asm.h (print_insn_metag): New declaration.

	* metag.h: New file.

	* Makefile.am: Add Meta.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* configure.in: Add Meta.
	* disassemble.c: Add Meta support.
	* metag-dis.c: New file.

	* Makefile.am: Add Meta.
	* Makefile.in: Regenerate.
	* archures.c (bfd_mach_metag): New.
	* bfd-in2.h: Regenerate.
	* config.bfd: Add Meta.
	* configure: Regenerate.
	* configure.in: Add Meta.
	* cpu-metag.c: New file.
	* elf-bfd.h: Add Meta.
	* elf32-metag.c: New file.
	* elf32-metag.h: New file.
	* libbfd.h: Regenerate.
	* reloc.c: Add Meta relocations.
	* targets.c: Add Meta.

	* Makefile.am: Add Meta.
	* Makefile.in: Regenerate.
	* config/tc-metag.c: New file.
	* config/tc-metag.h: New file.
	* configure.tgt: Add Meta.
	* doc/Makefile.am: Add Meta.
	* doc/Makefile.in: Regenerate.
	* doc/all.texi: Add Meta.
	* doc/as.texiinfo: Document Meta options.
	* doc/c-metag.texi: New file.

	* gas/metag/labelarithmetic.d: New file.
	* gas/metag/labelarithmetic.s: New file.
	* gas/metag/metacore12.d: New file.
	* gas/metag/metacore12.s: New file.
	* gas/metag/metacore21-invalid.l: New file.
	* gas/metag/metacore21-invalid.s: New file.
	* gas/metag/metacore21.d: New file.
	* gas/metag/metacore21.s: New file.
	* gas/metag/metacore21ext.d: New file.
	* gas/metag/metacore21ext.s: New file.
	* gas/metag/metadsp21-invalid.l: New file.
	* gas/metag/metadsp21-invalid.s: New file.
	* gas/metag/metadsp21.d: New file.
	* gas/metag/metadsp21.s: New file.
	* gas/metag/metadsp21ext.d: New file.
	* gas/metag/metadsp21ext.s: New file.
	* gas/metag/metafpu21.d: New file.
	* gas/metag/metafpu21.s: New file.
	* gas/metag/metafpu21ext.d: New file.
	* gas/metag/metafpu21ext.s: New file.
	* gas/metag/metag.exp: New file.
	* gas/metag/tls.d: New file.
	* gas/metag/tls.s: New file.

	* Makefile.am: Add Meta.
	* Makefile.in: Regenerate.
	* configure.tgt: Add Meta.
	* emulparams/elf32metag.sh: New file.
	* emultempl/metagelf.em: New file.

	* ld-elf/merge.d: Mark Meta as xfail.
	* ld-gc/start.d: Skip this test on Meta.
	* ld-gc/personality.d: Skip this test on Meta.
	* ld-metag/external.s: New file.
	* ld-metag/metag.exp: New file.
	* ld-metag/pcrel.d: New file.
	* ld-metag/pcrel.s: New file.
	* ld-metag/shared.d: New file.
	* ld-metag/shared.r: New file.
	* ld-metag/shared.s: New file.
	* ld-metag/stub.d: New file.
	* ld-metag/stub.s: New file.
	* ld-metag/stub_pic_app.d: New file.
	* ld-metag/stub_pic_app.r: New file.
	* ld-metag/stub_pic_app.s: New file.
	* ld-metag/stub_pic_shared.d: New file.
	* ld-metag/stub_pic_shared.s: New file.
	* ld-metag/stub_shared.d: New file.
	* ld-metag/stub_shared.r: New file.
	* ld-metag/stub_shared.s: New file.

	* binutils/readelf.c: (guess_is_rela): Add EM_METAG.
	(dump_relocations): Add EM_METAG.
	(get_machine_name): Correct case for Meta.
	(is_32bit_abs_reloc): Add support for Meta ADDR32 reloc.
	(is_none_reloc): Add support for Meta NONE reloc.
2013-01-10 09:49:22 +00:00
Alan Modra
d2a6c64b37 daily update 2013-01-09 23:00:06 +00:00
Alan Modra
237e906212 daily update 2013-01-08 23:00:07 +00:00
Yufeng Zhang
652451f8f2 include/elf/
2013-01-08  Yufeng Zhang  <yufeng.zhang@arm.com>

	* common.h (NT_ARM_TLS, NT_ARM_HW_BREAK, NT_ARM_HW_WATCH): New macro
	definitions.

bfd/

2013-01-08  Yufeng Zhang  <yufeng.zhang@arm.com>

	* elf-bfd.h (elfcore_write_aarch_tls): Add prototype.
	(elfcore_write_aarch_hw_break): Likewise.
	(elfcore_write_aarch_hw_watch): Likewise.
	* elf.c (elfcore_grok_aarch_tls): New function.
	(elfcore_grok_aarch_hw_break): Likewise.
	(elfcore_grok_aarch_hw_watch): Likewise.
	(elfcore_grok_note): Call the new functions to handle the
	corresponding notes.
	(elfcore_write_aarch_tls): New function.
	(elfcore_write_aarch_hw_break): Likewise.
	(elfcore_write_aarch_hw_watch): Likewise.
	(elfcore_write_register_note): Call the new functions to handle the
	corresponding pseudo sections.

binutils/

2013-01-08  Yufeng Zhang  <yufeng.zhang@arm.com>

	* readelf.c (get_note_type): Handle NT_ARM_TLS, NT_ARM_HW_BREAK
	and NT_ARM_HW_WATCH.
2013-01-08 18:09:12 +00:00
Alan Modra
897ed40b44 daily update 2013-01-07 23:00:08 +00:00
Tom Tromey
45a466b578 * section.c (_bfd_std_section): Rename from std_section.
(bfd_com_section_ptr, bfd_und_section_ptr, bfd_abs_section_ptr)
        (STD_SECTION): Update.
	* bfd-in2.h: Rebuild.
2013-01-07 17:18:25 +00:00
Nick Clifton
7ca01ed925 * ld.texinfo: Replace @ with @@ when it is part of the text.
Correct ordering of M68HC11 entry.

	* doc/binutils.texi: Fix ordering of top level nodes.
	Replace erroneous uses of @itemx with @item.

	* bfd.texinfo: Replace @ with @@ when it is part of the text.
2013-01-07 12:11:13 +00:00
Alan Modra
8f99fb69dd daily update 2013-01-06 23:00:06 +00:00
Alan Modra
51008af9f1 daily update 2013-01-05 23:00:06 +00:00
Alan Modra
af48455c79 daily update 2013-01-04 23:00:07 +00:00
Nick Clifton
e407c74b5b * archures.c: Add support for MIPS r5900
* bfd-in2.h: Add support for MIPS r5900
	* config.bfd: Add support for Sony Playstation 2
	* cpu-mips.c: Add support for MIPS r5900
	* elfxx-mips.c: Add support for MIPS r5900 (extension of r4000)

	* config/tc-mips.c: Add support for MIPS r5900
	Add M_LQ_AB and M_SQ_AB to support large values for instructions lq and sq.
	* config/tc-mips.c (can_swap_branch_p, get_append_method): Detect some conditional short loops to fix a bug on the r5900 by NOP in the branch delay slot.
	* config/tc-mips.c (M_MUL): Support 3 operands in multu on r5900.
	* config/tc-mips.c (M_TRUNCWS): Support trunc.w.s on r5900 in MIPS ISA I.
	* config/tc-mips.c (s_mipsset): Force 32 bit floating point on r5900.
	* configure.in: Detect CPU type when target string contains r5900 (e.g. mips64r5900el-linux-gnu).

	* config/tc-mips.c (mips_ip): Check parameter range of instructions mfps and mtps on r5900.

	* elf/mips.h: Add MIPS machine variant number for r5900 which is compatible with old Playstation 2 software.
	* opcode/mips.h: Add support for r5900 instructions including lq and sq.

	* configure.tgt: Support ELF files for Sony Playstation 2 (for ps2dev and ps2sdk).
	* emulparams/elf32lr5900n32.sh: Create linker script for Sony Playstation 2 ELF files using MIPS ABI n32.
	* emulparams/elf32lr5900.sh: Create linker script for Sony Playstation 2 ELF files using MIPS ABI o32.
	* Makefile.am: Add linker scripts for Sony Playstation 2 ELF files.

	* opcodes/mips-dis.c: Add names for CP0 registers of r5900.
	* opcodes/mips-opc.c: Add M_SQ_AB and M_LQ_AB to support larger range for instructions sq and lq.

	* opcodes/mips-opc.c: Add support for MIPS r5900 CPU.
	Add support for 128 bit MMI (Multimedia Instructions).
	Add support for EE instructions (Emotion Engine).
	Disable unsupported floating point instructions (64 bit and undefined compare operations).
	Enable instructions of MIPS ISA IV which are supported by r5900.
	Disable 64 bit co processor instructions.
	Disable 64 bit multiplication and division instructions.
	Disable instructions for co-processor 2 and 3, because these are not supported (preparation for later VU0 support (Vector Unit)).
	Disable cvt.w.s because this behaves like trunc.w.s and the correct execution can't be ensured on r5900.
	Add trunc.w.s using the opcode encoding of cvt.w.s on r5900. This will confuse less developers and compilers.
2013-01-04 17:22:53 +00:00
Alan Modra
897f9e3fad daily update 2013-01-03 23:00:05 +00:00
Nick Clifton
9b239e0e1f * elflink.c (get_value): Prevent the use of an undefined shift
operation.  Add sanity checks.
2013-01-03 15:47:46 +00:00
Alan Modra
461f3ab781 daily update 2013-01-02 23:00:06 +00:00
Nick Clifton
bab4becb12 opcodes/ChangeLog
* cr16-dis.c (match_opcode,make_instruction: Remove static declaration.
	(dwordU,wordU): Moved typedefs to opcode/cr16.h
	(cr16_words,cr16_allWords,cr16_currInsn): Added prefix 'cr16_'

bfd/Changelog
	* config.bfd (cr16*-*-uclinux*): New target support.

include/opcode/ChangeLog
	* cr16.h (dwordU,wordU): Moved typedefs from cr16-dis.c
	(make_instruction,match_opcode): Added function prototypes.
	(cr16_words,cr16_allWords,cr16_currInsn): Declare as extern.
2013-01-02 13:13:36 +00:00
Alan Modra
4bc2b8b71d daily update 2013-01-01 23:00:05 +00:00
Alan Modra
b861b889bd daily update 2012-12-31 23:00:05 +00:00
Alan Modra
4ac4775446 daily update 2012-12-30 23:00:05 +00:00
Alan Modra
d9929638ce daily update 2012-12-29 23:00:06 +00:00
Alan Modra
4ab7dc04b7 daily update 2012-12-28 23:00:06 +00:00
Alan Modra
879c6bba6a daily update 2012-12-27 23:00:04 +00:00
Alan Modra
ac89cf5f88 daily update 2012-12-26 23:00:05 +00:00
Alan Modra
057fa683cd daily update 2012-12-25 23:00:06 +00:00
Alan Modra
0e06cf6e68 daily update 2012-12-24 23:00:05 +00:00
Mike Frysinger
884f2a8d06 bfd: also enable x86_64pei_vec for 64bit i386-linux targets
We enable x86_64pei_vec for x86_64-linux targets, so we should list this
in the 64bit i386-linux vec section.  This is useful for when we want to
build 64bit EFI code on an i386 system.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-12-24 02:47:51 +00:00
Alan Modra
25ff34673a daily update 2012-12-23 23:00:04 +00:00
Alan Modra
e74738c35e daily update 2012-12-22 23:00:05 +00:00
Alan Modra
ddd2e71547 daily update 2012-12-21 23:00:06 +00:00
H.J. Lu
9911c0fc43 Check R_X86_64_standard for unrecognized relocation
* elf64-x86-64.c (elf_x86_64_relocate_section): Check
	R_X86_64_standard instead of R_X86_64_max for unrecognized
	relocation.
2012-12-21 20:54:59 +00:00
H.J. Lu
a5479e5ff4 Properly adjust h->plt.refcount
bfd/

	PR ld/14980
	* elf32-i386.c (elf_i386_adjust_dynamic_symbol): Properly
	adjust h->plt.refcount.
	* elf64-x86-64.c (elf_x86_64_adjust_dynamic_symbol): Likewise.

ld/testsuite/

	PR ld/14980
	* ld-ifunc/ifunc-14c.s: New file.
	* ld-ifunc/ifunc-14e-i386.d: Likewise.
	* ld-ifunc/ifunc-14e-x86-64.d: Likewise.
	* ld-ifunc/ifunc-14f-i386.d: Likewise.
	* ld-ifunc/ifunc-14f-x86-64.d: Likewise.
2012-12-21 18:15:22 +00:00
Alan Modra
1a5f1c8701 daily update 2012-12-20 23:00:05 +00:00
Alan Modra
b83a921078 daily update 2012-12-19 23:00:04 +00:00
H.J. Lu
c3b0209786 Fix indentation in the last checkin 2012-12-19 19:50:40 +00:00
H.J. Lu
59d6ffb2c9 Fix and use elf_append_rel
* elf32-i386.c (elf_i386_relocate_section): Replace
	bfd_elf32_swap_reloc_out with elf_append_rel.
	(elf_i386_finish_dynamic_symbol): Likewise.

	* elflink.c (elf_append_rel): Call swap_reloc_out instead of
	swap_reloca_out.
2012-12-19 19:45:43 +00:00
H.J. Lu
13ca314985 Reindent elf_i386_finish_dynamic_symbol
* elf32-i386.c (elf_i386_finish_dynamic_symbol): Reindent.
2012-12-19 19:41:18 +00:00
Alan Modra
af1fd9e052 daily update 2012-12-18 23:00:04 +00:00
Michael Eager
886e427f80 PR ld/14736
bfd:
	* elf32-microblaze.c (calc_fixup): Add end range.
gas/testsuite:
	* gas/microblaze/relax_size.exp: New file - test object size after linker
	relaxation
	* gas/microblaze/relax_size.s: Likewise
	* gas/microblaze/relax_size.elf: Likewise
	* gas/microblaze/relax_size2.s: Likewise
	* gas/microblaze/relax_size2.elf: Likewise
2012-12-18 16:01:02 +00:00
Alan Modra
15bc576af1 * elf.c (swap_out_syms): Set shndx to SHN_ABS when not one of
the special MAP_* values.
2012-12-18 13:25:46 +00:00
Alan Modra
614b686180 daily update 2012-12-17 23:00:08 +00:00
Roland McGrath
adbcc655b4 bfd/
* elf32-arm.c (elf32_arm_size_stubs): Skip input BFDs that are
	not ARM ELF.
2012-12-17 19:13:07 +00:00
Nick Clifton
5bf135a788 Add copyright notices 2012-12-17 16:56:12 +00:00
H.J. Lu
ad1e85de41 Don't check IFUNC relocations in elf_*_check_relocs
* elf32-i386.c (elf_i386_check_relocs): Don't check IFUNC
	relocations here.
	* elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
2012-12-16 23:01:13 +00:00
Alan Modra
b6eb2f8639 daily update 2012-12-16 23:00:07 +00:00
H.J. Lu
73bcf23385 Also check local IFUNC references
bfd/

	PR ld/14968
	* elf32-i386.c (elf_i386_adjust_dynamic_symbol): Also check
	local IFUNC references.
	* elf64-x86-64.c (elf_x86_64_adjust_dynamic_symbol): Likewise.

ld/testsuite/

	PR ld/14968
	* ld-ifunc/ifunc-18a-i386.d: New file.
	* ld-ifunc/ifunc-18a-x86-64.d: Likewise.
	* ld-ifunc/ifunc-18a.s: Likewise.
	* ld-ifunc/ifunc-18b-i386.d: Likewise.
	* ld-ifunc/ifunc-18b-x86-64.d: Likewise.
	* ld-ifunc/ifunc-18b.s: Likewise.
	* ld-ifunc/ifunc-19a-i386.d: Likewise.
	* ld-ifunc/ifunc-19a-x86-64.d: Likewise.
	* ld-ifunc/ifunc-19a.s: Likewise.
	* ld-ifunc/ifunc-19b-i386.d: Likewise.
	* ld-ifunc/ifunc-19b-x86-64.d: Likewise.
	* ld-ifunc/ifunc-19b.s: Likewise.
2012-12-16 20:31:08 +00:00
Alan Modra
987acc137d daily update 2012-12-15 23:00:05 +00:00
Alan Modra
774094928e daily update 2012-12-14 23:00:05 +00:00
Tom Tromey
451b7c33cb gdb
* NEWS: Mention "info proc" and core files.
        * corelow.c (core_info_proc): New function.
        (init_core_ops): Set to_info_proc.
        * gdbarch.c, gdbarch.h: Rebuild.
        * gdbarch.sh (core_info_proc): New method.
        * infcmd.c (info_proc_cmd_1): Invoke target_info_proc first.
        * linux-tdep.c (linux_core_info_proc_mappings)
        (linux_core_info_proc): New functions.
        (linux_find_memory_region_ftype): New typedef.
        (linux_find_memory_regions_full): New function, from
        linux_find_memory_regions.
        (struct linux_find_memory_regions_data): New.
        (linux_find_memory_regions_thunk): New function.
        (linux_find_memory_regions): Rewrite.
        (struct linux_make_mappings_data): New.
        (linux_make_mappings_callback)
        (linux_make_mappings_corefile_notes): New functions.
        (linux_make_corefile_notes): Call linux_make_mappings_corefile_notes.
        (linux_init_abi): Call set_gdbarch_core_info_proc.
        * target.c (target_info_proc): Return 'int'.
        * target.h (target_info_proc): Update.
gdb/doc
        * gdb.texinfo (SVR4 Process Information): Mention core files.
gdb/testsuite
        * gdb.base/info-proc.exp: Add core file tests.
bfd
        * elf.c (elfcore_grok_note) <NT_FILE>: New case.
2012-12-14 15:30:38 +00:00
Alan Modra
62ea864c39 daily update 2012-12-14 00:36:48 +00:00
H.J. Lu
5ca5bb3545 Check local IFUNC calls
bfd/

2012-12-13  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/14956
	* elf32-i386.c (elf_i386_adjust_dynamic_symbol): Check local
	IFUNC calls.
	* elf64-x86-64.c (elf_x86_64_adjust_dynamic_symbol): Likewise.

ld/testsuite/

2012-12-13  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/14956
	* ld-ifunc/ifunc-14-i386.d: Renamed to ...
	* ld-ifunc/ifunc-14a-i386.d: This.

	* ld-ifunc/ifunc-14-x86-64.d: Renamed to ...
	* ld-ifunc/ifunc-14a-x86-64.d: This.

	* ld-ifunc/ifunc-14b-i386.d: New file.
	* ld-ifunc/ifunc-14b-x86-64.d: Likewise.
	* ld-ifunc/ifunc-14c-i386.d: Likewise.
	* ld-ifunc/ifunc-14c-x86-64.d: Likewise.
	* ld-ifunc/ifunc-14d-i386.d: Likewise.
	* ld-ifunc/ifunc-14d-x86-64.d: Likewise.
2012-12-13 21:07:16 +00:00
Alan Modra
7b40ae6136 daily update 2012-12-12 23:00:04 +00:00
Alan Modra
7fdee5dead daily update 2012-12-11 23:00:04 +00:00
Michael Eager
69b06cc85f Microblaze: Add support for handling TLS symbol suffixes and generating
TLS relocs for General Dynamic and Local Dynamic models.

bfd/Changelog
          * reloc.c: Add new relocations
          * bfd-in2.h: Regenerated
          * libbfd.h: Regenerated
          * elf32-microblaze.c (microblaze_elf_howto_raw):
            Add TLS relocations
            (microblaze_elf_reloc_type_lookup): Likewise
            (elf32_mb_link_hash_entry): define TLS reference types
            (elf32_mb_link_hash_table): add TLS Local dynamic GOT entry
            #define has_tls_reloc if section has TLS relocs
            (dtprel_base), (check_unique_offset): New
            (microblaze_elf_output_dynamic_relocation): output simple
            dynamic relocation into SRELOC.
            (microblaze_elf_relocate_section): Accommodate TLS relocations.
            (microblaze_elf_check_relocs): Likewise
            (update_local_sym_info): New
            (microblaze_elf_copy_indirect_symbol): Add tls_mask.
            (allocate_dynrelocs): Handle TLS symbol
            (microblaze_elf_size_dynamic_sections): Set size and offset
            (microblaze_elf_finish_dynamic_symbol): Use
             microblaze_elf_output_dynamic_relocation

gas/Changelog
          * config/tc-microblaze.c: Define TLS offsets
            (md_relax_table): Add TLS offsets
            (imm_types), (match_imm), (get_imm_otype): New to support
            TLS offsets.
            (tc_microblaze_fix_adjustable): Add TLS relocs.
            (md_convert_frag): Support TLS offsets.
            (md_apply_fix), (md_estimate_size_before_relax), (tc_gen_reloc):
            Add TLS relocs

include/Changelog
          * elf/microblaze.h: Add TLS relocs to START_RELOC_NUMBERS
2012-12-11 16:56:53 +00:00
Alan Modra
6eda113996 daily update 2012-12-10 23:00:05 +00:00
Nick Clifton
752937aa0c Add copyright notices 2012-12-10 12:48:03 +00:00
Alan Modra
f9a52e371c daily update 2012-12-09 23:00:04 +00:00
H.J. Lu
35f0d39652 Properly check indicies bigger than 4Gb
PR binutils/14933
	* archive.c (bsd_write_armap): Properly check indicies bigger
	than 4Gb.
2012-12-09 18:01:39 +00:00
Alan Modra
afa58f649b daily update 2012-12-08 23:00:05 +00:00
Alan Modra
7a684288ee daily update 2012-12-07 23:00:04 +00:00
Alan Modra
d2bcb0d1aa PR ld/14926
* elf.c (_bfd_elf_map_sections_to_segments): Include elf header
	size when determining phdr_in_segment.
2012-12-07 04:58:36 +00:00
Alan Modra
2a744ebb76 daily update 2012-12-06 23:00:05 +00:00
Yufeng Zhang
cd6fa7fd88 bfd/
2012-12-06  Yufeng Zhang  <yufeng.zhang@arm.com>

	* elf64-aarch64.c (elf64_aarch64_grok_prstatus): New function.
	(elf_backend_grok_prstatus): Define to elf64_aarch64_grok_prstatus.
2012-12-06 15:56:38 +00:00
Alan Modra
625ef6dc55 * elfxx-mips.c (allocate_dynrelocs): Correct test for symbol
defined in a regular file to include common symbols.
2012-12-06 00:09:13 +00:00
Alan Modra
ad288036a7 daily update 2012-12-05 23:00:05 +00:00
Alan Modra
79056107ed Add x86_64-*-rdos. 2012-12-05 05:48:19 +00:00
Alan Modra
68d6295870 * elf64-ppc.c (build_plt_stub): Fix off by one error in branch
to glink.
2012-12-05 04:58:51 +00:00
Alan Modra
bfc07f4d1a daily update 2012-12-04 23:00:05 +00:00
Alan Modra
db53afde99 daily update 2012-12-03 23:00:05 +00:00
Maciej W. Rozycki
e6aea42dfa PR ld/10629
* elfxx-mips.c (mips_elf_link_hash_table): Update comment for
	use_rld_obj_head.
	(_bfd_mips_elf_create_dynamic_sections): Always create a
	.rld_map section if no __rld_obj_head symbol has been seen.
2012-12-03 16:37:51 +00:00
Maciej W. Rozycki
dd2bed3aca * elf32-mips.c (mips_elf32_object_p): Return right away when the
ABI is not compatible.
	* elfn32-mips.c (mips_elf_n32_object_p): Likewise.
2012-12-03 16:33:13 +00:00
Maciej W. Rozycki
a412bee57b * elf32-tilepro.c (tilepro_elf_mkobject): New function.
(bfd_elf32_mkobject): New macro.
2012-12-03 16:30:03 +00:00
Maciej W. Rozycki
6ae68ba390 bfd/
* elf32-mips.c (bfd_elf32_mkobject): New macro.
	* elf64-mips.c (bfd_elf64_mkobject): Likewise.
	* elfn32-mips.c (bfd_elf32_mkobject): Likewise.
	* elfxx-mips.h (_bfd_mips_elf_mkobject): New prototype.
	* elfxx-mips.c (mips_elf_obj_tdata): New struct.
	(mips_elf_tdata): New macro.
	(_bfd_mips_elf_mkobject): New function.
	(mips_elf_merge_obj_attributes): Report the originating input BFD
	on attribute conflicts.

	ld/testsuite/
	* ld-mips-elf/attr-gnu-4-12.d: Update the warning message.
	* ld-mips-elf/attr-gnu-4-13.d: Likewise.
	* ld-mips-elf/attr-gnu-4-14.d: Likewise.
	* ld-mips-elf/attr-gnu-4-15.d: Likewise.
	* ld-mips-elf/attr-gnu-4-21.d: Likewise.
	* ld-mips-elf/attr-gnu-4-23.d: Likewise.
	* ld-mips-elf/attr-gnu-4-24.d: Likewise.
	* ld-mips-elf/attr-gnu-4-25.d: Likewise.
	* ld-mips-elf/attr-gnu-4-31.d: Likewise.
	* ld-mips-elf/attr-gnu-4-32.d: Likewise.
	* ld-mips-elf/attr-gnu-4-34.d: Likewise.
	* ld-mips-elf/attr-gnu-4-35.d: Likewise.
	* ld-mips-elf/attr-gnu-4-41.d: Likewise.
	* ld-mips-elf/attr-gnu-4-42.d: Likewise.
	* ld-mips-elf/attr-gnu-4-43.d: Likewise.
	* ld-mips-elf/attr-gnu-4-45.d: Likewise.
	* ld-mips-elf/attr-gnu-4-51.d: Likewise.
2012-12-03 16:17:48 +00:00
Maciej W. Rozycki
20696deded bfd/
* elfxx-mips.c (mips_elf_merge_obj_attributes): Correct messages
	for the -mdouble-float and -msingle-float cases throughout; make
	all the messages report the output file consistently on the
	left-hand side.

	ld/testsuite/
	* ld-mips-elf/attr-gnu-4-12.d: Adjust the warning expected
	according to changes to BFD.
	* ld-mips-elf/attr-gnu-4-14.d: Likewise.
	* ld-mips-elf/attr-gnu-4-31.d: Likewise.
	* ld-mips-elf/attr-gnu-4-32.d: Likewise.
	* ld-mips-elf/attr-gnu-4-34.d: Likewise.
	* ld-mips-elf/attr-gnu-4-41.d: Likewise.
2012-12-03 15:57:44 +00:00
Alan Modra
108170905a daily update 2012-12-02 23:00:04 +00:00
Alan Modra
dae66d1066 daily update 2012-12-01 23:00:05 +00:00
Alan Modra
d7893ac43a daily update 2012-11-30 23:00:03 +00:00