aboutsummaryrefslogtreecommitdiff
path: root/gold/script.cc
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>2009-03-24 19:08:37 +0000
committerIan Lance Taylor <ian@airs.com>2009-03-24 19:08:37 +0000
commitafc06bb8287c9a5c81be4810fd0384e952dd19ea (patch)
treec3a8c77b95478d08bd7a76537647b7cea712cae9 /gold/script.cc
parentf6060a4d43e06a6ca5dd201b069ab9f29aae1b81 (diff)
downloadfsf-binutils-gdb-afc06bb8287c9a5c81be4810fd0384e952dd19ea.zip
fsf-binutils-gdb-afc06bb8287c9a5c81be4810fd0384e952dd19ea.tar.gz
fsf-binutils-gdb-afc06bb8287c9a5c81be4810fd0384e952dd19ea.tar.bz2
* yyscript.y (file_cmd): Recognize EXTERN.
(extern_name_list, extern_name_list_body): New nonterminals. * script.cc (script_add_extern): Define. * script-c.h (script_add_extern): Declare.
Diffstat (limited to 'gold/script.cc')
-rw-r--r--gold/script.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/gold/script.cc b/gold/script.cc
index 44e43f7..30b4e3c 100644
--- a/gold/script.cc
+++ b/gold/script.cc
@@ -2119,6 +2119,19 @@ yyerror(void* closurev, const char* message)
closure->charpos(), message);
}
+// Called by the bison parser to add an external symbol to the link.
+
+extern "C" void
+script_add_extern(void* closurev, const char* name, size_t length)
+{
+ // We treat exactly like -u NAME. FIXME: If it seems useful, we
+ // could handle this after the command line has been read, by adding
+ // entries to the symbol table directly.
+ std::string arg("--undefined=");
+ arg.append(name, length);
+ script_parse_option(closurev, arg.c_str(), arg.size());
+}
+
// Called by the bison parser to add a file to the link.
extern "C" void