Commit Graph

6772 Commits

Author SHA1 Message Date
Alan Modra 65096a15b4 daily update 2008-01-30 23:00:05 +00:00
Alan Modra f764771d27 daily update 2008-01-29 23:00:05 +00:00
Alan Modra f937e47c8a daily update 2008-01-28 23:00:07 +00:00
Nick Clifton 00b2bfc124 * config.bfd (x86_64-*-solaris2): Add support for this target.
* configure.tgt (x86_64-*-solaris2): Add support for this target.
2008-01-28 16:57:22 +00:00
Alan Modra 47f6dab9a3 Rewrite SPU overlay handling code. Put overlay calls stubs in the
overlays where possible.  Use a faster call stub, or optionally at
	compile time, a more compact stub.  Double size of _ovly_buf_table
	so that low bit of _ovly_table.buf can be used as a "present" bit.
	Reserve an extra _ovly_table entry for index zero.
2008-01-28 05:59:24 +00:00
Alan Modra accb4bb092 daily update 2008-01-27 23:00:05 +00:00
Alan Modra b852b862bc daily update 2008-01-26 23:00:06 +00:00
Alan Modra d03b0571f6 daily update 2008-01-25 23:00:06 +00:00
DJ Delorie c006d697e4 * elf32-m32c.c (_bfd_m32c_elf_eh_frame_address_size): New. 2008-01-25 21:06:11 +00:00
Nick Clifton 6e3d6dc1ed Add mingw I64 support for printing long and long long values 2008-01-25 16:18:41 +00:00
Alan Modra 7300986009 daily update 2008-01-24 23:00:07 +00:00
Alan Modra 20648bad40 daily update 2008-01-23 23:00:06 +00:00
Alan Modra 786d552a8d daily update 2008-01-21 23:00:05 +00:00
Alan Modra fbb3bb987c PR 4453
* format.c (bfd_check_format_matches): Don't accept archives as
	fully matching unless they have a map.
2008-01-21 04:56:47 +00:00
Alan Modra 297d8443d0 * elflink.c (_bfd_elf_link_output_relocs): Correct error return. 2008-01-21 03:53:07 +00:00
Alan Modra 66cd82b52e * ecoff.c (_bfd_ecoff_archive_p): Delete.
* libecoff.h (_bfd_ecoff_archive_p): Delete.
	* coff-alpha.c (ecoffalpha_little_vec): Use bfd_generic_archive_p.
	* coff-mips.c (ecoff_little_vec, ecoff_big_vec): Likewise.
	(ecoff_biglittle_vec): Likewise.
2008-01-21 03:48:10 +00:00
Alan Modra 684b95dfc3 daily update 2008-01-20 23:00:05 +00:00
Alan Modra fe03e20384 daily update 2008-01-19 23:00:05 +00:00
Alan Modra 85f7a9cbe2 PR 5646
* elf64-ppc.c (ppc64_elf_tls_optimize): Ensure htab->tls_get_addr
	non-NULL before dereferencing.
2008-01-19 10:07:25 +00:00
Alan Modra 6c0784b28f daily update 2008-01-18 23:00:05 +00:00
Alan Modra a0b4e30059 daily update 2008-01-17 23:00:05 +00:00
Alan Modra a0e0a074df daily update 2008-01-16 23:00:05 +00:00
Alan Modra 38147fd414 daily update 2008-01-15 23:00:05 +00:00
Alan Modra 74f0fb5065 bfd/
PR 5604
	* elf-bfd.h (struct elf_backend_data): Add gc_keep.  Remove param
	names from others.
	(_bfd_elf_gc_keep): Declare.
	* elfxx-target.h (elf_backend_gc_keep): Define.
	(elfNN_bed): Init new field.
	* elflink.c (_bfd_elf_gc_keep): New function.
	(bfd_elf_gc_sections): Call gc_keep.
	* elf64-ppc.c (elf_backend_gc_keep): Define.
	(struct _ppc64_elf_section_data): Move .opd related fields to
	a struct so they don't occupy the same storage.  Adjust accesses
	throughout file.
	(ppc64_elf_gc_keep): New function, split out from..
	(ppc64_elf_gc_mark_hook): ..here.  Don't call _bfd_elf_gc_mark
	to mark .opd section, just set gc_mark.
	(ppc64_elf_edit_opd): Remove no_opd_opt parm.  Don't set opd->adjust
	unless we are changing .opd.  Test non-NULL opd->adjust at all
	accesses throughout file.
	* elf64-ppc.h (ppc64_elf_edit_opd): Update prototype.
ld/
	PR 5604
	* ldlang.c (lang_gc_sections): Move code to set SEC_KEEP on entry
	syms to _bfd_elf_gc_keep.
	* emultempl/ppc64elf.em (ppc_before_allocation): Don't call
	ppc64_elf_edit_opd if no_opd_opt.
2008-01-15 07:25:49 +00:00
Alan Modra 787daa7a0b * bfd-in.h (BFD_HOST_LONG_LONG): Delete.
* bfd-in2.h: Regenerate.
2008-01-15 00:54:22 +00:00
Alan Modra 77c0084bcb daily update 2008-01-14 23:00:05 +00:00
Alan Modra 5aad2f08b7 daily update 2008-01-13 23:00:05 +00:00
Alan Modra e3822b2881 daily update 2008-01-12 23:00:05 +00:00
Alan Modra a77a294fd8 daily update 2008-01-11 23:00:10 +00:00
Tristan Gingold 7dda2462a7 2008-01-11 Tristan Gingold <gingold@adacore.com>
Eric Botcazou  <ebotcazou@adacore.com>

	* elf32-ppc.c (ppc_elf_gc_sweep_hook): Exit early if generating a
	relocatable.
	* elf32-arm.c (elf32_arm_gc_sweep_hook): Likewise.
	* elf32-cris.c (cris_elf_gc_sweep_hook): Likewise.
	* elf32-hppa.c (elf32_hppa_gc_sweep_hook): Likewise.
	* elf32-i386.c (elf_i386_gc_sweep_hook): Likewise.
	* elf32-m32r.c (m32r_elf_gc_sweep_hook): Likewise.
	* elf32-m68k.c (elf_m68k_gc_sweep_hook): Likewise.
	* elf32-s390.c (elf_s390_gc_sweep_hook): Likewise.
	* elf32-sh.c (sh_elf_gc_sweep_hook): Likewise.
	* elf32-vax.c (elf_vax_gc_sweep_hook): Likewise.
	* elf32-xtensa.c (elf_xtensa_gc_sweep_hook): Likewise.
	* elf64-x86-64.c (elf64_x86_64_gc_sweep_hook): Likewise.
	* elf64-s390.c (elf_s390_gc_sweep_hook): Likewise.
	* elf64-ppc.c (ppc64_elf_gc_sweep_hook): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_gc_sweep_hook): Likewise.
	* elfxx-sparc.c (_bfd_sparc_elf_gc_sweep_hook): Likewise.
	* elflink.c (bfd_elf_gc_sections): Do not punt on relocatable output
	or executable output with relocations.
2008-01-11 09:07:04 +00:00
Alan Modra cccbf4e4bd daily update 2008-01-10 23:00:05 +00:00
Alan Modra 0ab09d46b6 daily update 2008-01-09 23:00:05 +00:00
Nick Clifton d2e2e64908 PR gas/5552
* elf32-fr30.c (fr30_elf_howto_table): Set partial_inplace field to FALSE for all relocs.
2008-01-09 12:29:08 +00:00
Richard Sandiford 184d07da89 bfd/
PR ld/5526
	* elf-bfd.h (eh_cie_fde): Add u.cie.u.full_cie and u.cie.merged
	fields.  Rename u.cie.u.merged to u.cie.u.merged_with.
	(eh_frame_sec_info): Add a cies field.
	(eh_frame_hdr_info): Add a merge_cies field.
	* elf-eh-frame.c (cie): Add a reloc_index member to the personality
	union.
	(_bfd_elf_begin_eh_frame_parsing): Set hdr_info->merge_cies instead
	of hdr_info->cies.
	(_bfd_elf_parse_eh_frame): Remove tmp_cie.  Ccreate an array of
	cie structures in all cases and use it instead of extended_cies.
	If merging, store the cie array in sec_info->cies and point each
	CIE's eh_fde_cie at the associated element.  Do not try to
	calculate the value of the personality routine here; record the
	offset of the relocation instead.  Do not merge CIEs here.
	(_bfd_elf_end_eh_frame_parsing): Do not free hdr_info->cies here...
	(_bfd_elf_discard_section_eh_frame_hdr): ...do it here instead.
	(_bfd_elf_gc_mark_fdes): Mark the original (unmerged) CIE.
	(find_merged_cie): New function.
	(_bfd_elf_gc_mark_fdes): Use it.  Free sec_info->cies.

