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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Nick Clifton
7fac7ff4ae
Various CR16 fixes
2007-10-01 15:55:44 +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
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
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
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
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
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