Loading...
gen/FreeBSD/exec.c.patch /dev/null Libc-763.11
--- /dev/null
+++ Libc/Libc-763.11/gen/FreeBSD/exec.c.patch
@@ -0,0 +1,35 @@
+--- exec.c.orig	2010-07-06 16:02:22.000000000 -0700
++++ exec.c	2010-07-06 16:31:46.000000000 -0700
+@@ -48,7 +48,11 @@ __FBSDID("$FreeBSD: src/lib/libc/gen/exe
+ #include "un-namespace.h"
+ #include "libc_private.h"
+ 
+-extern char **environ;
++#include <crt_externs.h>
++#define environ (*_NSGetEnviron())
++
++int
++_execvpe(const char *name, char * const argv[], char * const envp[]);
+ 
+ int
+ execl(const char *name, const char *arg, ...)
+@@ -259,8 +263,9 @@ retry:		(void)_execve(bp, argv, envp);
+ 	}
+ 	if (eacces)
+ 		errno = EACCES;
+-	else
++	else if (cur)
+ 		errno = ENOENT;
++	/* else use existing errno from _execve */
+ done:
+ 	return (-1);
+ }
+@@ -271,7 +276,7 @@ execvP(const char *name, const char *pat
+ 	return execvPe(name, path, argv, environ);
+ }
+ 
+-int
++__private_extern__ int
+ _execvpe(const char *name, char * const argv[], char * const envp[])
+ {
+ 	const char *path;