ld/testsuite/
	PR ld/5526
	* ld-elf/eh6.s, ld-elf/eh6.d: New test.
2008-01-09 09:36:11 +00:00
Alan Modra e0d99a80eb daily update 2008-01-08 23:00:06 +00:00
Alan Modra 6945b3e87b daily update 2008-01-07 23:00:05 +00:00
Nick Clifton 780b23606d PR binutils/5535
* vms.c (vms_close_and_cleanup): Check for the presence of a
   vms_private_data_struct before examining any of its fields.
2008-01-07 17:53:03 +00:00
H.J. Lu ace7938838 bfd/
2008-01-07  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/5522
	* elflink.c (elf_link_input_bfd): Don't write out a section if
	its output section is marked with SEC_NEVER_LOAD.

ld/testsuite/

2008-01-07  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/5522
	* ld-elf/noload-3.d: New file.
	* ld-elf/noload-3.s: Likewise.
	* ld-elf/noload-3.t: Likewise.
2008-01-07 16:45:35 +00:00
Alan Modra 885e4b3d1f daily update 2008-01-06 23:00:04 +00:00
Alan Modra 8133291eb3 daily update 2008-01-05 23:00:05 +00:00
Alan Modra 28d105a1bc daily update 2008-01-04 23:00:05 +00:00
Alan Modra afc5b1a784 daily update 2008-01-03 23:00:06 +00:00
Alan Modra 2745d86e69 daily update 2008-01-02 23:00:06 +00:00
H.J. Lu 6c7ac64e17 Move 2007 ChangeLog entries to ChangeLog-2007. 2008-01-02 21:41:02 +00:00
Alan Modra f986c652ba daily update 2008-01-01 23:00:06 +00:00
Alan Modra 672cc33200 daily update 2007-12-31 23:00:05 +00:00
H.J. Lu 992824d50e 2007-12-31 H.J. Lu <hongjiu.lu@intel.com>
PR ld/5530
	* elfxx-ia64.c (elfNN_ia64_relocate_section): Call
	_bfd_elf_find_segment_containing_section with output_bfd,
	instead of input_bfd.
2007-12-31 19:23:07 +00:00
Nick Clifton 281153f387 * elf-m10300.c (mn10300_elf_relax_section): Use _bfd_merged_section_offset
to compute the offset of a symbol in a merged section.
2007-12-31 11:29:31 +00:00
Nick Clifton 2ea37f1c66 * elf.c (_bfd_elf_find_segment_containing_section): New function:
Scan the segment map looking for the segment containing a
  specified function.
* elf-bfd.h: Prototype the new function.
* elf-hppa.h (elf_hppa_osec_to_segment): Delete.
  (elf_hppa_record_segment_addrs): Use new function.
* elf32-bfin.c (_bfdfdpic_osec_to_segment): Use new function.
* elf32-frv.c (_frvfdpic_osec_to_segment): Use new function.
* elf32-hppa.c (hppa_record_segment_addr): Use new function.
* elfxx-ia64.c (elfNN_ia64_relocate_section): Use new function.
2007-12-31 11:01:54 +00:00
Alan Modra b198fbe692 daily update 2007-12-30 23:00:05 +00:00
Alan Modra 3f5ccab567 daily update 2007-12-29 23:00:06 +00:00
Dave Anglin d68aa3e6e8 PR binutils/5146
* elf64-hppa.c: Declare alloca when __GNUC__ is defined.
	* som.c: Likewise.
2007-12-29 01:36:40 +00:00
Dave Anglin 7ae8e4e805 * elf-hppa.h (elf_hppa_osec_to_segment): New function.
(elf_hppa_record_segment_addrs): Use elf_hppa_osec_to_segment.
	Remove ATTRIBUTE_UNUSED from abfd argument.
	* elf32-hppa.c (hppa_record_segment_addr): Likewise.
2007-12-28 23:43:45 +00:00
Alan Modra 7833b9b3df daily update 2007-12-28 23:00:05 +00:00
Nick Clifton 4750aaa464 * elf32-hppa.c (hppa_record_segment_addr): Locate the segment
containing the section using the segment map, rather than guessing
  based upon the section's vma and file position.
2007-12-28 14:45:34 +00:00
Alan Modra a47bc319af daily update 2007-12-27 23:00:05 +00:00
Alan Modra 71983bf851 daily update 2007-12-26 23:00:06 +00:00
Alan Modra dd340c05b0 daily update 2007-12-25 23:00:05 +00:00
Alan Modra a23ab006b5 daily update 2007-12-24 23:00:06 +00:00
H.J. Lu 0efc80c807 bfd/
2007-12-24  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/5488
	* elf.c (IS_NOTE): New.
	(IS_COREFILE_NOTE): Use IS_NOTE.
	(IS_SECTION_IN_INPUT_SEGMENT): Use IS_NOTE instead of
	IS_COREFILE_NOTE.

ld/testsuite/

2007-12-24  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/5488
	* ld-elf/note-2.d: New.
	* ld-elf/note-2.s: Likewise.
	* ld-elf/note-2.t: Likewise.
2007-12-24 16:58:23 +00:00
H.J. Lu 147d51c232 2007-12-24 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/5449
	* elf.c (rewrite_elf_program_header): Don't adjust p_paddr if
	p_paddr is set to 0.
	(copy_private_bfd_data): Call rewrite_elf_program_header if
	p_paddr is set to 0.

	* elfcode.h (elf_swap_phdr_out): Set p_paddr to 0 if needed.

	* elfxx-ia64.c (ELF_MAXPAGESIZE): Don't redefine it for HPUX.
2007-12-24 16:55:39 +00:00
Alan Modra ecbe32d016 daily update 2007-12-23 23:00:06 +00:00
Alan Modra 9c1b5f1b84 daily update 2007-12-22 23:00:05 +00:00
Bob Wilson dc96b90a10 * elf32-xtensa.c (relax_section): Update DIFF relocations in the
same way as other relocations.
2007-12-21 23:11:28 +00:00
Alan Modra 2e324ab383 daily update 2007-12-21 23:00:05 +00:00
Alan Modra bef2d42f4e daily update 2007-12-20 23:00:06 +00:00
Alan Modra 7e8909d4c4 daily update 2007-12-19 23:00:05 +00:00
Alan Modra 868b494e1b daily update 2007-12-18 23:00:05 +00:00
Daniel Jacobowitz cb2dde36a0 * section.c (BFD_FAKE_SECTION): Update.
* bfd-in2.h: Regenerate.
2007-12-18 19:48:07 +00:00
Daniel Jacobowitz f1a35370eb * bfd-in2.h: Regenerate. 2007-12-18 19:38:26 +00:00
Alan Modra eda094f09b daily update 2007-12-17 23:00:05 +00:00
Pedro Alves f164edfa5d * config.bfd: Add arm-*-mingw32ce* target. 2007-12-17 01:50:44 +00:00
Alan Modra 86904c2b3a daily update 2007-12-16 23:00:06 +00:00
Alan Modra 5972d0b676 daily update 2007-12-15 23:00:05 +00:00
Richard Sandiford fc802241f3 bfd/
* elf-bfd.h (eh_cie_fde): Replace u.cie.merged with a union of
	a merged field and a sec field.
	(eh_frame_hdr_info): Remove offsets_adjusted.
	* elf-eh-frame.c (_bfd_elf_parse_eh_frame): Update accesses to
	the CIE merged field.
	(_bfd_elf_gc_mark_fdes): Likewise.
	(_bfd_elf_discard_section_eh_frame): Likewise.  Set u.cie.u.sec
	when clearing the removed flag.
	(_bfd_elf_eh_frame_section_offset): Remove offsets_adjusted handling.
	(_bfd_elf_write_section_eh_frame): Likewise.  Apply output_offsets
	where appropriate.
