From 630f4ac9c6e6a705230173f9cc5f675b36696660 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Thu, 28 Sep 1995 19:18:07 +0000 Subject: [PATCH] * 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. PR 8092. --- ld/ChangeLog | 12 ++++++++++++ ld/lexsup.c | 6 ++++++ 2 files changed, 18 insertions(+) diff --git a/ld/ChangeLog b/ld/ChangeLog index 0601513c485..9155593ee2b 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,5 +1,17 @@ Thu Sep 28 12:34:13 1995 Ian Lance Taylor + * 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 a0a5ad00a2c..96babdd30e2 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; -- 2.30.2