OSDN Git Service

2008-08-06 Cary Coutant <ccoutant@google.com>
authorccoutant <ccoutant>
Thu, 7 Aug 2008 17:02:11 +0000 (17:02 +0000)
committerccoutant <ccoutant>
Thu, 7 Aug 2008 17:02:11 +0000 (17:02 +0000)
commitba13f9aa7a51d035c8c79a09525e4c5b000f5f2e
treeb1420c984e9c1dbecfc6ff4ef1892270a97f32fc
parent00be879841f78e80433034af32d0ed684b1a0317
2008-08-06  Cary Coutant <ccoutant@google.com>

* archive.cc (Archive::total_archives, Archive::total_members)
(Archive::total_members_loaded): New variables.
(Archive::setup): Add parameter.  Add option to preread
archive symbols.
(Archive::read_armap): Add counter.
(Archive::get_file_and_offset): New function.
(Archive::get_elf_object_for_member): New function.
(Archive::read_all_symbols): New function.
(Archive::read_symbols): New function.
(Archive::add_symbols): Add counters.
(Archive::include_all_members): Use armap to find members if it's
already built.
(Archive::include_member): Skip reading symbols if already read.
Factored code into Archive::get_file_and_offset and
Archive::get_elf_object_for_member.  Changed call to
Mapfile::report_include_archive_member.
(Archive::print_stats): New function.
* archive.h: Declare Object and Read_symbols_data classes.
(Archive::Archive): Add initializers for new members.
(Archive::setup): Add parameter.
(Archive::print_stats): New function.
(Archive::total_archives, Archive::total_members)
(Archive::total_members_loaded): New variables.
(Archive::get_file_and_offset): New function.
(Archive::get_elf_object_for_member): New function.
(Archive::read_all_symbols): New function.
(Archive::read_symbols): New function.
(Archive::Archive_member): New class.
(Archive::members_): New member.
(Archive::num_members_): New member.
* main.cc: Include archive.h.
(main): Call Archive::print_stats.
* mapfile.cc (Mapfile::report_include_archive_member): Delete
archive parameter; member_name is now the fully-decorated name.
* mapfile.h (Mapfile::report_include_archive_member): Likewise.
* options.h: (General_options): Add --preread-archive-symbols option.
* readsyms.cc (Read_symbols::do_read_symbols): Change call to
Archive::setup.
gold/archive.cc
gold/archive.h
gold/main.cc
gold/mapfile.cc
gold/mapfile.h
gold/options.h
gold/readsyms.cc