diff options
author | Ian Lance Taylor <ian@airs.com> | 2011-01-24 21:48:40 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 2011-01-24 21:48:40 +0000 |
commit | 0f3b89d87a62ea42186fb5ba525dadde36182a97 (patch) | |
tree | a1ba50cb45c68cfeaf4d02005a29a693f3d9a687 /gold/symtab.cc | |
parent | 314d366acd62a3de1ff8fff788d5b369c2f2d36c (diff) | |
download | gdb-0f3b89d87a62ea42186fb5ba525dadde36182a97.zip gdb-0f3b89d87a62ea42186fb5ba525dadde36182a97.tar.gz gdb-0f3b89d87a62ea42186fb5ba525dadde36182a97.tar.bz2 |
* plugin.cc (class Plugin_rescan): Define new class.
(Plugin_manager::claim_file): Set any_claimed_.
(Plugin_manager::save_archive): New function.
(Plugin_manager::save_input_group): New function.
(Plugin_manager::all_symbols_read): Create Plugin_rescan task if
necessary.
(Plugin_manager::new_undefined_symbol): New function.
(Plugin_manager::rescan): New function.
(Plugin_manager::rescannable_defines): New function.
(Plugin_manager::add_input_file): Set any_added_.
* plugin.h (class Plugin_manager): define new fields rescannable_,
undefined_symbols_, any_claimed_, and any_added_. Declare
Plugin_rescan as friend. Declare new functions.
(Plugin_manager::Rescannable): Define type.
(Plugin_manager::Rescannable_list): Define type.
(Plugin_manager::Undefined_symbol_list): Define type.
(Plugin_manager::Plugin_manager): Initialize new fields.
* archive.cc (Archive::defines_symbol): New function.
(Add_archive_symbols::run): Pass archive to plugins if any.
* archive.h (class Archive): Declare defines_symbol.
* readsyms.cc (Input_group::~Input_group): New function.
(Finish_group::run): Pass input_group to plugins if any.
* readsyms.h (class Input_group): Declare destructor.
* symtab.cc (add_from_object): Pass undefined symbol to plugins if
any.
Diffstat (limited to 'gold/symtab.cc')
-rw-r--r-- | gold/symtab.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gold/symtab.cc b/gold/symtab.cc index 75ed7f6..8531911 100644 --- a/gold/symtab.cc +++ b/gold/symtab.cc @@ -1,6 +1,6 @@ // symtab.cc -- the gold symbol table -// Copyright 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +// Copyright 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. // Written by Ian Lance Taylor <iant@google.com>. // This file is part of gold. @@ -1002,7 +1002,11 @@ Symbol_table::add_from_object(Object* object, // Record every time we see a new undefined symbol, to speed up // archive groups. if (!was_undefined && ret->is_undefined()) - ++this->saw_undefined_; + { + ++this->saw_undefined_; + if (parameters->options().has_plugins()) + parameters->options().plugins()->new_undefined_symbol(ret); + } // Keep track of common symbols, to speed up common symbol // allocation. |