Skip to content

Commit

Permalink
rpcgen - fall back to looking for cpp in system path
Browse files Browse the repository at this point in the history
Fall back to the system cpp when /lib/cpp is not present. Removes
searching for /usr/ccs/lib/cpp which is not supported on any system that
uses glibc.
  • Loading branch information
Allan McRae authored and Mike Frysinger committed Aug 7, 2012
1 parent 93df14e commit bf9b740
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 22 deletions.
9 changes: 9 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
2012-08-07 Allan McRae <allan@archlinux.org>

[BZ #14303]
* sunrpc/rpc_main.c (SVR4_CPP): Remove.
(SUNOS_CPP): Likewise.
(find_cpp): Fall back to selecting system cpp when /lib/cpp is
not found.
(open_input): Call CPP using execvp.

2012-08-07 Joseph Myers <joseph@codesourcery.com>

* sysdeps/unix/sysv/linux/kernel-features.h
Expand Down
40 changes: 18 additions & 22 deletions sunrpc/rpc_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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";
}

/*
Expand Down Expand Up @@ -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");
Expand Down

0 comments on commit bf9b740

Please sign in to comment.