This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH 1/3] posix: Add internal symbols for posix_spawn interface
- From: Adhemerval Zanella <adhemerval dot zanella at linaro dot org>
- To: libc-alpha at sourceware dot org
- Date: Wed, 17 Oct 2018 14:11:39 -0300
- Subject: Re: [PATCH 1/3] posix: Add internal symbols for posix_spawn interface
- References: <20180915151622.17789-1-adhemerval.zanella@linaro.org>
Ping.
On 15/09/2018 12:16, Adhemerval Zanella wrote:
> This patch adds internal hidden definition for mostly of the posix_spawn
> function so it can be used internally on both popen and system
> implementations.
>
> Checked on x86_64-linux-gnu.
>
> * include/spawn.h (__posix_spawn, posix_spawn_file_actions_addclose,
> __posix_spawn_file_actions_adddup2, __posix_spawn_file_actions_destroy,
> __posix_spawn_file_actions_init, __posix_spawnattr_init,
> __posix_spawnattr_destroy, __posix_spawnattr_setflags,
> __posix_spawnattr_setsigdefault, __posix_spawnattr_setsigmask): New
> prototype.
> * posix/spawn.c (__posix_spawn): Add libc_hidden_def.
> * posix/spawn_faction_addclose.c
> (__posix_spawn_file_actions_addclose): Add hidden definition.
> * posix/spawn_faction_adddup2.c
> (__posix_spawn_file_actions_adddup2): Likewise.
> * posix/spawn_faction_destroy.c
> (__posix_spawn_file_actions_destroy): Likewise.
> * posix/spawn_faction_init.c (__posix_spawn_file_actions_init):
> Likewise.
> * posix/spawnattr_destroy.c (__posix_spawnattr_destroy): Likewise.
> * posix/spawnattr_init.c (__posix_spawnattr_init): Likewise.
> * posix/spawnattr_setdefault.c (__posix_spawnattr_setsigdefault):
> Likewise.
> * posix/spawnattr_setflags.c (__posix_spawnattr_setflags): Likewise.
> * posix/spawnattr_setsigmask.c (__posix_spawnattr_setsigmask):
> Likewise.
> ---
> ChangeLog | 25 ++++++++++++++++++++++++
> include/spawn.h | 35 ++++++++++++++++++++++++++++++++++
> posix/spawn.c | 1 +
> posix/spawn_faction_addclose.c | 6 ++++--
> posix/spawn_faction_adddup2.c | 6 ++++--
> posix/spawn_faction_destroy.c | 4 +++-
> posix/spawn_faction_init.c | 3 ++-
> posix/spawnattr_destroy.c | 3 ++-
> posix/spawnattr_init.c | 3 ++-
> posix/spawnattr_setdefault.c | 5 +++--
> posix/spawnattr_setflags.c | 3 ++-
> posix/spawnattr_setsigmask.c | 3 ++-
> 12 files changed, 85 insertions(+), 12 deletions(-)
>
> diff --git a/include/spawn.h b/include/spawn.h
> index a6c7a8adc3..7fdd965bd7 100644
> --- a/include/spawn.h
> +++ b/include/spawn.h
> @@ -1 +1,36 @@
> +#ifndef _SPAWN_H
> #include <posix/spawn.h>
> +
> +# ifndef _ISOMAC
> +__typeof (posix_spawn) __posix_spawn;
> +libc_hidden_proto (__posix_spawn)
> +
> +__typeof (posix_spawn_file_actions_addclose)
> + __posix_spawn_file_actions_addclose attribute_hidden;
> +
> +__typeof (posix_spawn_file_actions_adddup2)
> + __posix_spawn_file_actions_adddup2 attribute_hidden;
> +
> +__typeof (posix_spawn_file_actions_destroy)
> + __posix_spawn_file_actions_destroy attribute_hidden;
> +
> +__typeof (posix_spawn_file_actions_init) __posix_spawn_file_actions_init
> + attribute_hidden;
> +
> +__typeof (posix_spawnattr_init) __posix_spawnattr_init
> + attribute_hidden;
> +
> +__typeof (posix_spawnattr_destroy) __posix_spawnattr_destroy
> + attribute_hidden;
> +
> +__typeof (posix_spawnattr_setflags) __posix_spawnattr_setflags
> + attribute_hidden;
> +
> +__typeof (posix_spawnattr_setsigdefault) __posix_spawnattr_setsigdefault
> + attribute_hidden;
> +
> +__typeof (posix_spawnattr_setsigmask) __posix_spawnattr_setsigmask
> + attribute_hidden;
> +
> +# endif /* !_ISOMAC */
> +#endif /* spawn.h */
> diff --git a/posix/spawn.c b/posix/spawn.c
> index 51f67b2755..a82f1c84e2 100644
> --- a/posix/spawn.c
> +++ b/posix/spawn.c
> @@ -30,6 +30,7 @@ __posix_spawn (pid_t *pid, const char *path,
> return __spawni (pid, path, file_actions, attrp, argv, envp, 0);
> }
> versioned_symbol (libc, __posix_spawn, posix_spawn, GLIBC_2_15);
> +libc_hidden_def (__posix_spawn)
>
>
> #if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_15)
> diff --git a/posix/spawn_faction_addclose.c b/posix/spawn_faction_addclose.c
> index 21081e19b5..e1fafe438c 100644
> --- a/posix/spawn_faction_addclose.c
> +++ b/posix/spawn_faction_addclose.c
> @@ -24,8 +24,8 @@
> /* Add an action to FILE-ACTIONS which tells the implementation to call
> `close' for the given file descriptor during the `spawn' call. */
> int
> -posix_spawn_file_actions_addclose (posix_spawn_file_actions_t *file_actions,
> - int fd)
> +__posix_spawn_file_actions_addclose (posix_spawn_file_actions_t *file_actions,
> + int fd)
> {
> struct __spawn_action *rec;
>
> @@ -48,3 +48,5 @@ posix_spawn_file_actions_addclose (posix_spawn_file_actions_t *file_actions,
>
> return 0;
> }
> +weak_alias (__posix_spawn_file_actions_addclose,
> + posix_spawn_file_actions_addclose)
> diff --git a/posix/spawn_faction_adddup2.c b/posix/spawn_faction_adddup2.c
> index 363bc29ae5..371b1de3e6 100644
> --- a/posix/spawn_faction_adddup2.c
> +++ b/posix/spawn_faction_adddup2.c
> @@ -24,8 +24,8 @@
> /* Add an action to FILE-ACTIONS which tells the implementation to call
> `dup2' for the given file descriptors during the `spawn' call. */
> int
> -posix_spawn_file_actions_adddup2 (posix_spawn_file_actions_t *file_actions,
> - int fd, int newfd)
> +__posix_spawn_file_actions_adddup2 (posix_spawn_file_actions_t *file_actions,
> + int fd, int newfd)
> {
> struct __spawn_action *rec;
>
> @@ -49,3 +49,5 @@ posix_spawn_file_actions_adddup2 (posix_spawn_file_actions_t *file_actions,
>
> return 0;
> }
> +weak_alias (__posix_spawn_file_actions_adddup2,
> + posix_spawn_file_actions_adddup2)
> diff --git a/posix/spawn_faction_destroy.c b/posix/spawn_faction_destroy.c
> index 46061ee347..2a2de4e41d 100644
> --- a/posix/spawn_faction_destroy.c
> +++ b/posix/spawn_faction_destroy.c
> @@ -22,7 +22,7 @@
>
> /* Deallocate the file actions. */
> int
> -posix_spawn_file_actions_destroy (posix_spawn_file_actions_t *file_actions)
> +__posix_spawn_file_actions_destroy (posix_spawn_file_actions_t *file_actions)
> {
> /* Free the paths in the open actions. */
> for (int i = 0; i < file_actions->__used; ++i)
> @@ -44,3 +44,5 @@ posix_spawn_file_actions_destroy (posix_spawn_file_actions_t *file_actions)
> free (file_actions->__actions);
> return 0;
> }
> +weak_alias (__posix_spawn_file_actions_destroy,
> + posix_spawn_file_actions_destroy)
> diff --git a/posix/spawn_faction_init.c b/posix/spawn_faction_init.c
> index ddb42e6a77..98432067c6 100644
> --- a/posix/spawn_faction_init.c
> +++ b/posix/spawn_faction_init.c
> @@ -45,9 +45,10 @@ __posix_spawn_file_actions_realloc (posix_spawn_file_actions_t *file_actions)
>
> /* Initialize data structure for file attribute for `spawn' call. */
> int
> -posix_spawn_file_actions_init (posix_spawn_file_actions_t *file_actions)
> +__posix_spawn_file_actions_init (posix_spawn_file_actions_t *file_actions)
> {
> /* Simply clear all the elements. */
> memset (file_actions, '\0', sizeof (*file_actions));
> return 0;
> }
> +weak_alias (__posix_spawn_file_actions_init, posix_spawn_file_actions_init)
> diff --git a/posix/spawnattr_destroy.c b/posix/spawnattr_destroy.c
> index 603e00fffe..0433867785 100644
> --- a/posix/spawnattr_destroy.c
> +++ b/posix/spawnattr_destroy.c
> @@ -19,8 +19,9 @@
>
> /* Initialize data structure for file attribute for `spawn' call. */
> int
> -posix_spawnattr_destroy (posix_spawnattr_t *attr)
> +__posix_spawnattr_destroy (posix_spawnattr_t *attr)
> {
> /* Nothing to do in the moment. */
> return 0;
> }
> +weak_alias (__posix_spawnattr_destroy, posix_spawnattr_destroy)
> diff --git a/posix/spawnattr_init.c b/posix/spawnattr_init.c
> index bab464e62b..4e1218ab44 100644
> --- a/posix/spawnattr_init.c
> +++ b/posix/spawnattr_init.c
> @@ -20,7 +20,7 @@
>
> /* Initialize data structure for file attribute for `spawn' call. */
> int
> -posix_spawnattr_init (posix_spawnattr_t *attr)
> +__posix_spawnattr_init (posix_spawnattr_t *attr)
> {
> /* All elements have to be initialized to the default values which
> is generally zero. */
> @@ -28,3 +28,4 @@ posix_spawnattr_init (posix_spawnattr_t *attr)
>
> return 0;
> }
> +weak_alias (__posix_spawnattr_init, posix_spawnattr_init)
> diff --git a/posix/spawnattr_setdefault.c b/posix/spawnattr_setdefault.c
> index c77cda59be..174bcfa423 100644
> --- a/posix/spawnattr_setdefault.c
> +++ b/posix/spawnattr_setdefault.c
> @@ -20,11 +20,12 @@
>
> /* Set signal mask for signals with default handling in ATTR to SIGDEFAULT. */
> int
> -posix_spawnattr_setsigdefault (posix_spawnattr_t *attr,
> - const sigset_t *sigdefault)
> +__posix_spawnattr_setsigdefault (posix_spawnattr_t *attr,
> + const sigset_t *sigdefault)
> {
> /* Copy the sigset_t data to the user buffer. */
> memcpy (&attr->__sd, sigdefault, sizeof (sigset_t));
>
> return 0;
> }
> +weak_alias (__posix_spawnattr_setsigdefault, posix_spawnattr_setsigdefault)
> diff --git a/posix/spawnattr_setflags.c b/posix/spawnattr_setflags.c
> index cf9a60181d..0a42e94770 100644
> --- a/posix/spawnattr_setflags.c
> +++ b/posix/spawnattr_setflags.c
> @@ -30,7 +30,7 @@
>
> /* Store flags in the attribute structure. */
> int
> -posix_spawnattr_setflags (posix_spawnattr_t *attr, short int flags)
> +__posix_spawnattr_setflags (posix_spawnattr_t *attr, short int flags)
> {
> /* Check no invalid bits are set. */
> if (flags & ~ALL_FLAGS)
> @@ -41,3 +41,4 @@ posix_spawnattr_setflags (posix_spawnattr_t *attr, short int flags)
>
> return 0;
> }
> +weak_alias (__posix_spawnattr_setflags, posix_spawnattr_setflags)
> diff --git a/posix/spawnattr_setsigmask.c b/posix/spawnattr_setsigmask.c
> index 7ae81ad470..12c0111af4 100644
> --- a/posix/spawnattr_setsigmask.c
> +++ b/posix/spawnattr_setsigmask.c
> @@ -20,7 +20,7 @@
>
> /* Set signal mask for the new process in ATTR to SIGMASK. */
> int
> -posix_spawnattr_setsigmask (posix_spawnattr_t *attr,
> +__posix_spawnattr_setsigmask (posix_spawnattr_t *attr,
> const sigset_t *sigmask)
> {
> /* Copy the sigset_t data to the user buffer. */
> @@ -28,3 +28,4 @@ posix_spawnattr_setsigmask (posix_spawnattr_t *attr,
>
> return 0;
> }
> +weak_alias (__posix_spawnattr_setsigmask, posix_spawnattr_setsigmask)
>