2007-12-15 09:42:02 +00:00
Richard Sandiford 6b2cc1401c bfd/
* elf-bfd.h (eh_cie_fde): Move add_fde_encoding and
	per_encoding_relative to u.cie.  Add commentary.
	* elf-eh-frame.c (cie): Remove make_relative.
	(extra_augmentation_string_bytes): Update use of add_fde_encoding.
	(extra_augmentation_data_bytes): Likewise.  Use an FDE's own
	add_augmentation_size field, rather than referring to the CIE.
	(_bfd_elf_parse_eh_frame): Don't set the struct cie
	make_relative field; set the eh_cie_fde field directly.
	Update setting of add_fde_encoding and per_encoding_relative.
	Copy make_relative and add_augmentation_size from the CIE
	to the FDE.
	(_bfd_elf_discard_section_eh_frame): Use the FDE's own
	make_relative field.
	(_bfd_elf_eh_frame_section_offset): Likewise.
	(_bfd_elf_write_section_eh_frame): Update accesses to
	add_fde_encoding and per_encoding_relative.  Use the FDE's
	own make_relative and add_augmentation_size fields.
2007-12-15 09:41:15 +00:00
Richard Sandiford 9f4b847e23 bfd/
* elf-bfd.h (eh_cie_fde): Remove need_lsda_relative.
	Move make_lsda_relative to u.cie.
	* elf-eh-frame.c (cie): Rename make_lsda_relative to
	can_make_lsda_relative.
	(_bfd_elf_parse_eh_frame): Don't set the old eh_cie_fde
	make_lsda_relative field.  Update after cie renaming.
	Set u.cie.make_lsda_relative if can_make_lsda_relative
	and if we find a relocation against the LSDA.
	(_bfd_elf_discard_section_eh_frame): Copy make_lsda_relative when
	changing a CIE's group representative.
	(_bfd_elf_eh_frame_section_offset): Don't set need_ldsa_relative here.
	(_bfd_elf_write_section_eh_frame): Check u.cie.make_lsda_relative
	rather than need_lsda_relative.
2007-12-15 09:35:58 +00:00
Richard Sandiford 9d0a14d3f3 bfd/
* elf-bfd.h (eh_cie_fde): Add u.fde.next_for_section and
	u.cie.gc_mark.
	(bfd_elf_section_data): Add fde_list.
	(elf_fde_list): New macro.
	(elf_obj_tdata): Add eh_frame_section.
	(elf_eh_frame_section): New macro.
	(_bfd_elf_gc_mark_reloc): Remove last parameter.
	(_bfd_elf_gc_mark_fdes): Declare.
	* elf-eh-frame.c (_bfd_elf_get_eh_frame_sec_info): Chain the FDEs
	for each input section.
	(mark_entry, _bfd_elf_gc_mark_fdes): New functions.
	* elflink.c (_bfd_elf_gc_mark_reloc): Remove is_eh parameter.
	(_bfd_elf_gc_mark): Update call accordingly.  Mark the relocations
	againts the section's FDEs.  Don't mark the bfd's elf_eh_frame_section.
	(bfd_elf_gc_sections): Parse each input bfd's .eh_frame before
	marking any input sections.  Remove the current EH handling.
	* section.c (bfd_section): Remove gc_mark_from_eh.
	* ecoff.c (bfd_debug_section): Update initializer accordingly.
2007-12-15 09:34:48 +00:00
Richard Sandiford ca92cecbbe bfd/
* elf-bfd.h (eh_cie_fde): Add u.cie.  Document how u.fde.cie_inf
	changes when removed == 0.
	(eh_frame_hdr_info): Add parsed_eh_frames.
	(_bfd_elf_begin_eh_frame_parsing): Declare.
	(_bfd_elf_parse_eh_frame): Declare.
	(_bfd_elf_end_eh_frame_parsing): Declare.
	* elf-eh-frame.c (_bfd_elf_begin_eh_frame_parsing): New function.
	(_bfd_elf_parse_eh_frame): New function, split out from
	_bfd_elf_discard_section_eh_frame.  Make a first pass through the
	buffer to calculate the number of entries and CIEs.  Allocate memory
	for them before the main loop.  Replace current extended cie
	representation with a pair of pointers, one to the local eh_cie_fde
	and one to the full struct cie.  Allocate a separate array of struct
	cies if not merging.  Merge CIEs during the main loop and set up each
	u.cie.merged field.  Point an FDE's cie_inf field directly at the
	local CIE.  Initially assume that all entries should be removed.
	(_bfd_elf_end_eh_frame_parsing): New function.
	(_bfd_elf_discard_section_eh_frame): Assume that the section has
	already been parsed.  Use a separate pass to mark entries that
	need to be kept.  Use the u.cie.merged field to track a CIE's
	group representative.
	* elflink.c (bfd_elf_discard_info): Call _bfd_elf_parse_eh_frame
	before _bfd_elf_discard_section_eh_frame.  Wrap loop with calls to
	_bfd_elf_begin_eh_frame_parsing and _bfd_elf_end_eh_frame_parsing.
2007-12-15 09:33:51 +00:00
Richard Sandiford 155eaaa031 bfd/
* elf-bfd.h (eh_cie_fde): Put cie_inf in a union.  Add a reloc_index
	field.  Use bitfields for fde_encoding, lsda_encoding and lsda_offset.
	* elf-eh-frame.c (extra_augmentation_data_bytes): Adjust cie_inf
	accesses after the above change.
	(_bfd_elf_eh_frame_section_offset): Likewise.
	(_bfd_elf_write_section_eh_frame): Likewise.
	(_bfd_elf_discard_section_eh_frame): Likewise.  Set up reloc_index.
2007-12-15 09:32:38 +00:00
Richard Sandiford 5241d85325 bfd/
* elf-bfd.h (_bfd_elf_gc_mark_rsec, _bfd_elf_gc_mark_reloc): Declare.
	(_bfd_elf_gc_mark): Use elf_gc_mark_hook_fn.
	* elflink.c (init_reloc_cookie, fini_reloc_cookie)
	(init_reloc_cookie_rels, fini_reloc_cookie_rels): New functions,
	split out from...
	(bfd_elf_discard_info): ...here.
	(init_reloc_cookie_for_section): New function.
	(fini_reloc_cookie_for_section): Likewise.
	(_bfd_elf_gc_mark_rsec, _bfd_elf_gc_mark_reloc): New functions,
	split out from...
	(_bfd_elf_gc_mark): ...here.  Use init_reloc_cookie_for_section
	and fini_reloc_cookie_for_section.
2007-12-15 09:31:41 +00:00
Alan Modra 8e1638a887 daily update 2007-12-14 23:00:05 +00:00
Alan Modra d5cbb2b614 daily update 2007-12-13 23:00:06 +00:00
Alan Modra de4298c61c daily update 2007-12-12 23:00:05 +00:00
Bob Wilson c46082c8d5 * elf32-xtensa.c (elf_xtensa_do_reloc): Update self_address along with
address.
        (print_action_list): Fix name for ta_convert_longcall.
2007-12-12 21:11:10 +00:00
Alan Modra c32d85ca53 daily update 2007-12-11 23:00:06 +00:00
Catherine Moore 8424d8f538 * bfd/elf.c (_bfd_elf_copy_private_symbol_data): Don't copy shndx if
the symbol's section is the undefined section.
        * gas/testsuite/gas/elf/symtab.s: New test.
        gas/testsuite/gas/elf/symtab.d: New expected output.
        gas/testsuite/gas/elf/elf.exp: Run the new symbtab test.
