aboutsummaryrefslogtreecommitdiff
path: root/bfd
AgeCommit message (Collapse)AuthorFilesLines
2007-11-14daily updateAlan Modra1-1/+1
2007-11-14bfd/Richard Sandiford2-229/+535
2007-09-18 Richard Sandiford <richard@codesourcery.com> * elfxx-mips.c (mips_got_page_range): New structure. (mips_got_page_entry): Likewise. (mips_got_info): Add page_gotno and got_page_entries fields. (mips_elf_got_per_bfd_arg): Add max_pages field. Delete primary_count and current_count fields. (mips_got_page_entry_hash, mips_got_page_entry_eq): New functions. (mips_elf_pages_for_range, mips_elf_record_got_page_entry): Likewise. (mips_elf_get_got_for_bfd): New function, split out from mips_elf_make_got_per_bfd. Initialize the page_gotno and got_page_entries fields when creating a new GOT structure. (mips_elf_make_got_pages_per_bfd): New function. (mips_elf_merge_got_with): New function, split out from mips_elf_make_got_per_bfd. Merge page entries as well as non-page entries. Use the minimum of max_pages and the sum of the page_gotnos to estimate the number of page entries. (mips_elf_merge_gots): Use the minimum of max_pages and the bfd's page_gotno to estimate the number of page entries. Use the above functions. (mips_elf_multi_got): Add page entries as well as non-page entries to the individual per-bfd GOTs. Initialize got_per_bfd_arg.max_pages. Initialize the page_gotno and got_page_entries fields when creating a new primary GOT. Use the minimum of pages and page_gotno when adding the number of pages entries to local_gotno. (mips_elf_create_got_section): Initialize the page_gotno and got_page_entries fields of the GOT structure. (mips_elf_rel_relocation_p, mips_elf_read_rel_addend) (mips_elf_add_lo16_rel_addend, mips_elf_get_section_contents): New functions, split out from... (_bfd_mips_elf_relocate_section): ...here. (_bfd_mips_elf_check_relocs): Record GOT page entries too. (_bfd_mips_relax_section): Use mips_elf_get_section_contents. (_bfd_mips_elf_always_size_sections): Use the smaller of the loadable_size- and page_gotno-derived estimates. ld/testsuite/ 2007-09-18 Richard Sandiford <richard@codesourcery.com> Joseph Myers <joseph@codesourcery.com> * ld-mips-elf/got-page-1.d, ld-mips-elf/got-page-1.s, * ld-mips-elf/got-page-2.d, ld-mips-elf/got-page-2.s, * ld-mips-elf/got-page-3.d, ld-mips-elf/got-page-3a.s, * ld-mips-elf/got-page-3b.s, ld-mips-elf/got-page-3c.s, * ld-mips-elf/got-page-1.ld: New tests. * ld-mips-elf/mips-elf.exp: Run them. * ld-mips-elf/multi-got-1.d, ld-mips-elf/multi-got-no-shared.d, * ld-mips-elf/tls-hidden2-got.d, ld-mips-elf/tls-hidden2.d, * ld-mips-elf/tls-hidden3.d, ld-mips-elf/tls-hidden3.got, * ld-mips-elf/tls-hidden3.r, ld-mips-elf/tls-hidden4.got, * ld-mips-elf/tls-hidden4.r, ld-mips-elf/tls-multi-got-1.d, * ld-mips-elf/tls-multi-got-1.got, ld-mips-elf/tls-multi-got-1.r, * 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-hidden.got, ld-mips-elf/tlslib-o32-ver.got, * ld-mips-elf/tlslib-o32.d, ld-mips-elf/tlslib-o32.got: Update for GOT allocation changes.
2007-11-14 * elfxx-mips.c (mips_elf_merge_obj_attributes): PreventThiemo Seufer2-0/+7
unwanted fallthroughs in case statement.
2007-11-13daily updateAlan Modra1-1/+1
2007-11-132007-11-13 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu2-2/+17
PR binutils/5307 * peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Don't copy input subsystem if output is different from input.
2007-11-13* config/tc-mn10300.c (mn10300_force_relocation): Force a reloc to be ↵Nick Clifton2-14/+79
generated for alignment fixups. * config/tc-mn10300.h (TC_FORCE_RELOCATION): Call mn10300_force_relocation. * elf-m10300.c (mn10300_elf_final_link_relocate): Prevent the accidental termination of DWARF location list entries. (mn10300_elf_relax_delete_bytes): Stop deletion if an align reloc is encountered that is larger than or not a mutliple of the number of bytes being deleted. When adjusting symbols, any symbols inside the region being deleted must be moved to the end of the region. Move align relocs forward if there is room for them after the deletion of the region.
2007-11-13 PR 5233Alan Modra2-66/+87
* elf.c (rewrite_elf_program_header): Formatting. Add first_matching_lma and first_suggested_lma booleans and use instead of testing matching_lma and suggested_lma for zero.
2007-11-12daily updateAlan Modra1-1/+1
2007-11-122007-11-12 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu2-4/+23
PR binutils/5299 * peicode.h (pe_bfd_object_p): Save and restore previous bfd state when calling coff_object_p.
2007-11-12 * elf.c (_bfd_elf_get_synthetic_symtab): Only bump the symbolAlan Modra2-2/+8
pointer when we have a valid symbol. Init udata.p to NULL.
2007-11-11daily updateAlan Modra1-1/+1
2007-11-10daily updateAlan Modra1-1/+1
2007-11-09daily updateAlan Modra1-1/+1
2007-11-09 * elf-vxworks.c (elf_vxworks_emit_relocs): Don't clobberNathan Sidwell2-36/+46
rel_hash. Move loop inside if test.
2007-11-09 Apply delta accidentally omitted from 2007-11-05 commit.Danny Smith1-14/+0
* pei-i386.c (COFF_SECTION_ALIGNMENT_ENTRIES): Let .data, .text and .bss section use the default.
2007-11-08daily updateAlan Modra1-1/+1
2007-11-08 * elf-vxworks.h (elf_vxworks_add_dynamic_entries): Declare.Nathan Sidwell2-0/+70
(elf_vxworks_finish_dynamic_entry): Declare. * elf-vxworks.c: Include elf/vxworks.h. (elf_vxworks_add_dynamic_entries): New. (elf_vxworks_finish_dynamic_entry): New. * Makefile.am (elf-vxworks.lo): Add dependency. * Makefile.in (elf-vxworks.lo): Add dependency. * elf32-i386.c (elf_i386_size_dynamic_sections, elf_i386_finish_dynamic_sections): Call elf_vxworks_add_dynamic_entries and elf_vxworks_finish_dynamic_entry. * elf32-ppc.c (ppc_elf_size_dynamic_sections, ppc_elf_finish_dynamic_sections): Likewise. * elfxx-sparc.c (_bfd_sparc_elf_size_dynamic_sections, sparc_finish_dyn): Likewise. * elf32-sh.c (sh_elf_size_dynamic_sections, sh_elf_finish_dynamic_sections): Likewise. * elfxx-mips.c (_bfd_mips_elf_size_dynamic_sections, _bfd_mips_elf_finish_dynamic_sections): Likewise. * elf32-arm.c (elf32_arm_size_dynamic_sections, elf32_arm_finish_dynamic_sections): Likewise.
2007-11-08 include/elf/Nathan Sidwell9-3/+63
* vxworks.h: New. bfd/ * elf-vxworks.h (elf_vxworks_add_dynamic_entries): Declare. (elf_vxworks_finish_dynamic_entry): Declare. * elf-vxworks.c: Include elf/vxworks.h. (elf_vxworks_add_dynamic_entries): New. (elf_vxworks_finish_dynamic_entry): New. * Makefile.am (elf-vxworks.lo): Add dependency. * Makefile.in (elf-vxworks.lo): Add dependency. * elf32-i386.c (elf_i386_size_dynamic_sections, elf_i386_finish_dynamic_sections): Call elf_vxworks_add_dynamic_entries and elf_vxworks_finish_dynamic_entry. * elf32-ppc.c (ppc_elf_size_dynamic_sections, ppc_elf_finish_dynamic_sections): Likewise. * elfxx-sparc.c (_bfd_sparc_elf_size_dynamic_sections, sparc_finish_dyn): Likewise. * elf32-sh.c (sh_elf_size_dynamic_sections, sh_elf_finish_dynamic_sections): Likewise. * elfxx-mips.c (_bfd_mips_elf_size_dynamic_sections, _bfd_mips_elf_finish_dynamic_sections): Likewise. * elf32-arm.c (elf32_arm_size_dynamic_sections, elf32_arm_finish_dynamic_sections): Likewise. ld/ * ld-vxworks/tls-2.d: New. * ld-vxworks/tls-2.s: New.
2007-11-07daily updateAlan Modra1-1/+1
2007-11-07* bfd/elfxx-mips.c (_bfd_mips_elf_fake_sections): Force SHF_MIPS_NOSTRIP onNick Clifton2-1/+14
.debug_frame for Irix.
2007-11-06daily updateAlan Modra1-1/+1
2007-11-06bfd/Alan Modra2-394/+445
* elf64-ppc.c (ppc64_elf_check_relocs): Don't refcount tlsld_got here.. (ppc64_elf_gc_sweep_hook): ..or here.. (ppc64_elf_tls_optimize): ..or here. Make two passes through the relocs, ensuring that tls_get_addr calls follow gd and ld relocs. (allocate_dynrelocs): Refcount tlsld_got here. (ppc64_elf_size_dynamic_sections): Allocate local got and call allocate_dynrelocs before allocating tlsld_got. (ppc64_elf_relocate_section): Remove check that a tls_get_addr call follows gd and ld relocs. ld/testsuite/ * ld-powerpc/tlsso.d: Update for changed got alloc order. * ld-powerpc/tlsso.r: Likewise.
2007-11-06bfd/Alan Modra2-236/+264
* elf32-ppc.c (ppc_elf_check_relocs): Don't refcount tlsld_got here.. (ppc_elf_gc_sweep_hook): ..or here.. (ppc_elf_tls_optimize): ..or here. Make two passes through the relocs, ensuring that tls_get_addr calls follow gd and ld relocs. (allocate_dynrelocs): Refcount tlsld_got here. (ppc_elf_size_dynamic_sections): Call allocate_dynrelocs before allocating tlsld_got. (ppc_elf_relocate_section): Remove check that a tls_get_addr call follows gd and ld relocs. ld/testsuite/ * ld-powerpc/tlsso32.d: Update for changed got alloc order.
2007-11-05daily updateAlan Modra1-1/+1
2007-11-05 * merge.c (sec_merge_hash_lookup): Revert last change.Alan Modra2-18/+22
(record_section): Likewise. (_bfd_merge_sections): Likewise. (_bfd_merged_section_offset): Properly handle NULL secinfo. (_bfd_add_merge_section): Allocate extra space for a zero terminator on SEC_STRINGS sections.
2007-11-04includeDanny Smith2-14/+6
* coff/pe.h (COFF_ENCODE_ALIGNMENT) Define. gas * read.c (ALIGN_LIMIT): Rename to ... (TC_ALIGN_LIMIT): Guard against prior definition. * config/tc-i386.h (TC_ALIGN_LIMIT)[TE_PE]: Define. bfd * pe-i386.c (COFF_SECTION_ALIGNMENT_ENTRIES): Let .data, .text and .bss section use the default. * pei-i386.c (COFF_SECTION_ALIGNMENT_ENTRIES): Likewise. ld/testsuite * ld-scripts/align.exp: Enable for PECOFF. * ld-scripts/alignof.exp: Likewise.
2007-11-04daily updateAlan Modra1-1/+1
2007-11-03daily updateAlan Modra1-1/+1
2007-11-02daily updateAlan Modra1-1/+1
2007-11-01daily updateAlan Modra1-1/+1
2007-11-01bfd:Joseph Myers2-5/+33
* merge.c (sec_merge_hash_lookup): Add parameter sec_end. Check for unterminated strings. All callers changed. (record_section): Add parameter abfd. Give error message for unterminated strings. (_bfd_merge_sections): Update call to record_section. (_bfd_write_merged_section, _bfd_merged_section_offset): Handle NULL secinfo from merge failures. ld/testsuite: * ld-elf/merge3.d, ld-elf/merge3.s: New.
2007-10-31daily updateAlan Modra1-1/+1
2007-10-31* elf-m10300.c (mn10300_elf_relax_delete_bytes): Do not look for alignNick Clifton2-17/+25
relocs when there are no relocs attached to the section.
2007-10-31 * elf-bfd.h (bfd_elf_match_symbols_in_sections): Don't declare.Alan Modra3-20/+7
* elflink.c (bfd_elf_match_symbols_in_sections): Make static. Remove section name comparisons.
2007-10-30daily updateAlan Modra1-1/+1
2007-10-30* mn10300.h (R_MN10300_ALIGN): Define.Nick Clifton5-9/+81
* reloc.c (BFD_RELOC_MN10300_ALIGN): Add. * bfd-in2.h: Regenerate. * libbfd.h: Regenerate. * elf-m10300.h: Handle R_MN10300_ALIGN relocs. * mn10300_elf_relax_delete_bytes): Honour R_MN10300_ALIGN relocs. Re-fix off by one error in comparisons. * config/tc-mn10300.c (tc_gen_reloc): Fix test that decides when sym_diff relocs should be generated. (md_apply_fix): Skip R_MN10300_ALIGN relocs. (mn10300_fix_adjustable): Do not adjust R_MN10300_ALIGN relocs. (mn10300_handle_align): New function. Generate R_MN10300_ALIGN relocs to record alignment requests. * config/tc-mn10300.h (TC_FORCE_RELOCATION_SUB_SAME): Also force R_MN10300_ALIGN relocs. (HANDLE_ALIGN): Define. Call mn10300_handle_align. * gas/all/gas.exp: Do not run diff1.s test for mn10300. * ld-mn10300/mn10300.exp: Run new tests. Skip i126256 test if a compiler is not available. * ld-mn10300/i112045-3.s: New test. * ld-mn10300/i112045-3.d: Expected disassembly. * ld-mn10300/i135409.s: Rename to i135409-1.s. * ld-mn10300/i135409.d: Rename to i135409-1.d * ld-mn10300/i135409-2.s: New test. * ld-mn10300/i135409-2.d: Expected symbol table. * ld-mn10300/i36434.d: Adjust expected disassembly.
2007-10-29daily updateAlan Modra1-1/+1
2007-10-28daily updateAlan Modra1-1/+1
2007-10-27daily updateAlan Modra1-1/+1
2007-10-27daily updateAlan Modra1-1/+1
2007-10-26daily updateAlan Modra1-1/+1
2007-10-25 bfd/Pedro Alves3-6/+9
* bfd-in.h (STRING_COMMA_LEN): Don't handle NULL STR case. * bfd-in2.h: Regenerate. ld/ * pe-dll.c (autofilter_symbollist_generic) (autofilter_symbollist_i386, autofilter_liblist) (autofilter_objlist, autofilter_symbolprefixlist) (autofilter_symbolsuffixlist): Don't use STRING_COMMA_LEN with NULL.
2007-10-25 * elf32-ppc.c (ppc_elf_merge_obj_attributes): Add support forDaniel Jacobowitz2-16/+72
Tag_GNU_Power_ABI_Vector. * readelf.c (display_power_gnu_attribute): Add support for Tag_GNU_Power_ABI_Vector. * ppc.h (Tag_GNU_Power_ABI_Vector): New. * ld-powerpc/attr-gnu-8-1.s, ld-powerpc/attr-gnu-8-11.d, ld-powerpc/attr-gnu-8-2.s, ld-powerpc/attr-gnu-8-23.d, ld-powerpc/attr-gnu-8-3.s, ld-powerpc/attr-gnu-8-31.d: New. * ld-powerpc/powerpc.exp: Run new tests.
2007-10-25 * elfxx-mips.c (_bfd_mips_elf_modify_segment_map): Do not addJoseph Myers2-3/+12
PT_NULL header when not linking.
2007-10-25 * elf.c (elfcore_grok_ppc_vmx): New function.Alan Modra3-0/+35
(elfcore_grok_note): Handle NT_PPC_VMX. (elfcore_write_ppc_vmx): New function. * elf-bfd.h (elfcore_write_ppc_vmx): Declare.
2007-10-25daily updateAlan Modra1-1/+1
2007-10-24 * Makefile.am: Run "make dep-am".Alan Modra4-20/+29
* Makefile.in: Regenerate. * po/SRC-POTFILES.in: Regenerate.
2007-10-24daily updateAlan Modra1-1/+1
2007-10-23 * elf64-ppc.c (ppc_build_one_stub): Don't duplicate relocsAlan Modra2-45/+60
emitted for ".brlt" entries. (toc_adjusting_stub_needed): Don't treat ".fixup" specially here.. (ppc64_elf_next_input_section): ..instead do so here.
2007-10-23daily updateAlan Modra1-1/+1