]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
posix: Add internal symbols for posix_spawn interface
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Wed, 12 Sep 2018 13:30:46 +0000 (10:30 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Wed, 24 Oct 2018 18:22:27 +0000 (15:22 -0300)
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.

12 files changed:
ChangeLog
include/spawn.h
posix/spawn.c
posix/spawn_faction_addclose.c
posix/spawn_faction_adddup2.c
posix/spawn_faction_destroy.c
posix/spawn_faction_init.c
posix/spawnattr_destroy.c
posix/spawnattr_init.c
posix/spawnattr_setdefault.c
posix/spawnattr_setflags.c
posix/spawnattr_setsigmask.c

index d6c5be93c0a210e9750b20327f95d648688a4eff..6253f85a54c994946762761e64d57c514dbc1974 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,28 @@
+2018-09-24  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
+
+       * 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.
+
 2018-10-24  Andreas Schwab  <schwab@suse.de>
 
        [BZ #18093]
index a6c7a8adc361927e456371c921fc43953b813886..7fdd965bd780f8de75a564d832885691eeaa3c24 100644 (file)
@@ -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  */
index 51f67b2755bd4949af68d181313220c39e3a1a7d..a82f1c84e299f0185828a984609d07b40365c376 100644 (file)
@@ -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)
index 21081e19b55db44cd3427bcb10313c135b31d7f8..e1fafe438cf15c9118a4804b19e94afb5bb95e09 100644 (file)
@@ -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)
index 363bc29ae502bd60438e844191955706fd28189c..371b1de3e6f1979a169eba75ee2a5f94d94d223e 100644 (file)
@@ -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)
index 46061ee3473d4475a1f1a2ef04fc8456662139b0..2a2de4e41d6bd6d0408da00682e00f6038e024b4 100644 (file)
@@ -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)
index ddb42e6a77ba41ecfe4074e2807997656a98c025..98432067c645021e652164d7f0535aa4addbf6ce 100644 (file)
@@ -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)
index 603e00fffefae2bfcb7c9421ea3dbec71e543f41..043386778588913a2ef8a17c752865c87feb422e 100644 (file)
@@ -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)
index bab464e62bdf7889946d6f18d85c93a50955fba9..4e1218ab44e3f7790727d99c81cfb6f3bab3e63a 100644 (file)
@@ -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)
index c77cda59be3dda20cc61c0530927d9a344e9b44e..174bcfa423dc5666d79c05e78d7247892171858d 100644 (file)
 
 /* 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)
index cf9a60181dc91ccdb1ac84f2188f62eef4a400df..0a42e94770224a9450b150ea37ab4f1698ac2ffd 100644 (file)
@@ -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)
index 7ae81ad47025db6f739410c9157d7e4460b716f9..12c0111af441dd1313a6e17779004be048a79558 100644 (file)
@@ -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)