2007-12-11 13:13:59 +00:00
Alan Modra 58f0869bfe warning messages should contain "warning:" 2007-12-10 23:44:23 +00:00
Alan Modra f2e5b8ee1d daily update 2007-12-10 23:00:05 +00:00
Alan Modra ba0432a568 daily update 2007-12-09 23:00:06 +00:00
Alan Modra 40ddfb41a6 daily update 2007-12-08 23:00:05 +00:00
Alan Modra 2e53a11d03 daily update 2007-12-07 23:00:05 +00:00
Bob Wilson 1bbb5f219c 2007-12-07 Bob Wilson <bob.wilson@acm.org>
include/elf/
	* xtensa.h (R_XTENSA_32_PCREL): New.

bfd/
	* elf32-xtensa.c (elf_howto_table): Add R_XTENSA_32_PCREL.
	(elf_xtensa_reloc_type_lookup): Handle BFD_RELOC_32_PCREL.
	(elf_xtensa_check_relocs): Use default case for all relocations that
	need nothing done here.
	(elf_xtensa_do_reloc): Compute self_address for all relocation types.
	Handle R_XTENSA_32_PCREL.
	(elf_xtensa_relocate_section): Check for R_XTENSA_32_PCREL for dynamic
	symbols.
	(check_section_ebb_pcrels_fit): Ignore R_XTENSA_32_PCREL relocations.

gas/
	* config/tc-xtensa.c (O_pcrel): Define.
	(suffix_relocs): Add pcrel suffix.
	(md_pseudo_table): Add 4byte and 2byte directives.
	(xtensa_elf_cons): Pass correct pcrel argument to fix_new_exp.
	(xg_assemble_literal): Likewise.  Check for O_pcrel.
	(expression_maybe_register): Reorganize.  Handle BFD_RELOC_32_PCREL.
	(xg_valid_literal_expression): Allow O_pcrel.
	(md_pcrel_from, md_apply_fix): Handle BFD_RELOC_32_PCREL.
	(tc_gen_reloc): Fix punctuation in error message.

gas/testsuite/
	* gas/xtensa/all.exp: Run new pcrel test.
	* gas/xtensa/err-pcrel.s: New.
	* gas/xtensa/pcrel.d: New.
	* gas/xtensa/pcrel.s: New.
	* gas/xtensa/xtensa-err.exp: New.
2007-12-07 22:52:10 +00:00
Alan Modra f4f7091ffe daily update 2007-12-06 23:00:06 +00:00
Alan Modra 6433719fe7 daily update 2007-12-05 23:00:06 +00:00
Alan Modra d688b66ee1 * elf32-spu.c (spu_elf_size_stubs): Do consider branches to
non-function symbols for overlay stubs.
2007-12-05 03:29:20 +00:00
Alan Modra fd4980a3b8 daily update 2007-12-04 23:00:05 +00:00
Bob Wilson c243ad3b81 * elf32-xtensa.c (elf_xtensa_size_dynamic_sections): Create DT_PLTGOT
entry for all dynamic objects.
2007-12-04 22:41:59 +00:00
Alan Modra b8e2249147 * elf32-spu.c (spu_elf_size_stubs): Correct section alignment. 2007-12-04 03:29:43 +00:00
Alan Modra dade8b53ef daily update 2007-12-03 23:00:05 +00:00
Alan Modra f7ad6d7c9b daily update 2007-12-02 23:00:05 +00:00
Alan Modra ddf5dad8e6 daily update 2007-12-01 23:00:05 +00:00
Alan Modra 542162ebce daily update 2007-11-30 23:00:06 +00:00
Richard Sandiford 888cab3722 bfd/
* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Use the
	ELF header to choose between 32-bit and 64-bit relocation structures.
2007-11-30 09:01:35 +00:00
Alan Modra bd80e2618a daily update 2007-11-29 23:00:05 +00:00
Mark Shinwell 350cc38db2 bfd/
* archures.c (bfd_mach_mips_loongson_2e): New.
	(bfd_mach_mips_loongson_2f): New.
	* bfd-in2.h (bfd_mach_mips_loongson_2e): New.
	(bfd_mach_mips_loongson_2f): New.
	* cpu-mips.c: Add I_loongson_2e and I_loongson_2f to
	anonymous enum.
	(arch_info_struct): Add Loongson-2E and Loongson-2F entries.
	* elfxx-mips.c (_bfd_elf_mips_mach): Handle Loongson-2E
	and Loongson-2F flags.
	(mips_set_isa_flags): Likewise.
	(mips_mach_extensions): Add Loongson-2E and Loongson-2F
	entries.

	binutils/
	* readelf.c (get_machine_flags): Handle Loongson-2E and -2F
	flags.

	gas/
	* config/tc-mips.c (mips_cpu_info_table): Add loongson2e
	and loongson2f entries.
	* doc/c-mips.texi: Document -march=loongson{2e,2f} options.

	gas/testsuite/
	* gas/mips/mips.exp: Add loongson-2e and -2f tests.
	* gas/mips/loongson-2e.d: New.
	* gas/mips/loongson-2e.s: New.
	* gas/mips/loongson-2f.d: New.
	* gas/mips/loongson-2f.s: New.

	include/elf/
	* mips.h (E_MIPS_MACH_LS2E): New.
	(E_MIPS_MACH_LS2F): New.

	include/opcode/
	* mips.h (INSN_LOONGSON_2E): New.
	(INSN_LOONGSON_2F): New.
	(CPU_LOONGSON_2E): New.
	(CPU_LOONGSON_2F): New.
	(OPCODE_IS_MEMBER): Update for Loongson-2E and -2F flags.

	opcodes/
	* mips-dis.c (mips_arch_choices): Add Loongson-2E and -2F
	entries.
	* mips-opc.c (IL2E): New.
	(IL2F): New.
	(mips_builtin_opcodes): Add Loongson-2E and -2F instructions.
	Allow movz and movn for Loongson-2E and -2F.  Add movnz entry.
	Move coprocessor encodings to the end of the table.  Allow
	certain MIPS V .ps instructions on the Loongson-2E and -2F.
2007-11-29 12:23:44 +00:00
Nick Clifton 39ce1a6a19 PR ld/5398
* elf32-arm.c (bfd_elf32_arm_process_before_allocation): Do not complain if
  there is no glue bfd, just return.
2007-11-29 08:14:22 +00:00
Alan Modra 828beb2695 daily update 2007-11-28 23:00:05 +00:00
Nick Clifton e23f161028 * elf-m10300.c (mn10300_elf_relax_section): Extend previous fix to cover forward jumps.
* ld-mn10300/i135409-5.s: New test case.  Check for relaxation to a 16-bit backward jump instruction.
* ld-mn10300/i135409-5.t: Linker script for the new test.
* ld-mn10300/i135409-5.d: Expected disassembly of new test.
* ld-mn10300/mn10300.exp: Run the new test.
2007-11-28 13:04:18 +00:00
Alan Modra 6520b4ed3b daily update 2007-11-27 23:00:05 +00:00
Alan Modra fc81646790 daily update 2007-11-26 23:00:06 +00:00
Alan Modra 05ed937ec7 daily update 2007-11-25 23:00:06 +00:00
Alan Modra f656dbe68b daily update 2007-11-24 23:00:06 +00:00
Alan Modra 011bad05f6 daily update 2007-11-23 23:00:05 +00:00
Alan Modra b3e76501ef daily update 2007-11-22 23:00:05 +00:00
Alan Modra 9025e63419 daily update 2007-11-21 23:00:05 +00:00
Nick Clifton fc91707cc2 * elf-m10300.c (mn10300_elf_relax_section): Allow for alignment relocs when
computing whether instructions can be relaxed.
* ld-mn10300/i135409-4.s: New test case.  Check for relaxation to a 16-bit
    jump instruction.
