]> gcc.gnu.org Git - gcc.git/commitdiff
(output_file): New static var.
authorRichard Stallman <rms@gnu.org>
Thu, 18 Mar 1993 21:17:20 +0000 (21:17 +0000)
committerRichard Stallman <rms@gnu.org>
Thu, 18 Mar 1993 21:17:20 +0000 (21:17 +0000)
(main): Set output_file.
(my_exit): Delete output_file on failure.

From-SVN: r3777

gcc/collect2.c

index c8371dac847452a84e5c21f6adaf691ac48d98ca..37da651b4a8f808ed1e1f58b2000d86b8347bcc4 100644 (file)
@@ -188,6 +188,7 @@ static int   temp_filename_length;  /* Length of temp_filename */
 static char *temp_filename;            /* Base of temp filenames */
 static char *c_file;                   /* <xxx>.c for constructor/destructor list. */
 static char *o_file;                   /* <xxx>.o for constructor/destructor list. */
+static char *output_file;              /* Output file for ld.  */
 static char *nm_file_name;             /* pathname of nm */
 static char *strip_file_name;          /* pathname of strip */
 
@@ -261,6 +262,9 @@ my_exit (status)
   if (o_file != 0 && o_file[0])
     maybe_unlink (o_file);
 
+  if (status != 0 && output_file != 0 && output_file[0])
+    maybe_unlink (output_file);
+
   exit (status);
 }
 
@@ -696,7 +700,6 @@ main (argc, argv)
   char *full_strip_suffix = strip_suffix;
   char *gstrip_suffix  = "gstrip";
   char *full_gstrip_suffix = gstrip_suffix;
-  char *outfile                = "a.out";
   char *arg;
   FILE *outf;
   char *ld_file_name;
@@ -720,6 +723,8 @@ main (argc, argv)
 
   our_file_name = argv[0];
 
+  output_file = "a.out";
+
   /* We must check that we do not call ourselves in an infinite
      recursion loop. We save the name used for us in the COLLECT_NAME
      environment variable, first getting the previous value.
@@ -933,7 +938,7 @@ main (argc, argv)
              break;
 
            case 'o':
-             outfile = (arg[2] == '\0') ? argv[1] : &arg[2];
+             output_file = (arg[2] == '\0') ? argv[1] : &arg[2];
              break;
 
            case 'r':
@@ -1033,7 +1038,7 @@ main (argc, argv)
   if (rflag)
     return 0;
 
-  scan_prog_file (outfile, PASS_FIRST);
+  scan_prog_file (output_file, PASS_FIRST);
 
   if (debug)
     {
@@ -1048,7 +1053,7 @@ main (argc, argv)
        {
          char **strip_argv = (char **) xcalloc (sizeof (char *), 3);
          strip_argv[0] = strip_file_name;
-         strip_argv[1] = outfile;
+         strip_argv[1] = output_file;
          strip_argv[2] = (char *) 0;
          fork_execute ("strip", strip_argv);
        }
@@ -1066,7 +1071,8 @@ main (argc, argv)
 
   if (debug)
     {
-      fprintf (stderr, "\n========== outfile = %s, c_file = %s\n", outfile, c_file);
+      fprintf (stderr, "\n========== output_file = %s, c_file = %s\n",
+              output_file, c_file);
       write_c_file (stderr, "stderr");
       fprintf (stderr, "========== end of c_file\n\n");
     }
@@ -1079,7 +1085,7 @@ main (argc, argv)
 
   /* Let scan_prog_file do any final mods (OSF/rose needs this for
      constructors/destructors in shared libraries.  */
-  scan_prog_file (outfile, PASS_SECOND);
+  scan_prog_file (output_file, PASS_SECOND);
 
   maybe_unlink (c_file);
   maybe_unlink (o_file);
This page took 0.067961 seconds and 5 git commands to generate.