* ld.h (parsing_defsym): Declare.
authorIan Lance Taylor <ian@airs.com>
Thu, 28 Sep 1995 19:18:07 +0000 (19:18 +0000)
committerIan Lance Taylor <ian@airs.com>
Thu, 28 Sep 1995 19:18:07 +0000 (19:18 +0000)
* 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
ld/lexsup.c

index 0601513..9155593 100644 (file)
@@ -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.
index a0a5ad0..96babdd 100644 (file)
@@ -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;