diff options
author | Khem Raj <raj.khem@gmail.com> | 2013-06-30 18:37:45 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-07-02 22:23:49 +0100 |
commit | 0ab7cfc8e9bcc3477a089f15d4fd0384d1e7fe13 (patch) | |
tree | 761b8b6ec5f0859b473fa24ff5a6772eb2928e9d /meta/recipes-core/uclibc/uclibc-0.9.33/uclibc-execvpe.patch | |
parent | 0188270f8cce65c4fb5937e0688c0ff70b0f2142 (diff) | |
download | poky-0ab7cfc8e9bcc3477a089f15d4fd0384d1e7fe13.tar.gz |
uclibc: Remove 0.9.33 recipes
git recipes are stable enough and contains the fixes needed
to run with modern systems e.g. systemd etc. Drop 0.9.33
We already use git as default.
(From OE-Core rev: 05ae8f181e4e1699cf8e5d8bc20b3cbd4b532edf)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-core/uclibc/uclibc-0.9.33/uclibc-execvpe.patch')
-rw-r--r-- | meta/recipes-core/uclibc/uclibc-0.9.33/uclibc-execvpe.patch | 163 |
1 files changed, 0 insertions, 163 deletions
diff --git a/meta/recipes-core/uclibc/uclibc-0.9.33/uclibc-execvpe.patch b/meta/recipes-core/uclibc/uclibc-0.9.33/uclibc-execvpe.patch deleted file mode 100644 index fe191fc496..0000000000 --- a/meta/recipes-core/uclibc/uclibc-0.9.33/uclibc-execvpe.patch +++ /dev/null | |||
@@ -1,163 +0,0 @@ | |||
1 | From d20556adadea03bff0bba051172caf0314a35471 Mon Sep 17 00:00:00 2001 | ||
2 | From: Henning Heinold <heinold@inf.fu-berlin.de> | ||
3 | Date: Sat, 4 Jun 2011 21:23:15 +0200 | ||
4 | Subject: [PATCH 2/2] libc: add non standard execvpe function | ||
5 | |||
6 | |||
7 | Signed-off-by: Henning Heinold <heinold@inf.fu-berlin.de> | ||
8 | --- | ||
9 | include/unistd.h | 6 ++++++ | ||
10 | libc/unistd/exec.c | 38 +++++++++++++++++++++++++++++++++----- | ||
11 | libc/unistd/execvpe.c | 7 +++++++ | ||
12 | 3 files changed, 46 insertions(+), 5 deletions(-) | ||
13 | create mode 100644 libc/unistd/execvpe.c | ||
14 | |||
15 | |||
16 | Upstream-Status: Pending | ||
17 | |||
18 | diff --git a/include/unistd.h b/include/unistd.h | ||
19 | index 9568790..070e4f2 100644 | ||
20 | --- a/include/unistd.h | ||
21 | +++ b/include/unistd.h | ||
22 | @@ -557,6 +557,12 @@ extern int execvp (__const char *__file, char *__const __argv[]) | ||
23 | __THROW __nonnull ((1)); | ||
24 | libc_hidden_proto(execvp) | ||
25 | |||
26 | +/* Execute FILE, searching in the `PATH' environment variable if it contains | ||
27 | + no slashes, with arguments ARGV and environment from a pointer */ | ||
28 | +extern int execvpe (__const char *__file, char *__const __argv[], char *__const __envp[]) | ||
29 | + __THROW __nonnull ((1)); | ||
30 | +libc_hidden_proto(execvpe) | ||
31 | + | ||
32 | /* Execute FILE, searching in the `PATH' environment variable if | ||
33 | it contains no slashes, with all arguments after FILE until a | ||
34 | NULL pointer and environment from `environ'. */ | ||
35 | diff --git a/libc/unistd/exec.c b/libc/unistd/exec.c | ||
36 | index 7d24072..802a174 100644 | ||
37 | --- a/libc/unistd/exec.c | ||
38 | +++ b/libc/unistd/exec.c | ||
39 | @@ -32,6 +32,8 @@ | ||
40 | /**********************************************************************/ | ||
41 | #define EXEC_FUNC_COMMON 0 | ||
42 | #define EXEC_FUNC_EXECVP 1 | ||
43 | +#define EXEC_FUNC_EXECVPE 2 | ||
44 | + | ||
45 | #if defined(__ARCH_USE_MMU__) | ||
46 | |||
47 | /* We have an MMU, so use alloca() to grab space for buffers and arg lists. */ | ||
48 | @@ -58,6 +60,7 @@ | ||
49 | * execle(a) -> execve(-) | ||
50 | * execv(-) -> execve(-) | ||
51 | * execvp(a) -> execve(-) | ||
52 | + * execvpe(a) -> execve(-) | ||
53 | */ | ||
54 | |||
55 | # define EXEC_ALLOC_SIZE(VAR) /* nothing to do */ | ||
56 | @@ -219,15 +222,18 @@ libc_hidden_def(execlp) | ||
57 | |||
58 | #endif | ||
59 | /**********************************************************************/ | ||
60 | -#ifdef L_execvp | ||
61 | +#if defined (L_execvp) || defined(L_execvpe) | ||
62 | |||
63 | |||
64 | /* Use a default path that matches glibc behavior, since SUSv3 says | ||
65 | * this is implementation-defined. The default is current working dir, | ||
66 | * /bin, and then /usr/bin. */ | ||
67 | static const char default_path[] = ":/bin:/usr/bin"; | ||
68 | - | ||
69 | +#if defined (L_execvp) | ||
70 | int execvp(const char *path, char *const argv[]) | ||
71 | +#elif defined (L_execvpe) | ||
72 | +int execvpe(const char *path, char *const argv[], char *const envp[]) | ||
73 | +#endif | ||
74 | { | ||
75 | char *buf = NULL; | ||
76 | char *p; | ||
77 | @@ -245,7 +251,11 @@ int execvp(const char *path, char *const argv[]) | ||
78 | } | ||
79 | |||
80 | if (strchr(path, '/')) { | ||
81 | +#if defined (L_execvp) | ||
82 | execve(path, argv, __environ); | ||
83 | +#elif defined (L_execvpe) | ||
84 | + execve(path, argv, envp); | ||
85 | +#endif | ||
86 | if (errno == ENOEXEC) { | ||
87 | char **nargv; | ||
88 | EXEC_ALLOC_SIZE(size2) /* Do NOT add a semicolon! */ | ||
89 | @@ -254,11 +264,19 @@ int execvp(const char *path, char *const argv[]) | ||
90 | /* Need the dimension - 1. We omit counting the trailing | ||
91 | * NULL but we actually omit the first entry. */ | ||
92 | for (n=0 ; argv[n] ; n++) {} | ||
93 | +#if defined (L_execvp) | ||
94 | nargv = (char **) EXEC_ALLOC((n+2) * sizeof(char *), size2, EXEC_FUNC_EXECVP); | ||
95 | +#elif defined (L_execvpe) | ||
96 | + nargv = (char **) EXEC_ALLOC((n+2) * sizeof(char *), size2, EXEC_FUNC_EXECVPE); | ||
97 | +#endif | ||
98 | nargv[0] = argv[0]; | ||
99 | nargv[1] = (char *)path; | ||
100 | memcpy(nargv+2, argv+1, n*sizeof(char *)); | ||
101 | +#if defined (L_execvp) | ||
102 | execve("/bin/sh", nargv, __environ); | ||
103 | +#elif defined (L_execvpe) | ||
104 | + execve("/bin/sh", nargv, envp); | ||
105 | +#endif | ||
106 | EXEC_FREE(nargv, size2); | ||
107 | } | ||
108 | } else { | ||
109 | @@ -277,8 +295,11 @@ int execvp(const char *path, char *const argv[]) | ||
110 | return -1; | ||
111 | } | ||
112 | len = (FILENAME_MAX - 1) - plen; | ||
113 | - | ||
114 | +#if defined (L_execvp) | ||
115 | buf = EXEC_ALLOC(FILENAME_MAX, size, EXEC_FUNC_EXECVP); | ||
116 | +#elif defined (L_execvpe) | ||
117 | + buf = EXEC_ALLOC(FILENAME_MAX, size, EXEC_FUNC_EXECVPE); | ||
118 | +#endif | ||
119 | { | ||
120 | int seen_small = 0; | ||
121 | s0 = buf + len; | ||
122 | @@ -300,8 +321,11 @@ int execvp(const char *path, char *const argv[]) | ||
123 | s[plen-1] = '/'; | ||
124 | } | ||
125 | |||
126 | +#if defined (L_execvp) | ||
127 | execve(s, argv, __environ); | ||
128 | - | ||
129 | +#elif defined (L_execvpe) | ||
130 | + execve(s, argv, envp); | ||
131 | +#endif | ||
132 | seen_small = 1; | ||
133 | |||
134 | if (errno == ENOEXEC) { | ||
135 | @@ -325,7 +349,11 @@ int execvp(const char *path, char *const argv[]) | ||
136 | |||
137 | return -1; | ||
138 | } | ||
139 | +#if defined (L_execvp) | ||
140 | libc_hidden_def(execvp) | ||
141 | - | ||
142 | +#elif defined (L_execvpe) | ||
143 | +libc_hidden_def(execvpe) | ||
144 | #endif | ||
145 | + | ||
146 | +#endif /* #if defined (L_execvp) || defined(L_execvpe) */ | ||
147 | /**********************************************************************/ | ||
148 | diff --git a/libc/unistd/execvpe.c b/libc/unistd/execvpe.c | ||
149 | new file mode 100644 | ||
150 | index 0000000..5c1ce06 | ||
151 | --- /dev/null | ||
152 | +++ b/libc/unistd/execvpe.c | ||
153 | @@ -0,0 +1,7 @@ | ||
154 | +/* Copyright (C) 2011 Hennning Heinold <heinold@inf.fu-berlin.de> | ||
155 | + * | ||
156 | + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. | ||
157 | + */ | ||
158 | + | ||
159 | +#define L_execvpe | ||
160 | +#include "exec.c" | ||
161 | -- | ||
162 | 1.7.5.3 | ||
163 | |||