* ld-mn10300/i135409-4.t: Linker script for the new test.
* ld-mn10300/i135409-4.d: Expected disassembly of new test.
* ld-mn10300/mn10300.exp: Run the new test.
2007-11-21 12:06:26 +00:00
Alan Modra 46ba7344b4 daily update 2007-11-20 23:00:05 +00:00
Nick Clifton 430a16a51d * elflink.c (elf_link_output_extsym): Weaken assertion: if --gc-section is set, there may be no TLS segment.
* lib/ld-lib.exp (check_gc_sections_available): New proc, based on the version in gcc/testsuite/lib/target-supports.exp.
* ld-elf/eld.exp: Use check_gc_sections_available.
2007-11-20 15:08:25 +00:00
Alan Modra 82fa71829d daily update 2007-11-19 23:00:05 +00:00
Alan Modra cdfeee4f47 * elf-bfd.h (bfd_elf_perform_complex_relocation): Update prototype.
* elflink.c (bfd_elf_perform_complex_relocation): Return status.
	Don't print reloc overflow message.
	* elf32-mep.c (mep_elf_relocate_section): Handle status from
	bfd_elf_perform_complex_relocation.
2007-11-19 02:19:39 +00:00
Alan Modra 183c982d60 daily update 2007-11-18 23:00:07 +00:00
Alan Modra 2be99a4004 daily update 2007-11-17 23:00:05 +00:00
Thiemo Seufer 42554f6a08 [ld/testsuite/ChangeLog]
* ld-mips-elf/attr-gnu-4-14.d, ld-mips-elf/attr-gnu-4-41.d:
	Adjust warning message for -mfp64 flag.
	* ld-mips-elf/attr-gnu-4-5.s, ld-mips-elf/attr-gnu-4-04.d,
	ld-mips-elf/attr-gnu-4-51.d, ld-mips-elf/attr-gnu-4-05.d,
	ld-mips-elf/attr-gnu-4-15.d, ld-mips-elf/attr-gnu-4-24.d,
	ld-mips-elf/attr-gnu-4-25.d, ld-mips-elf/attr-gnu-4-34.d,
	ld-mips-elf/attr-gnu-4-35.d, ld-mips-elf/attr-gnu-4-42.d,
	ld-mips-elf/attr-gnu-4-43.d, ld-mips-elf/attr-gnu-4-44.d,
	ld-mips-elf/attr-gnu-4-45.d, ld-mips-elf/attr-gnu-4-40.d,
	ld-mips-elf/attr-gnu-4-14.d: New testcases files.
	* ld-mips-elf/mips-elf.exp: Run new testcases.

	[binutils/ChangeLog]
	* readelf.c (display_mips_gnu_attribute): Recognize -mips32r2 -mfp64
	objects.

	[include/ChangeLog]
	* elf/mips.h (Tag_GNU_MIPS_ABI_FP): Mention -mips32r2 -mfp64 variant
	in comment.

	[bfd/ChangeLog]
	* elfxx-mips.c (mips_elf_merge_obj_attributes): Handle -mips32r2
	-mfp64 attribute.

	[gas/ChangeLog]
	* doc/as.texinfo: Document the new attribute value.
2007-11-17 13:38:57 +00:00
Alan Modra 95255be2b2 daily update 2007-11-16 23:00:05 +00:00
Nick Clifton 62d7f7907a * ld-mn10300/mn10300.exp: Fix the start address of the .bss section for the i1127740.s test.
* elf-m10300.c (mn10300_elf_check_relocs): Fix memory leak and check that bfd_elf_get_elf_syms is only called once.
2007-11-16 09:48:05 +00:00
Ulrich Weigand 6f610d0772 bfd/ChangeLog:
* elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Set udata.p of
	synthetic symbol to point to the ELF symbol it was derived from.

gdb/ChangeLog:

	* elfread.c (ST_REGULAR, ST_DYNAMIC, ST_SYNTHETIC): New defines.
	(elf_symtab_read): Rename DYNAMIC argument to TYPE.  Do not access
	ELF-private symbol data when processing synthetic symbols.  Use
	udata.p to get at size of ppc64 synthetic 'dot' symbols.
	(elf_symfile_read): Pass TYPE argument to elf_symtab_read.
2007-11-15 23:48:00 +00:00
Alan Modra 557586a200 daily update 2007-11-15 23:00:05 +00:00
Alan Modra fed590bb65 PR 5328
* opncls.c (separate_debug_file_exists): Use fopen/fread
	rather than open/read and open in binary mode.
2007-11-15 05:20:30 +00:00
Alan Modra cee076042c daily update 2007-11-14 23:00:07 +00:00
Richard Sandiford c224138d88 bfd/
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 20:46:15 +00:00
Thiemo Seufer 51a0dd312e * elfxx-mips.c (mips_elf_merge_obj_attributes): Prevent
unwanted fallthroughs in case statement.
2007-11-14 20:04:22 +00:00
Alan Modra 2b9788290f daily update 2007-11-13 23:00:05 +00:00
H.J. Lu 4be8cddcc5 2007-11-13 H.J. Lu <hongjiu.lu@intel.com>
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 20:17:43 +00:00
Nick Clifton b5f5fd962e * config/tc-mn10300.c (mn10300_force_relocation): Force a reloc to be 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 10:40:29 +00:00
Alan Modra 0067a5693a PR 5233
* 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-13 05:56:10 +00:00
Alan Modra 52cd869883 daily update 2007-11-12 23:00:04 +00:00
H.J. Lu fa4dfc15df 2007-11-12 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/5299
	* peicode.h (pe_bfd_object_p): Save and restore previous bfd
	state when calling coff_object_p.
2007-11-12 21:55:50 +00:00
Alan Modra 8f39ba8ef2 * elf.c (_bfd_elf_get_synthetic_symtab): Only bump the symbol
pointer when we have a valid symbol.  Init udata.p to NULL.
2007-11-12 03:28:52 +00:00
Alan Modra 6395c08d39 daily update 2007-11-11 23:00:05 +00:00
Alan Modra d07b42f3b7 daily update 2007-11-10 23:00:05 +00:00
Alan Modra bbce853ae5 daily update 2007-11-09 23:00:06 +00:00
Nathan Sidwell 6b60be102a * elf-vxworks.c (elf_vxworks_emit_relocs): Don't clobber
rel_hash.  Move loop inside if test.
2007-11-09 10:20:17 +00:00
Danny Smith b2766bff8e Apply delta accidentally omitted from 2007-11-05 commit.
* pei-i386.c (COFF_SECTION_ALIGNMENT_ENTRIES): Let .data, .text
	 and .bss section use the default.
