diff options
author | Ian Lance Taylor <iant@google.com> | 2007-10-26 22:16:06 +0000 |
---|---|---|
committer | Ian Lance Taylor <iant@google.com> | 2007-10-26 22:16:06 +0000 |
commit | 195e7dc6c1d9ed2d3ea5dca8c7798799383b7341 (patch) | |
tree | 9ce09d7a35a0625e4c7451a60db30fa9d44d24f2 | |
parent | df2a60d01de0957f7f63592260083c28293e62f8 (diff) | |
download | gdb-195e7dc6c1d9ed2d3ea5dca8c7798799383b7341.zip gdb-195e7dc6c1d9ed2d3ea5dca8c7798799383b7341.tar.gz gdb-195e7dc6c1d9ed2d3ea5dca8c7798799383b7341.tar.bz2 |
From Craig Silverstein: preliminary support for OPTION in linker script.
-rw-r--r-- | gold/script-c.h | 4 | ||||
-rw-r--r-- | gold/script.cc | 10 | ||||
-rw-r--r-- | gold/yyscript.y | 9 |
3 files changed, 23 insertions, 0 deletions
diff --git a/gold/script-c.h b/gold/script-c.h index cb0ef8e..1214800 100644 --- a/gold/script-c.h +++ b/gold/script-c.h @@ -66,6 +66,10 @@ script_start_as_needed(void* closure); extern void script_end_as_needed(void* closure); +/* Called by the bison parser to parse an OPTION. */ +extern void +script_parse_option(void* closure, const char*); + #ifdef __cplusplus } #endif diff --git a/gold/script.cc b/gold/script.cc index 2cea0c8..08be65f 100644 --- a/gold/script.cc +++ b/gold/script.cc @@ -1045,6 +1045,7 @@ Keyword_to_parsecode::keyword_parsecodes_[] = { "NOLOAD", NOLOAD }, { "ONLY_IF_RO", ONLY_IF_RO }, { "ONLY_IF_RW", ONLY_IF_RW }, + { "OPTION", OPTION }, { "ORIGIN", ORIGIN }, { "OUTPUT", OUTPUT }, { "OUTPUT_ARCH", OUTPUT_ARCH }, @@ -1257,3 +1258,12 @@ script_end_as_needed(void* closurev) Parser_closure* closure = static_cast<Parser_closure*>(closurev); closure->position_dependent_options().clear_as_needed(); } + +// Called by the bison parser to parse an OPTION. + +extern "C" void +script_parse_option(void* closurev, const char* option) +{ + Parser_closure* closure = static_cast<Parser_closure*>(closurev); + printf("%s: Saw option %s\n", closure->filename(), option); //!! +} diff --git a/gold/yyscript.y b/gold/yyscript.y index b78c09b..3250e8e 100644 --- a/gold/yyscript.y +++ b/gold/yyscript.y @@ -151,6 +151,13 @@ %token TRUNCATE %token VERSIONK /* VERSION */ +/* Keywords, part 2. These are keywords that are unique to gold, + and not present in the old GNU linker. As before, unless the + comments say otherwise, the keyword is recognized as the token + name in upper case. */ + +%token OPTION + %% file_list: @@ -164,6 +171,8 @@ file_cmd: { script_start_group(closure); } '(' input_list ')' { script_end_group(closure); } + | OPTION '(' STRING ')' + { script_parse_option(closure, $3); } ; input_list: |