72 lines
1.8 KiB
Diff
72 lines
1.8 KiB
Diff
prevent need for /lib/cpp symlink
|
|
http://sourceware.org/git/?p=glibc.git;a=commit;h=bf9b740a
|
|
|
|
diff --git a/sunrpc/rpc_main.c b/sunrpc/rpc_main.c
|
|
index 06d951a..2103b10 100644
|
|
--- sunrpc/rpc_main.c
|
|
+++ sunrpc/rpc_main.c
|
|
@@ -75,12 +75,9 @@ struct commandline
|
|
|
|
static const char *cmdname;
|
|
|
|
-#define SVR4_CPP "/usr/ccs/lib/cpp"
|
|
-#define SUNOS_CPP "/lib/cpp"
|
|
-
|
|
static const char *svcclosetime = "120";
|
|
static int cppDefined; /* explicit path for C preprocessor */
|
|
-static const char *CPP = SUNOS_CPP;
|
|
+static const char *CPP = "/lib/cpp";
|
|
static const char CPPFLAGS[] = "-C";
|
|
static char *pathbuf;
|
|
static int cpp_pid;
|
|
@@ -327,23 +324,17 @@ find_cpp (void)
|
|
{
|
|
struct stat buf;
|
|
|
|
- if (stat (CPP, &buf) < 0)
|
|
- { /* /lib/cpp or explicit cpp does not exist */
|
|
- if (cppDefined)
|
|
- {
|
|
- fprintf (stderr, _ ("cannot find C preprocessor: %s \n"), CPP);
|
|
- crash ();
|
|
- }
|
|
- else
|
|
- { /* try the other one */
|
|
- CPP = SVR4_CPP;
|
|
- if (stat (CPP, &buf) < 0)
|
|
- { /* can't find any cpp */
|
|
- fputs (_ ("cannot find any C preprocessor (cpp)\n"), stdout);
|
|
- crash ();
|
|
- }
|
|
- }
|
|
+ if (stat (CPP, &buf) == 0)
|
|
+ return;
|
|
+
|
|
+ if (cppDefined) /* user specified cpp but it does not exist */
|
|
+ {
|
|
+ fprintf (stderr, _ ("cannot find C preprocessor: %s\n"), CPP);
|
|
+ crash ();
|
|
}
|
|
+
|
|
+ /* fall back to system CPP */
|
|
+ CPP = "cpp";
|
|
}
|
|
|
|
/*
|
|
@@ -374,8 +365,13 @@ open_input (const char *infile, const char *define)
|
|
close (1);
|
|
dup2 (pd[1], 1);
|
|
close (pd[0]);
|
|
- execv (arglist[0], (char **) arglist);
|
|
- perror ("execv");
|
|
+ execvp (arglist[0], (char **) arglist);
|
|
+ if (errno == ENOENT)
|
|
+ {
|
|
+ fprintf (stderr, _ ("cannot find C preprocessor: %s\n"), CPP);
|
|
+ exit (1);
|
|
+ }
|
|
+ perror ("execvp");
|
|
exit (1);
|
|
case -1:
|
|
perror ("fork");
|