From afc06bb8287c9a5c81be4810fd0384e952dd19ea Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Tue, 24 Mar 2009 19:08:37 +0000 Subject: * 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. --- gold/script.cc | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'gold/script.cc') 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 -- cgit v1.1