This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] rpcgen - fall back to looking for cpp in system path


On 26/07/12 22:34, Andreas Jaeger wrote:
> On Thursday, July 26, 2012 12:18:01 Allan McRae wrote:
>> rpcgen currently looks for the C preprocessor in /lib/cpp and
>> /usr/ccs/lib/cpp. This patch allows it to fall back to looking for the
>> system cpp when neither of these are found.
>>
>>
>> 2012-07-20	Allan McRae	<allan@archlinux.org>
>>
>> 	[BZ #14303]
>> 	* sunrpc/auth_des.c (find_cpp): Fall back to selecting system
>> 	cpp when no found in defined paths
>> 	* sunrpc/auth_des.c (open_input): Call cpp using execvp
> 
> You named the wrong filename in the changes entry. 

Not sure how I managed that...

> Please end sentences 
> with a "." and don't repeat the filename, so something like:
> 
> 	* sunrpc/rpc_main.c (find_cpp): Fall back to selecting system
>  	cpp when no found in defined paths.
> 	(open_input): Call cpp using execvp.
> 
> I think we can remove the search for /usr/ccs/lib/cpp - this is not 
> supported on an system glibc uses AFAIK. Could you make that additional 
> change, please?
> 

Done.


2012-07-26	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.


diff --git a/sunrpc/rpc_main.c b/sunrpc/rpc_main.c
index 3096455..093371c 100644
--- a/sunrpc/rpc_main.c
+++ b/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");


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]