From ac45a351cf89f2a832a04052688d325b5b2ac903 Mon Sep 17 00:00:00 2001 From: Cary Coutant Date: Thu, 7 Aug 2008 17:02:11 +0000 Subject: 2008-08-06 Cary Coutant * 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/main.cc | 2 ++ 1 file changed, 2 insertions(+) (limited to 'gold/main.cc') diff --git a/gold/main.cc b/gold/main.cc index e10600b..b842159 100644 --- a/gold/main.cc +++ b/gold/main.cc @@ -39,6 +39,7 @@ #include "dirsearch.h" #include "workqueue.h" #include "object.h" +#include "archive.h" #include "symtab.h" #include "layout.h" @@ -228,6 +229,7 @@ main(int argc, char** argv) program_name, m.arena); #endif File_read::print_stats(); + Archive::print_stats(); fprintf(stderr, _("%s: output file size: %lld bytes\n"), program_name, static_cast(layout.output_file_size())); symtab.print_stats(); -- cgit v1.1