This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Slow linking for ARM


Am 26.12.2010 um 01:24 schrieb Richard Earnshaw:

> It would really help if you could obtain some execution profiles of the linker for the case that is taking so long.  Especially if you can get them for both ARM and another target. It might be something really dumb going on.
Here is some profiling output for the most used functions.
It is generated for the application that takes so long to link.
Again, please note that this problem is gone in binutils-HEAD.

Regards
Titus

----------------------------------------------
ld-2.20 ARM:
# Report 1 - Session 1 - Time Profile of ld
SharkProfileViewer
# Generated from the visible portion of the outline view
+ 96.0%, find_arm_elf_section_entry, ld-220
| + 96.0%, get_arm_elf_section_data, ld-220
| | + 81.2%, elf32_arm_fix_exidx_coverage, ld-220
| | | + 81.2%, gldarmelf_linux_eabi_after_allocation, ld-220
| | | | + 81.2%, lang_process, ld-220
| | | | | + 81.2%, main, ld-220
| | | | | |   81.2%, start, ld-220
| | - 14.8%, elf32_arm_write_section, ld-220
| - 0.0%, unrecord_section_with_arm_elf_section_data, ld-220
- 0.2%, sec_merge_hash_lookup, ld-220
- 0.2%, ml_set_interrupts_enabled, mach_kernel
- 0.2%, bfd_elf_final_link, ld-220
- 0.2%, bfd_hash_lookup, ld-220
- 0.2%, elf32_arm_relocate_section, ld-220
- 0.2%, strcmp, libSystem.B.dylib
  0.1%, lo_alltraps, mach_kernel
- 0.1%, elf32_arm_final_link_relocate, ld-220
  0.1%, lo_unix_scall, mach_kernel
- 0.1%, bfd_elf_sym_name, ld-220
- 0.1%, elf32_arm_fix_exidx_coverage, ld-220
- 0.1%, bcmp, libSystem.B.dylib
- 0.1%, copyout_kern, mach_kernel
- 0.1%, _qsort, libSystem.B.dylib
- 0.1%, bfd_elf_match_symbols_in_sections, ld-220
- 0.1%, bfd_getl32, ld-220
- 0.1%, elf_link_output_extsym, ld-220
- 0.0%, elf_sort_elf_symbol, ld-220
- 0.0%, elf32_arm_size_stubs, ld-220
- 0.0%, copyin_kern, mach_kernel

-----------------------------------
ld-2.20 PPC:
# Report 3 - Session 2 - Time Profile of ld
SharkProfileViewer
# Generated from the visible portion of the outline view
- 9.3%, walk_wild_section_specs3_wild2, ld-220
- 8.7%, sec_merge_hash_lookup, ld-220
- 8.2%, strpbrk, libSystem.B.dylib
+ 4.7%, match_simple_wild, ld-220
| + 3.1%, walk_wild_section_specs3_wild2, ld-220
| | + 3.1%, walk_wild_section, ld-220
| | | + 3.1%, walk_wild, ld-220
| | | | - 1.6%, lang_gc_sections_1, ld-220
| | | | + 1.5%, map_input_to_output_sections, ld-220
| | | | | + 1.5%, map_input_to_output_sections, ld-220
| | | | | | + 1.5%, lang_process, ld-220
| | | | | | | + 1.5%, main, ld-220
| | | | | | | |   1.5%, start, ld-220
| - 0.9%, walk_wild_section_specs1_wild1, ld-220
| - 0.5%, walk_wild_section_specs2_wild1, ld-220
| - 0.1%, walk_wild_section, ld-220
| - 0.1%, walk_wild_section_specs4_wild2, ld-220
- 2.7%, bcmp, libSystem.B.dylib
- 2.6%, fnmatch, ld-220
- 2.4%, bfd_hash_lookup, ld-220
- 2.4%, ppc_elf_relocate_section, ld-220
- 2.2%, bfd_elf_final_link, ld-220
- 2.1%, walk_wild_section_specs1_wild1, ld-220
- 2.0%, bfd_elf_sym_name, ld-220
- 1.8%, strrevcmp, ld-220
- 1.8%, _bfd_relocate_contents, ld-220
- 1.8%, copyout_kern, mach_kernel

-------------------------------------
ld-HEAD ARM:
# Report 1 - Session 1 - Time Profile of ld
SharkProfileViewer
# Generated from the visible portion of the outline view
+ 33.4%, strpbrk, libSystem.B.dylib
| + 33.0%, name_match, ld-head
| | + 33.0%, walk_wild_section_general, ld-head
| | | + 33.0%, walk_wild_section, ld-head
| | | | + 33.0%, walk_wild, ld-head
| | | | | + 23.9%, map_input_to_output_sections, ld-head
| | | | | | + 23.9%, map_input_to_output_sections, ld-head
| | | | | | | + 23.9%, lang_process, ld-head
| | | | | | | | + 23.9%, main, ld-head
| | | | | | | | |   23.9%, start, ld-head
| | | | | - 9.2%, lang_gc_sections_1, ld-head
| - 0.3%, walk_wild_section_general, ld-head
- 6.4%, strcmp, libSystem.B.dylib
- 4.0%, sec_merge_hash_lookup, ld-head
- 3.7%, walk_wild_section_general, ld-head
- 3.6%, walk_wild_section_specs3_wild2, ld-head
- 2.9%, match_simple_wild, ld-head
- 2.4%, name_match, ld-head
- 2.0%, fnmatch, ld-head
- 1.7%, bfd_elf_final_link, ld-head
- 1.7%, elf32_arm_relocate_section, ld-head
- 1.5%, bcmp, libSystem.B.dylib
- 1.2%, elf32_arm_final_link_relocate, ld-head
- 1.0%, walk_wild_section_specs1_wild1, ld-head
- 1.0%, walk_wild_section_specs2_wild1, ld-head
  1.0%, lo_unix_scall, mach_kernel
- 1.0%, copyout_kern, mach_kernel

---------------------------------------
ld-HEAD PPC:
# Report 3 - Session 2 - Time Profile of ld
SharkProfileViewer
# Generated from the visible portion of the outline view
+ 21.4%, strpbrk, libSystem.B.dylib
| + 21.3%, name_match, ld-head
| | + 21.3%, walk_wild_section_general, ld-head
| | | + 21.3%, walk_wild_section, ld-head
| | | | + 21.3%, walk_wild, ld-head
| | | | | + 21.3%, map_input_to_output_sections, ld-head
| | | | | | + 21.3%, map_input_to_output_sections, ld-head
| | | | | | | + 21.3%, lang_process, ld-head
| | | | | | | | + 21.3%, main, ld-head
| | | | | | | | |   21.3%, start, ld-head
| - 0.1%, walk_wild_section_general, ld-head
- 8.7%, sec_merge_hash_lookup, ld-head
- 5.0%, strcmp, libSystem.B.dylib
- 3.8%, walk_wild_section_specs3_wild2, ld-head
- 2.9%, walk_wild_section_general, ld-head
- 2.9%, match_simple_wild, ld-head
- 2.6%, bcmp, libSystem.B.dylib
- 2.5%, ppc_elf_relocate_section, ld-head
- 2.1%, bfd_elf_sym_name, ld-head
- 2.1%, strrevcmp, ld-head
- 2.0%, bfd_elf_final_link, ld-head
- 1.7%, _bfd_relocate_contents, ld-head
- 1.6%, fnmatch, ld-head
- 1.6%, copyout_kern, mach_kernel



--
For unsubscribe information see http://sourceware.org/lists.html#faq


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]