Browse Source

From Craig Silverstein: preliminary support for OPTION in linker script.

insight_6_8-branch
Ian Lance Taylor 19 years ago
parent
commit
195e7dc6c1
  1. 4
      gold/script-c.h
  2. 10
      gold/script.cc
  3. 9
      gold/yyscript.y

4
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

10
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); //!!
}

9
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:

Loading…
Cancel
Save