diff options
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 12 | ||||
-rw-r--r-- | ld/lexsup.c | 6 |
2 files changed, 18 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 0601513..9155593 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,5 +1,17 @@ Thu Sep 28 12:34:13 1995 Ian Lance Taylor <ian@cygnus.com> + * ld.h (parsing_defsym): Declare. + * ldlex.h (lex_string): Declare. + * ldlex.l (lex_string): Define. + * lexsup.c (parsing_defsym): Define. + (parse_args): In OPTION_DEFSYM case, set lex_string before calling + lex_redirect, and clear it after calling yyparse. Set + parsing_defsym around call to yyparse. + * ldmain.c (main): Set lex_string before calling lex_redirect, and + clear it after calling yyparse. + * ldmisc.c (vfinfo): For %S, handle --defsym arguments and built + in linker scripts correctly. + * scripttempl/sparccoff.sc: Add .ctors/.dtors handling like other COFF targets, allowing for the leading underscore used on SPARC COFF. diff --git a/ld/lexsup.c b/ld/lexsup.c index a0a5ad0..96babdd 100644 --- a/ld/lexsup.c +++ b/ld/lexsup.c @@ -47,6 +47,8 @@ unsigned long strtoul (); static void set_default_dirlist PARAMS ((char *dirlist_ptr)); static void set_section_start PARAMS ((char *sect, char *valstr)); +/* Non-zero if we are processing a --defsym from the command line. */ +int parsing_defsym = 0; void parse_args (argc, argv) @@ -260,9 +262,13 @@ parse_args (argc, argv) command_line.force_common_definition = true; break; case OPTION_DEFSYM: + lex_string = optarg; lex_redirect (optarg); parser_input = input_defsym; + parsing_defsym = 1; yyparse (); + parsing_defsym = 0; + lex_string = NULL; break; case OPTION_DYNAMIC_LINKER: command_line.interpreter = optarg; |