From Craig Silverstein: preliminary support for OPTION in linker script.
This commit is contained in:
parent
df2a60d01d
commit
195e7dc6c1
@ -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
|
||||
|
@ -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); //!!
|
||||
}
|
||||
|
@ -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…
x
Reference in New Issue
Block a user