aboutsummaryrefslogtreecommitdiff
path: root/gold/options.h
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>2009-12-30 22:35:49 +0000
committerIan Lance Taylor <ian@airs.com>2009-12-30 22:35:49 +0000
commit6affe781e430bbf2075faf6539fb020564b3a38f (patch)
tree692719941fd882684f44cd343d474bd89fec941e /gold/options.h
parentd35130122459b29ac7f41123d224aa61d00625f6 (diff)
downloadfsf-binutils-gdb-6affe781e430bbf2075faf6539fb020564b3a38f.zip
fsf-binutils-gdb-6affe781e430bbf2075faf6539fb020564b3a38f.tar.gz
fsf-binutils-gdb-6affe781e430bbf2075faf6539fb020564b3a38f.tar.bz2
PR 10861
* script.h (class Version_script_info): Define Language enum. Update declarations. Define Glob, Exact, and Lookup types. Add new fields globals_, locals_, and is_finalized_. * script.cc: Various formatting fixes. (class Parser_closure): Change language_stack_ from a vector of std::string to one of Version_script_info::Language. Adjust all uses accordingly. (class Lazy_demangler): Remove. (struct Version_expression): Change language from std::string to Version_script_info::Language. (Version_script_info::Version_script_info): New function. (Version_script_info::~Version_script_info): Don't call clear. (Version_script_info::finalize): New function. (Version_script_info::build_lookup_tables): New function. (Version_script_info::build_expression_list_lookup): New function. (Version_script_info::get_symbol_version_helper): Rewrite to use lookup tables. (Version_script_info::print_expression_list): Adjust to use Version_script_info::Language. (script_push_lex_into_version_mode): Check that the version script has not been finalized. (version_script_push_lang): Change language string to Version_script_info::Language. * options.cc (Command_line::version_script): New function. * options.h (class General_options): Add finalize_dynamic_list function. Change version_script from declaration to definition. * testsuite/ver_test_4.script: Remove duplicate def of t2_2. * testsuite/version_script.map: Remove duplicate def of foo. * testsuite/Makefile.am (ver_matching_def.so): Depend upon version_script.map. * testsuite/Makefile.in: Rebuild.
Diffstat (limited to 'gold/options.h')
-rw-r--r--gold/options.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/gold/options.h b/gold/options.h
index be7b018..d8f5fb9 100644
--- a/gold/options.h
+++ b/gold/options.h
@@ -1118,6 +1118,11 @@ class General_options
in_dynamic_list(const char* symbol) const
{ return this->dynamic_list_.version_script_info()->symbol_is_local(symbol); }
+ // Finalize the dynamic list.
+ void
+ finalize_dynamic_list()
+ { this->dynamic_list_.version_script_info()->finalize(); }
+
// The disposition given by the --incremental-changed,
// --incremental-unchanged or --incremental-unknown option. The
// value may change as we proceed parsing the command line flags.
@@ -1552,10 +1557,9 @@ class Command_line
script_options()
{ return this->script_options_; }
- // Get the version-script options: a convenience routine.
+ // Finalize the version-script options and return them.
const Version_script_info&
- version_script() const
- { return *this->script_options_.version_script_info(); }
+ version_script();
// Get the input files.
Input_arguments&