Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/exec.cc')
-rw-r--r--winsup/cygwin/exec.cc11
1 files changed, 8 insertions, 3 deletions
diff --git a/winsup/cygwin/exec.cc b/winsup/cygwin/exec.cc
index 942b79d83..f0288dc93 100644
--- a/winsup/cygwin/exec.cc
+++ b/winsup/cygwin/exec.cc
@@ -8,6 +8,7 @@ This software is a copyrighted work licensed under the terms of the
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
details. */
+#define _execve __FOO_execve_
#include "winsup.h"
#include <unistd.h>
#include <stdlib.h>
@@ -20,12 +21,13 @@ details. */
#include "pinfo.h"
#include "environ.h"
#include "cygerrno.h"
+#undef _execve
/* This is called _execve and not execve because the real execve is defined
in libc/posix/execve.c. It calls us. */
extern "C" int
-_execve (const char *path, char *const argv[], char *const envp[])
+execve (const char *path, char *const argv[], char *const envp[])
{
static char *const empty_env[] = { 0 };
MALLOC_CHECK;
@@ -34,6 +36,9 @@ _execve (const char *path, char *const argv[], char *const envp[])
return spawnve (_P_OVERLAY, path, argv, envp);
}
+extern "C" int _execve (const char *, char *const [], char *const [])
+ __attribute__ ((alias ("execve")));
+
extern "C" int
execl (const char *path, const char *arg0, ...)
{
@@ -49,14 +54,14 @@ execl (const char *path, const char *arg0, ...)
while (argv[i++] != NULL);
va_end (args);
MALLOC_CHECK;
- return _execve (path, (char * const *) argv, cur_environ ());
+ return execve (path, (char * const *) argv, cur_environ ());
}
extern "C" int
execv (const char *path, char * const *argv)
{
MALLOC_CHECK;
- return _execve (path, (char * const *) argv, cur_environ ());
+ return execve (path, (char * const *) argv, cur_environ ());
}
extern "C" pid_t