2007-11-09 08:35:29 +00:00
Alan Modra 25e073af51 daily update 2007-11-08 23:00:49 +00:00
Nathan Sidwell 4d2c0abd8e * 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.
2007-11-08 13:57:44 +00:00
Nathan Sidwell 7a2b07ff7e include/elf/
* 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-08 13:51:07 +00:00
Alan Modra f549fcc222 daily update 2007-11-07 23:00:05 +00:00
Nick Clifton b5482f211e * bfd/elfxx-mips.c (_bfd_mips_elf_fake_sections): Force SHF_MIPS_NOSTRIP on
.debug_frame for Irix.
2007-11-07 14:52:44 +00:00
Alan Modra 5de6e39c09 daily update 2007-11-06 23:00:15 +00:00
Alan Modra 102890f04c bfd/
* 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-06 13:49:19 +00:00
Alan Modra b7fcf6f6bb bfd/
* 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-06 03:59:16 +00:00
Alan Modra fa91f3452d daily update 2007-11-05 23:00:05 +00:00
Alan Modra 9ca98086ff * merge.c (sec_merge_hash_lookup): Revert last change.
(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-05 02:13:46 +00:00
Danny Smith 11ec4ba977 include
* 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-04 23:49:09 +00:00
Alan Modra 4c9b8248ed daily update 2007-11-04 23:00:05 +00:00
Alan Modra 3550616229 daily update 2007-11-03 23:00:05 +00:00
Alan Modra 8942f2584c daily update 2007-11-02 23:00:05 +00:00
Alan Modra c8d3672277 daily update 2007-11-01 23:00:05 +00:00
Joseph Myers e6c6c8f39c bfd:
* 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-11-01 11:45:20 +00:00
Alan Modra 69ff358819 daily update 2007-10-31 23:00:05 +00:00
Nick Clifton cf4a529b63 * elf-m10300.c (mn10300_elf_relax_delete_bytes): Do not look for align
relocs when there are no relocs attached to the section.
2007-10-31 11:33:27 +00:00
Alan Modra 8f317e3169 * elf-bfd.h (bfd_elf_match_symbols_in_sections): Don't declare.
* elflink.c (bfd_elf_match_symbols_in_sections): Make static.
	Remove section name comparisons.
2007-10-31 07:36:46 +00:00
Alan Modra 1dda9f5f8c daily update 2007-10-30 23:00:06 +00:00
Nick Clifton 569006e582 * mn10300.h (R_MN10300_ALIGN): Define.
* 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-30 15:18:29 +00:00
Alan Modra 4534d6ccfc daily update 2007-10-29 23:00:05 +00:00
Alan Modra 10e9477429 daily update 2007-10-28 23:00:04 +00:00
Alan Modra abe97724f4 daily update 2007-10-27 23:00:05 +00:00
Alan Modra 35cd7f3544 daily update 2007-10-27 00:00:05 +00:00
Alan Modra 485ab6b48a daily update 2007-10-26 00:00:06 +00:00
Pedro Alves db86b2dce1 bfd/
* 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 21:01:55 +00:00
Daniel Jacobowitz c6e653525f * elf32-ppc.c (ppc_elf_merge_obj_attributes): Add support for
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 15:20:24 +00:00
Joseph Myers 7c8b76cc17 * elfxx-mips.c (_bfd_mips_elf_modify_segment_map): Do not add
PT_NULL header when not linking.
2007-10-25 11:38:30 +00:00
Alan Modra 97753bd5d7 * elf.c (elfcore_grok_ppc_vmx): New function.
(elfcore_grok_note): Handle NT_PPC_VMX.
	(elfcore_write_ppc_vmx): New function.
	* elf-bfd.h (elfcore_write_ppc_vmx): Declare.
2007-10-25 00:40:34 +00:00
Alan Modra 62e1af1715 daily update 2007-10-25 00:00:04 +00:00
Alan Modra dd32307890 * Makefile.am: Run "make dep-am".
* Makefile.in: Regenerate.
	* po/SRC-POTFILES.in: Regenerate.
2007-10-24 04:54:38 +00:00
Alan Modra 2de39ffda3 daily update 2007-10-24 00:00:05 +00:00
Alan Modra f94498ff0f * elf64-ppc.c (ppc_build_one_stub): Don't duplicate relocs
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-23 12:54:17 +00:00
Alan Modra 5cab600649 daily update 2007-10-23 00:00:06 +00:00
Alan Modra dd8de1a32e daily update 2007-10-22 00:00:05 +00:00
Alan Modra a190e9e3e6 daily update 2007-10-21 00:00:05 +00:00
Alan Modra 342dae88a7 daily update 2007-10-20 00:00:05 +00:00
Nick Clifton bfff164249 Add MN10300 linker relaxation support for symbol differences 2007-10-19 17:31:31 +00:00
Nick Clifton 603b72571d * elf-m10300.c: Convert to ISO C.
* tc-mn10300.c: Convert to ISO C.
2007-10-19 11:48:57 +00:00
Alan Modra 00fd39d11f daily update 2007-10-19 00:00:05 +00:00
Alan Modra 13285a1b2c PR ld/4424
* config.bfd (targ_selvecs): Add bfd_elf64_alpha_vec for
	alpha/FreeBSD.  Add bfd_elf64_sparc_vec for sparc64/FreeBSD.
	Add bfd_elf32_i386_vec and bfd_efi_app_ia32_vec for i386/FreeBSD.
	(targ64_selvecs): Set for i386/FreeBSD.
	* elf-bfd.h (elf_backend_data): Add relocs_compatible.
	(_bfd_elf_default_relocs_compatible): Declare.
	(_bfd_elf_relocs_compatible): Declare.
	* elfxx-target.h (elf_backend_relocs_compatible): Define.
	(elfNN_bed): Init new relocs_compatible field.
	* elflink.c (_bfd_elf_default_relocs_compatible): New function.
	(_bfd_elf_relocs_compatible): New function.
	(elf_link_add_object_symbols): Call bed->relocs_compatible.
	* elf32-i386.c (elf_backend_relocs_compatible): Define.
	* elf64-alpha.c: Likewise.
	* elf64-sparc.c: Likewise.
	* elf64-x86-64.c: Likewise.
2007-10-18 09:13:51 +00:00
Alan Modra 51745be133 daily update 2007-10-18 00:00:05 +00:00
Bob Wilson ae326da8eb * elf32-xtensa.c (relax_section): Check for a reference to a discarded
DWARF section and anticipate its replacement with the kept section.
2007-10-17 00:30:31 +00:00
Alan Modra bb14a92538 daily update 2007-10-17 00:00:05 +00:00
Bob Wilson a3ef2d6352 * elf32-xtensa.c (elf_xtensa_discard_info_for_section): Remove
unnecessary size variables.  Set sec->rawsize.
	(relax_section, relax_property_section): Likewise.
2007-10-16 23:57:24 +00:00
Bob Wilson 73c5c7a8d6 * section.c (struct bfd_section): Clarify comment for rawsize field.
* bfd-in2.h: Regenerate.
2007-10-16 23:51:55 +00:00
Bob Wilson 1dd2625faa * elflink.c (_bfd_elf_check_kept_section): Use the section rawsize
values if they are set.
2007-10-16 15:51:38 +00:00
Nick Clifton 8bc9c89276 PR 5146
* configure.in (AC_CHECK_HEADERS): Add alloca.h
* configure: Regenerate.
* config.in: Regenerate.
* som.c: Replace alloca-conf.h inclusion with code recommended in autoconf documentation.
* elf64-hppa.c: Likewise.
2007-10-16 15:15:50 +00:00
Nick Clifton 504b7d2026 Support the use of the STT_COMMON type. (In source and object files only at the moment) 2007-10-16 14:42:15 +00:00
Alan Modra a652a49c5f daily update 2007-10-16 00:00:05 +00:00
Alan Modra 5375ec41be * chew.c (write_buffer): Check fwrite return value. 2007-10-15 02:00:28 +00:00
Alan Modra b165715209 * coff-arm.c (arm_emit_base_file_entry): Check fwrite return value.
Return status.  Adjust callers.
	* coff-mcore.c (mcore_emit_base_file_entry): Likewise.
	* coff-ppc.c (write_base_file_entry): New function.
	(coff_ppc_relocate_section): Use it.
	* elf32-arm.c (find_thumb_glue): Check asprintf return status.
	(find_arm_glue): Likewise.
	* vms-misc.c (_bfd_vms_output_flush): Check fwrite return value.
2007-10-15 02:00:11 +00:00
Alan Modra a7c7166623 daily update 2007-10-15 00:00:05 +00:00
Alan Modra 0c607b23d8 daily update 2007-10-14 00:00:04 +00:00
Alan Modra f266c1c5f5 daily update 2007-10-13 00:00:05 +00:00
Nick Clifton 4b93929bf9 PR 5160
* elflink.c (eval_symbol): Remove bufsz variable and use sizeof(symbuf) where necessary.
2007-10-12 16:25:21 +00:00
Nick Clifton e9deb29d4f * elf32-cr16.c (elf32_cr16_relax_section): Fix condition check typo.
* config/tc-cr16.c: Update the md_relax_table for 1 word b<cc> instruction range information.
2007-10-12 16:11:02 +00:00
Daniel Jacobowitz 720199d64e * elfxx-mips.c (mips_elf_sort_hash_table_f): Handle forced
local symbols specially.
	(mips_elf_set_global_got_offset): Skip forced local symbols.
2007-10-12 15:59:19 +00:00
Alan Modra 971d4640d2 * elf.c (elfcore_grok_prxfpreg): Fix comment typo. 2007-10-12 03:34:45 +00:00
Alan Modra ed4c31f254 daily update 2007-10-12 00:00:05 +00:00
H.J. Lu f210dcff90 2007-10-10 H.J. Lu <hongjiu.lu@intel.com>
* elf.c (get_program_header_size): Always add a PT_GNU_RELRO
	segment for -z relro.
	(_bfd_elf_map_sections_to_segments): Make a PT_GNU_RELRO
	segment only when needed.
2007-10-11 05:03:07 +00:00
Alan Modra 53f1d09b83 daily update 2007-10-11 00:00:05 +00:00
Alan Modra cf0d1c8e4d daily update 2007-10-10 00:00:05 +00:00
Alan Modra 444e9b58b8 daily update 2007-10-09 00:00:05 +00:00
Alan Modra 13f9d64916 daily update 2007-10-08 00:00:05 +00:00
Alan Modra 43b11a637f daily update 2007-10-07 00:00:05 +00:00
Alan Modra 15bed04447 daily update 2007-10-06 00:00:07 +00:00
Bob Wilson 9b7f5d2048 * elf32-xtensa.c (relax_section): Call pin_internal_relocs when
changing a relocation's offset.  Adjust call to translate_reloc.  Do
	not add a fix record for a DIFF reloc.  For other relocs, only add a
	fix record if the translated target is in a different object file;
	otherwise, just update the relocation.  Call pin_internal_relocs when
	updating a reloc but not when adding a fix record.
	(translate_reloc): Get the target section from a new argument, not
	from the relocation.  Change check for relaxable sections to an
	assertion.  Compute separate offset adjustments for the base symbol
	and the addend, and set the new relocation's addend correctly.  Return
	the new target section.
2007-10-05 19:05:35 +00:00
Bob Wilson 768a5a741d * elf32-xtensa.c (elf_xtensa_relocate_section): Remove updates of
r_type and howto after calling do_fix_for_relocateable_link and
	do_fix_for_final_link.
2007-10-05 18:18:23 +00:00
Bob Wilson 03669f1c02 * elf32-xtensa.c (removed_by_actions): New.
(offset_with_removed_text): Reimplement using removed_by_actions.
	(offset_with_removed_text_before_fill): Delete.
	(relax_property_section): Use removed_by_actions.  Rearrange logic.
	(relax_section_symbols): Likewise.
2007-10-05 18:09:57 +00:00
Alan Modra 6f9e08d5a1 daily update 2007-10-05 00:00:05 +00:00
Bob Wilson 0f5f163810 * elf32-xtensa.c (reloc_bfd_fix_struct): Delete target_abfd field.
(reloc_bfd_fix_init): Remove target_abfd argument.
	(relax_section, move_literal): Adjust calls to reloc_bfd_fix_init.
2007-10-04 17:15:29 +00:00
Nick Clifton 1f7a4e4204 PR linker/5099
* elf64-x86-64.c (elf64_x86_64_check_relocs): Add missing apostrophe to error message.
2007-10-04 13:41:29 +00:00
Alan Modra 4638dbaa96 daily update 2007-10-04 00:00:06 +00:00
Alan Modra 66247fc744 daily update 2007-10-03 00:00:05 +00:00
Alan Modra 1f8e37112f daily update 2007-10-02 00:00:01 +00:00
Nick Clifton 7fac7ff4ae Various CR16 fixes 2007-10-01 15:55:44 +00:00
Alan Modra 42c4197104 daily update 2007-10-01 00:00:05 +00:00
Alan Modra a0c8462faf * elflink.c: Formatting. 2007-09-30 13:43:23 +00:00
Alan Modra 0f02bbd9f8 bfd/
* elflink.c (resolve_symbol): Handle symbols in SEC_MERGE
	sections.  Don't test symbol st_shndx.  Don't bother with
	bfd_link_hash_common symbols.  Print longs rather than ints
	in debug messages.
	(eval_symbol): Replace "sym" and "advanced" params with "symp".
	Replace "addr" and "section_offset" params with "dot".  Don't
	cast bfd_vma values to signed, cast them to bfd_signed_vma.
	(bfd_elf_perform_complex_relocation): Delete "output_bfd", "info",
	"local_syms" and "local_sections" params.  Add "relocation".
	Delete code calculating relocation value.
	(evaluate_complex_relocation_symbols): Delete function.  Fold into..
	(elf_link_input_bfd): ..existing code examining relocs.
	* elf-bfd.h (bfd_elf_perform_complex_relocation): Update prototype.
	* elf32-mep.c (mep_elf_check_relocs): Delete function.
	(mep_elf_gc_sweep_hook, mep_elf_gc_mark_hook): Likewise.
	(mep_elf_object_p): Don't set elf_bad_symtab.
	(elf_backend_check_relocs): Don't define.
	(elf_backend_gc_mark_hook, elf_backend_gc_sweep_hook): Likewise.
	(elf_backend_can_gc_sections, USE_RELA): Likwise.
	(mep_elf_relocate_section): Move bfd_elf_perform_complex_relocation
	call after we have calculated reloc value.  Delete local sym
	debug code.  Use RELOC_FOR_GLOBAL_SYMBOL.  Delete addend
	adjusting code..
	(elf_backend_rela_normal): ..instead define this.
ld/testsuite/
	* ld-selective/sel-dump.exp: Add am33, m88k, mep to xfails.
	* ld-selective/selective.exp: Don't run for same target list
	we xfail sel-dump.
2007-09-30 13:33:04 +00:00
Alan Modra 844cacac6e daily update 2007-09-30 00:00:05 +00:00
Alan Modra dccfc3eba1 daily update 2007-09-29 00:00:05 +00:00
Alan Modra 5582a08852 * elf-m10300.c (mn10300_elf_check_relocs): Delete dead code.
* elf32-arm.c (elf32_arm_check_relocs): Likewise.
	* elf32-avr.c (elf32_avr_check_relocs): Likewise.
	* elf32-bfin.c (bfinfdpic_check_relocs): Likewise.
	* elf32-cris.c (cris_elf_check_relocs): Likewise.
	* elf32-d10v.c (elf32_d10v_check_relocs): Likewise.
	* elf32-dlx.c (elf32_dlx_check_relocs): Likewise.
	* elf32-fr30.c (fr30_elf_check_relocs): Likewise.
	* elf32-frv.c (_frvfdpic_check_discarded_relocs): Likewise.
	(elf32_frv_check_relocs): Likewise.
	* elf32-iq2000.c (iq2000_elf_check_relocs): Likewise.
	* elf32-m32c.c (m32c_elf_check_relocs): Likewise.
	* elf32-m32r.c (m32r_elf_check_relocs): Likewise.
	* elf32-m68hc1x.c (elf32_m68hc11_check_relocs): Likewise.
	* elf32-mcore.c (mcore_elf_check_relocs): Likewise.
	* elf32-msp430.c (elf32_msp430_check_relocs): Likewise.
	* elf32-mt.c (mt_elf_check_relocs): Likewise.
	* elf32-openrisc.c (openrisc_elf_check_relocs): Likewise.
	* elf32-sh.c (sh_elf_check_relocs): Likewise.
	* elf64-mmix.c (mmix_elf_check_relocs): Likewise.
	* elf64-sh64.c (sh_elf64_check_relocs): Likewise.
	* elf32-score.c (_bfd_score_elf_check_relocs): Likewise.
	(score_elf_local_relocation_p): Likewise.
	(_bfd_score_elf_relocate_section): Likewise.
	(score_elf_final_link_relocate): Likewise.
2007-09-28 08:43:45 +00:00
Alan Modra 78a273176b daily update 2007-09-27 00:00:05 +00:00
Jan Beulich d17e0c6e9a bfd/
2007-09-26  Jan Beulich  <jbeulich@novell.com>

	* elf32-i386.c (elf_i386_check_relocs): Revert NULL pointer
	check for R_386_GNU_VTINHERIT.
	* elf-m10300.c (mn10300_elf_check_relocs): Check for NULL
	pointer for R_xxx_GNU_VTENTRY.
	* elf32-arm.c (elf32_arm_check_relocs): Likewise.
	* elf32-bfin.c (bfin_check_relocs): Likewise.
	(bfinfdpic_check_relocs): Likewise.
	* elf32-cris.c (cris_elf_check_relocs): Likewise.
	* elf32-d10v.c (elf32_d10v_check_relocs): Likewise.
	* elf32-dlx.c (elf32_dlx_check_relocs): Likewise.
	* elf32-fr30.c (fr30_elf_check_relocs): Likewise.
	* elf32-frv.c (elf32_frv_check_relocs): Likewise.
	* elf32-hppa.c (elf32_hppa_check_relocs): Likewise.
	* elf32-iq2000.c (iq2000_elf_check_relocs): Likewise.
	* elf32-m32r.c (m32r_elf_check_relocs): Likewise.
	* elf32-m68hc1x.c (elf32_m68hc11_check_relocs): Likewise.
	* elf32-m68k.c (elf_m68k_check_relocs): Likewise.
	* elf32-mcore.c (mcore_elf_check_relocs): Likewise.
	* elf32-openrisc.c (openrisc_elf_check_relocs): Likewise.
	* elf32-ppc.c (ppc_elf_check_relocs): Likewise.
	* elf32-s390.c (elf_s390_check_relocs): Likewise.
	* elf32-score.c (_bfd_score_elf_check_relocs): Likewise.
	* elf32-sh.c (sh_elf_check_relocs): Likewise.
	* elf32-v850.c (v850_elf_check_relocs): Likewise.
	* elf32-vax.c (elf_vax_check_relocs): Likewise.
	* elf32-xstormy16.c (xstormy16_elf_check_relocs): Likewise.
	* elf32-xtensa.c (elf_xtensa_check_relocs): Likewise.
	* elf64-mmix.c (mmix_elf_check_relocs): Likewise.
	* elf64-ppc.c (ppc64_elf_check_relocs): Likewise.
	* elf64-s390.c (elf_s390_check_relocs): Likewise.
	* elf64-sh64.c (sh_elf64_check_relocs): Likewise.
	* elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_check_relocs): Likewise.
	* elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Likewise.
