Date: Tue, 22 Dec 1998 10:45:31 -0800 (PST) From: "Steven G. Kargl" <kargl@troutmask.apl.washington.edu> To: FreeBSD-gnats-submit@FreeBSD.ORG Subject: gnu/9175: [Patch] eliminate dead code in F77.c Message-ID: <199812221845.KAA50253@troutmask.apl.washington.edu>
index | next in thread | raw e-mail
>Number: 9175
>Category: gnu
>Synopsis: [Patch] eliminate dead code in F77.c
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Tue Dec 22 10:40:01 PST 1998
>Last-Modified:
>Originator: Steven G. Kargl
>Organization:
APL/UW
>Release: FreeBSD 3.0-CURRENT i386
>Environment:
FreeBSD 3.0-CURRENT
>Description:
>How-To-Repeat:
The enclosed patch removes dead code from src/gnu/cc/f77/f77.c
>Fix:
--- f77.c.orig Thu Dec 17 14:20:17 1998
+++ f77.c Tue Dec 22 10:36:46 1998
@@ -1,4 +1,4 @@
-/* f77 driver dervied from g++.c by Jonas Olsson */
+/* f77 driver derived from g++.c by Jonas Olsson */
/* converted from gcc-2.6.x(?) derivative to 2.7.2.1 by Peter Wemm */
/* G++ preliminary semantic processing for the compiler driver.
@@ -43,11 +43,7 @@
#endif
#include <stdio.h>
#include <sys/types.h>
-#if !defined(_WIN32)
#include <sys/file.h> /* May get R_OK, etc. on some systems. */
-#else
-#include <process.h>
-#endif
/* Defined to the name of the compiler; if using a cross compiler, the
Makefile should compile this file with the proper name
@@ -67,19 +63,6 @@
#define MATH_LIBRARY "-lm"
#endif
-/* On MSDOS, write temp files in current dir
- because there's no place else we can expect to use. */
-#ifdef __MSDOS__
-#ifndef P_tmpdir
-#define P_tmpdir "."
-#endif
-#ifndef R_OK
-#define R_OK 4
-#define W_OK 2
-#define X_OK 1
-#endif
-#endif
-
#ifndef VPROTO
#ifdef __STDC__
#define PVPROTO(ARGS) ARGS
@@ -109,7 +92,7 @@
/* Name with which this program was invoked. */
static char *programname;
-
+
char *
my_strerror(e)
int e;
@@ -131,7 +114,7 @@
return buffer;
#endif
}
-
+
#ifdef HAVE_VPRINTF
/* Output an error message and exit */
@@ -153,10 +136,6 @@
vfprintf (stderr, format, ap);
va_end (ap);
fprintf (stderr, "\n");
-#if 0
- /* XXX Not needed for g++ driver. */
- delete_temp_files ();
-#endif
exit (1);
}
@@ -197,10 +176,6 @@
char *msg, *arg1, *arg2;
{
error (msg, arg1, arg2);
-#if 0
- /* XXX Not needed for g++ driver. */
- delete_temp_files ();
-#endif
exit (1);
}
@@ -249,121 +224,6 @@
fatal (concat ("%s: ", my_strerror (errno), ""), name);
}
-#ifdef __MSDOS__
-/* This is the common prefix we use to make temp file names. */
-char *temp_filename;
-
-/* Length of the prefix. */
-int temp_filename_length;
-
-/* Compute a string to use as the base of all temporary file names. */
-static char *
-choose_temp_base_try (try, base)
-char *try;
-char *base;
-{
- char *rv;
- if (base)
- rv = base;
- else if (try == (char *)0)
- rv = 0;
- else if (access (try, R_OK | W_OK) != 0)
- rv = 0;
- else
- rv = try;
- return rv;
-}
-
-static void
-choose_temp_base ()
-{
- char *base = 0;
- int len;
-
- base = choose_temp_base_try (getenv ("TMPDIR"), base);
- base = choose_temp_base_try (getenv ("TMP"), base);
- base = choose_temp_base_try (getenv ("TEMP"), base);
-
-#ifdef P_tmpdir
- base = choose_temp_base_try (P_tmpdir, base);
-#endif
-
- base = choose_temp_base_try ("/usr/tmp", base);
- base = choose_temp_base_try ("/tmp", base);
-
- /* If all else fails, use the current directory! */
- if (base == (char *)0)
- base = "./";
-
- len = strlen (base);
- temp_filename = xmalloc (len + sizeof("/ccXXXXXX"));
- strcpy (temp_filename, base);
- if (len > 0 && temp_filename[len-1] != '/')
- temp_filename[len++] = '/';
- strcpy (temp_filename + len, "ccXXXXXX");
-
- mktemp (temp_filename);
- temp_filename_length = strlen (temp_filename);
- if (temp_filename_length == 0)
- abort ();
-}
-
-static void
-perror_exec (name)
- char *name;
-{
- char *s;
-
- if (errno < sys_nerr)
- s = concat ("installation problem, cannot exec %s: ",
- my_strerror( errno ), "");
- else
- s = "installation problem, cannot exec %s";
- error (s, name);
-}
-
-/* This is almost exactly what's in gcc.c:pexecute for MSDOS. */
-void
-run_dos (program, argv)
- char *program;
- char *argv[];
-{
- char *scmd, *rf;
- FILE *argfile;
- int i;
-
- choose_temp_base (); /* not in gcc.c */
-
- scmd = (char *) malloc (strlen (program) + strlen (temp_filename) + 10);
- rf = scmd + strlen (program) + 6;
- sprintf (scmd, "%s.exe @%s.gp", program, temp_filename);
-
- argfile = fopen (rf, "w");
- if (argfile == 0)
- pfatal_with_name (rf);
-
- for (i=1; argv[i]; i++)
- {
- char *cp;
- for (cp = argv[i]; *cp; cp++)
- {
- if (*cp == '"' || *cp == '\'' || *cp == '\\' || isspace (*cp))
- fputc ('\\', argfile);
- fputc (*cp, argfile);
- }
- fputc ('\n', argfile);
- }
- fclose (argfile);
-
- i = system (scmd);
-
- remove (rf);
-
- if (i == -1)
- perror_exec (program);
-}
-#endif /* __MSDOS__ */
-
int
main (argc, argv)
int argc;
@@ -414,7 +274,6 @@
if (argc == 1)
fatal ("No input files specified");
-#ifndef __MSDOS__
/* We do a little magic to find out where the main gcc executable
is. If they ran us as /usr/local/bin/f77, then we will look
for /usr/local/bin/gcc; similarly, if they just ran us as `f77',
@@ -426,7 +285,6 @@
* sizeof (char));
sprintf (gcc, "%s/%s", argv[0], GCC_NAME);
}
-#endif
args = (int *) malloc (argc * sizeof (int));
bzero (args, argc * sizeof (int));
@@ -518,21 +376,6 @@
--j;
saw_math = argv[i];
}
- /* ljo: We want .i and .c treated as C, so don't do anything */
-#if 0
- /* Wrap foo.c and foo.i files in a language specification to
- force the gcc compiler driver to run cc1plus on them. */
- if (args[i] & LANGSPEC)
- {
- int len = strlen (argv[i]);
- if (argv[i][len - 1] == 'i')
- arglist[j++] = "-xc++-cpp-output";
- else
- arglist[j++] = "-xc++";
- arglist[j++] = argv[i];
- arglist[j] = "-xnone";
- }
-#endif
}
/* Add `-lf2c' if we haven't already done so. */
@@ -560,17 +403,8 @@
fprintf (stderr, " %s", arglist[i]);
fprintf (stderr, "\n");
}
-#if !defined(OS2) && !defined (_WIN32)
-#ifdef __MSDOS__
- run_dos (gcc, arglist);
-#else /* !__MSDOS__ */
if (execvp (gcc, arglist) < 0)
pfatal_with_name (gcc);
-#endif /* __MSDOS__ */
-#else /* OS2 or _WIN32 */
- if (spawnvp (1, gcc, arglist) < 0)
- pfatal_with_name (gcc);
-#endif
return 0;
}
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199812221845.KAA50253>
