Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAL3m8eBQWY-dbxy1M97HSmDcWBB3Vu7cztQ1fd3KNUqchyiZ=Q@mail.gmail.com>
Date: Tue, 15 Apr 2014 23:15:14 -0500
From: M Farkas-Dyck <strake888@...il.com>
To: musl@...ts.openwall.com
Subject: Re: [patch] expose execvpe under _(GNU|BSD)_SOURCE

On 15/04/2014, Rich Felker <dalias@...c.org> wrote:
> I don't really object to exposing it under _BSD_SOURCE, but is there
> precedent for this?

Yes: http://www.openbsd.org/cgi-bin/man.cgi?query=execvpe

> Testing feature test macros with #ifdef in the libc source files is
> not meaningful, and doesn't respect the namespace. There are two
> possible right ways to do this: either a separate source file (so it
> can't affect the namespace), or a weak alias from __execvpe to
> execvpe. The latter would be preferable here since it would have zero
> increase to code size.

---
 include/unistd.h     | 3 +++
 src/process/execvp.c | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/include/unistd.h b/include/unistd.h
index bf10a6d..342ab68 100644
--- a/include/unistd.h
+++ b/include/unistd.h
@@ -88,6 +88,9 @@ int execle(const char *, const char *, ...);
 int execl(const char *, const char *, ...);
 int execvp(const char *, char *const []);
 int execlp(const char *, const char *, ...);
+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
+int execvpe(const char *, char *const [], char *const []);
+#endif
 int fexecve(int, char *const [], char *const []);
 _Noreturn void _exit(int);

diff --git a/src/process/execvp.c b/src/process/execvp.c
index 0a33e42..5c486b1 100644
--- a/src/process/execvp.c
+++ b/src/process/execvp.c
@@ -47,3 +47,5 @@ int execvp(const char *file, char *const argv[])
 {
 	return __execvpe(file, argv, __environ);
 }
+
+weak_alias(__execvpe, execvpe);
-- 
1.8.5.2

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.