2007-09-26 13:45:32 +00:00
Alan Modra 8977835cde * elflink.c (set_symbol_value): Add isymbuf and locsymcount
params.  Change symidx to a size_t.  Don't access past end
	of symbol buffer.
	(resolve_symbol): Add isymbuf param and use instead of
	finfo->internal_syms.
	(eval_symbol, evaluate_complex_relocation_symbols): Likewise.
	(elf_link_input_bfd): Don't read symbols specially for
	evaluate_complex_relocation_symbols.
2007-09-26 12:29:41 +00:00
Nick Clifton 06dcabb057 * som.c (som_get_reloc_upper_bound): If there are no relocs return enough
space to hold a NULL pointer.
2007-09-26 08:12:59 +00:00
Alan Modra 2e5b2d7404 * elf64-ppc.c (ppc_build_one_stub): Correct rel_hdr.sh_size. 2007-09-26 03:07:45 +00:00
Alan Modra 939bfe3b97 daily update 2007-09-26 00:00:06 +00:00
Alan Modra 2cb5950ea3 bfd/
* elf32-spu.c (struct spu_link_hash_table): Add ovly_load_r_symndx.
	(spu_elf_size_stubs): Count stub relocs.
	(write_one_stub): Emit relocs on overlay call stubs.
ld/testsuite/
	* ld-spu/ovl.d: Adjust for stub relocs.
	* ld-spu/ovl2.d: Likewise.
2007-09-25 08:27:39 +00:00
Alan Modra 98e89a7d84 * elf32-spu.c (struct spu_link_hash_table): Add "stubs".
(spu_elf_link_hash_table_create): Init new field.
	(spu_elf_size_stubs): Store sorted stub syms in new htab field
	rather than local var.
	(spu_elf_build_stubs): Iterate over htab stubs rather than
	hash traversal.
	(struct stubarr): Delete.
	(allocate_spuear_stubs, populate_stubs, write_one_stub): Adjust.
2007-09-25 07:58:21 +00:00
Alan Modra 5f67a19ce6 daily update 2007-09-25 00:00:05 +00:00
Daniel Jacobowitz e970b90aa9 * elf.c (assign_file_positions_for_load_sections): Trust
p_align_valid.
	(copy_elf_program_header): Copy PT_NULL segments.
2007-09-24 18:23:13 +00:00
Alan Modra fad9eaf0de * elf32-spu.c (is_indirect_branch): New function.
(find_function_stack_adjust): End scan on hitting indirect branch.
	(sum_stack): Cast %v arg to correct type.
2007-09-24 00:30:03 +00:00
Alan Modra 3dca129609 daily update 2007-09-24 00:00:05 +00:00
Alan Modra 05fe5be4a6 daily update 2007-09-23 00:00:05 +00:00
Alan Modra ceb77b3e42 daily update 2007-09-22 00:00:08 +00:00
H.J. Lu 10569aebc7 2007-09-21 H.J. Lu <hongjiu.lu@intel.com>
* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerated.
2007-09-21 18:22:24 +00:00
Nick Clifton 4ab2002928 * Makefile.am (BFD32_LIBS): Add arange-set.lo.
(BFD32_LIBS_CFILES): Add arange-set.c.
  (SOURCE_HFILES): Add arange-set.h
  (dwarf2.lo): Add dependency upon arange-set.h.
  (arange-set.lo): New target.
* Makefile.in: Regenerate.
* arange-set.c: New file.
* arange-set.h: New file.
* dwarf2.c: Include arange-set.h.
  (struct dwarf2_debug) Add new fields comp_unit_count and comp_unit_arange_set.
  (struct comp_unit) Replace field arange with a new field arange_set.
  (dwarf2_arange_set_allocate, dwarf2_arange_set_deallocate,
  (dwarf2_combine_arange_value, dwarf2_arange_set_new,
  (dwarf2_arange_set_with_value_new, dwarf2_comp_unit_arange_add): New
  functions to utilize arange set in dwarf2.c.
  (arange_add): Formatting change for a line longer than 80 characters.
  (decode_line_info): Replace call target arange_add with
  (dwarf2_comp_unit_arange_add.
  (read_rangelist_insert_arange_list,
  (read_rangelist_comp_unit_arange_add): New functions used as callbacks
  for read_rangelist.
  (read_rangelist): Change interface to accept a callback and data to
  allow caller to select the action peformed on a new range list read.
  (scan_unit_for_symbols): Use new interface of read_rangelist.
  (parse_comp_unit): Create an arange set for each new comp unit.  Use new
  interface of read_rangelist.  Replace call to arange_add with that to
  dwarf2_comp_unit_arange_add.
  (comp_unit_contains_address): Replace sequential search with a call to
  arange_set_lookup_address, which can handles large set efficiently.
  (stash_copy_local_aranges, stash_maybe_enable_arange_set,
  (stash_find_nearest_line_fast): New functions maintaining and using a
  valued global arange set for all compilation units to speed up
  bfd_dwarf2_find_nearest_line.
  (find_line): Use global arange set.  Replace sequential search over all
  compilation units with a call to stash_find_nearest_line_fast.  Add
  book keeping to count number of compilation units.  Replace empty
  arange list test with a call to arange_set_empty_p.
2007-09-21 16:16:18 +00:00
Nick Clifton 6119d2522e * syms.c (_bfd_stab_section_find_nearest_line): Look at the
specific SOM sections for stabs if the regular ones are not found.
* som.h (struct somdata): Add a line_info field, to be used by som_find_nearest_line.
* som.c (som_find_nearest_line): Implement using the bfd stabs function above.
2007-09-21 07:58:03 +00:00
Alan Modra ec51df9f10 daily update 2007-09-21 00:00:05 +00:00
Alan Modra 20e96b3e5d daily update 2007-09-20 00:00:05 +00:00
Daniel Jacobowitz b55fd4d45d * elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections): Make sure .got
will be output.
2007-09-19 16:21:59 +00:00
Alan Modra a69898aad0 * bfd-in.h (bfd_hash_insert): Declare.
* bfd-in2.h: Regenerate.
	* hash.c (bfd_hash_insert): New function.  Split out from..
	(bfd_hash_lookup): ..here.
	* merge.c (sec_merge_hash_lookup): Use bfd_hash_insert.
2007-09-19 12:08:34 +00:00
Alan Modra f81c953f3a daily update 2007-09-19 00:00:06 +00:00