]> Savannah Git Hosting - gnulib.git/commitdiff
Resolve conflicts for functions introduced in Android API level 28.
authorBruno Haible <bruno@clisp.org>
Sun, 22 Jan 2023 13:41:07 +0000 (14:41 +0100)
committerBruno Haible <bruno@clisp.org>
Sun, 22 Jan 2023 14:57:22 +0000 (15:57 +0100)
* m4/spawn_h.m4 (gl_HAVE_POSIX_SPAWN): Conditionally set
REPLACE_POSIX_SPAWN.
* lib/spawn.in.h: Adapt logic for defining the POSIX_SPAWN_* constants.
(posix_spawn, posix_spawnp, posix_spawnattr_init,
posix_spawnattr_destroy, posix_spawnattr_getsigdefault,
posix_spawnattr_setsigdefault, posix_spawnattr_getsigmask,
posix_spawnattr_setsigmask, posix_spawnattr_getflags,
posix_spawnattr_setflags, posix_spawnattr_getpgroup,
posix_spawnattr_setpgroup, posix_spawn_file_actions_init,
posix_spawn_file_actions_destroy, posix_spawn_file_actions_addchdir,
posix_spawn_file_actions_addfchdir): Disable _GL_CXXALIASWARN invocation
on non-glibc systems.

ChangeLog
lib/spawn.in.h
m4/spawn_h.m4

index 152b3399faf6c6e0fee89d066de8d48bcb78ff77..5d8512490456dd2609b07f7a762039dec9ab99c5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,19 @@
 
        Resolve conflicts for functions introduced in Android API level 28.
 
+       * m4/spawn_h.m4 (gl_HAVE_POSIX_SPAWN): Conditionally set
+       REPLACE_POSIX_SPAWN.
+       * lib/spawn.in.h: Adapt logic for defining the POSIX_SPAWN_* constants.
+       (posix_spawn, posix_spawnp, posix_spawnattr_init,
+       posix_spawnattr_destroy, posix_spawnattr_getsigdefault,
+       posix_spawnattr_setsigdefault, posix_spawnattr_getsigmask,
+       posix_spawnattr_setsigmask, posix_spawnattr_getflags,
+       posix_spawnattr_setflags, posix_spawnattr_getpgroup,
+       posix_spawnattr_setpgroup, posix_spawn_file_actions_init,
+       posix_spawn_file_actions_destroy, posix_spawn_file_actions_addchdir,
+       posix_spawn_file_actions_addfchdir): Disable _GL_CXXALIASWARN invocation
+       on non-glibc systems.
+
        * m4/glob.m4 (gl_GLOB): Conditionally set REPLACE_GLOB.
        * lib/glob.in.h (glob): Disable _GL_CXXALIASWARN invocation on non-glibc
        systems.
index 38cdf09912c3b4ed56db04be93c2dd2fb9d2dd57..958464a7d236b46d652228621e1fa0a4d61a87c7 100644 (file)
@@ -144,26 +144,26 @@ typedef struct
 
 /* Flags to be set in the 'posix_spawnattr_t'.  */
 #if @HAVE_POSIX_SPAWN@
+# if !@REPLACE_POSIX_SPAWN@
 /* Use the values from the system, but provide the missing ones.  */
-# ifndef POSIX_SPAWN_SETSCHEDPARAM
-#  define POSIX_SPAWN_SETSCHEDPARAM 0
-# endif
-# ifndef POSIX_SPAWN_SETSCHEDULER
-#  define POSIX_SPAWN_SETSCHEDULER 0
-# endif
-#else
-# if @REPLACE_POSIX_SPAWN@
+#  ifndef POSIX_SPAWN_SETSCHEDPARAM
+#   define POSIX_SPAWN_SETSCHEDPARAM 0
+#  endif
+#  ifndef POSIX_SPAWN_SETSCHEDULER
+#   define POSIX_SPAWN_SETSCHEDULER 0
+#  endif
+# else /* @REPLACE_POSIX_SPAWN@ */
 /* Use the values from the system, for better compatibility.  */
 /* But this implementation does not support AIX extensions.  */
-#  undef POSIX_SPAWN_FORK_HANDLERS
-# else
-#  define POSIX_SPAWN_RESETIDS           0x01
-#  define POSIX_SPAWN_SETPGROUP          0x02
-#  define POSIX_SPAWN_SETSIGDEF          0x04
-#  define POSIX_SPAWN_SETSIGMASK         0x08
-#  define POSIX_SPAWN_SETSCHEDPARAM      0x10
-#  define POSIX_SPAWN_SETSCHEDULER       0x20
+#   undef POSIX_SPAWN_FORK_HANDLERS
 # endif
+#else /* !@HAVE_POSIX_SPAWN@ */
+# define POSIX_SPAWN_RESETIDS           0x01
+# define POSIX_SPAWN_SETPGROUP          0x02
+# define POSIX_SPAWN_SETSIGDEF          0x04
+# define POSIX_SPAWN_SETSIGMASK         0x08
+# define POSIX_SPAWN_SETSCHEDPARAM      0x10
+# define POSIX_SPAWN_SETSCHEDULER       0x20
 #endif
 /* A GNU extension.  Use the next free bit position.  */
 #ifndef POSIX_SPAWN_USEVFORK
@@ -234,7 +234,9 @@ _GL_CXXALIAS_SYS (posix_spawn, int,
                    char *const argv[_Restrict_arr_],
                    char *const envp[_Restrict_arr_]));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (posix_spawn);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawn
 # if HAVE_RAW_DECL_POSIX_SPAWN
@@ -278,7 +280,9 @@ _GL_CXXALIAS_SYS (posix_spawnp, int,
                    const posix_spawnattr_t *__attrp,
                    char *const argv[], char *const envp[]));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (posix_spawnp);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawnp
 # if HAVE_RAW_DECL_POSIX_SPAWNP
@@ -304,7 +308,9 @@ _GL_FUNCDECL_SYS (posix_spawnattr_init, int, (posix_spawnattr_t *__attr)
 #  endif
 _GL_CXXALIAS_SYS (posix_spawnattr_init, int, (posix_spawnattr_t *__attr));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (posix_spawnattr_init);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawnattr_init
 # if HAVE_RAW_DECL_POSIX_SPAWNATTR_INIT
@@ -329,7 +335,9 @@ _GL_FUNCDECL_SYS (posix_spawnattr_destroy, int, (posix_spawnattr_t *__attr)
 #  endif
 _GL_CXXALIAS_SYS (posix_spawnattr_destroy, int, (posix_spawnattr_t *__attr));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (posix_spawnattr_destroy);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawnattr_destroy
 # if HAVE_RAW_DECL_POSIX_SPAWNATTR_DESTROY
@@ -364,7 +372,9 @@ _GL_CXXALIAS_SYS (posix_spawnattr_getsigdefault, int,
                   (const posix_spawnattr_t *_Restrict_ __attr,
                    sigset_t *_Restrict_ __sigdefault));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (posix_spawnattr_getsigdefault);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawnattr_getsigdefault
 # if HAVE_RAW_DECL_POSIX_SPAWNATTR_GETSIGDEFAULT
@@ -398,7 +408,9 @@ _GL_CXXALIAS_SYS (posix_spawnattr_setsigdefault, int,
                   (posix_spawnattr_t *_Restrict_ __attr,
                    const sigset_t *_Restrict_ __sigdefault));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (posix_spawnattr_setsigdefault);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawnattr_setsigdefault
 # if HAVE_RAW_DECL_POSIX_SPAWNATTR_SETSIGDEFAULT
@@ -432,7 +444,9 @@ _GL_CXXALIAS_SYS (posix_spawnattr_getsigmask, int,
                   (const posix_spawnattr_t *_Restrict_ __attr,
                    sigset_t *_Restrict_ __sigmask));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (posix_spawnattr_getsigmask);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawnattr_getsigmask
 # if HAVE_RAW_DECL_POSIX_SPAWNATTR_GETSIGMASK
@@ -466,7 +480,9 @@ _GL_CXXALIAS_SYS (posix_spawnattr_setsigmask, int,
                   (posix_spawnattr_t *_Restrict_ __attr,
                    const sigset_t *_Restrict_ __sigmask));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (posix_spawnattr_setsigmask);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawnattr_setsigmask
 # if HAVE_RAW_DECL_POSIX_SPAWNATTR_SETSIGMASK
@@ -500,7 +516,9 @@ _GL_CXXALIAS_SYS (posix_spawnattr_getflags, int,
                   (const posix_spawnattr_t *_Restrict_ __attr,
                    short int *_Restrict_ __flags));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (posix_spawnattr_getflags);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawnattr_getflags
 # if HAVE_RAW_DECL_POSIX_SPAWNATTR_GETFLAGS
@@ -530,7 +548,9 @@ _GL_FUNCDECL_SYS (posix_spawnattr_setflags, int,
 _GL_CXXALIAS_SYS (posix_spawnattr_setflags, int,
                   (posix_spawnattr_t *__attr, short int __flags));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (posix_spawnattr_setflags);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawnattr_setflags
 # if HAVE_RAW_DECL_POSIX_SPAWNATTR_SETFLAGS
@@ -564,7 +584,9 @@ _GL_CXXALIAS_SYS (posix_spawnattr_getpgroup, int,
                   (const posix_spawnattr_t *_Restrict_ __attr,
                    pid_t *_Restrict_ __pgroup));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (posix_spawnattr_getpgroup);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawnattr_getpgroup
 # if HAVE_RAW_DECL_POSIX_SPAWNATTR_GETPGROUP
@@ -594,7 +616,9 @@ _GL_FUNCDECL_SYS (posix_spawnattr_setpgroup, int,
 _GL_CXXALIAS_SYS (posix_spawnattr_setpgroup, int,
                   (posix_spawnattr_t *__attr, pid_t __pgroup));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (posix_spawnattr_setpgroup);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawnattr_setpgroup
 # if HAVE_RAW_DECL_POSIX_SPAWNATTR_SETPGROUP
@@ -765,7 +789,9 @@ _GL_FUNCDECL_SYS (posix_spawn_file_actions_init, int,
 _GL_CXXALIAS_SYS (posix_spawn_file_actions_init, int,
                   (posix_spawn_file_actions_t *__file_actions));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (posix_spawn_file_actions_init);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawn_file_actions_init
 # if HAVE_RAW_DECL_POSIX_SPAWN_FILE_ACTIONS_INIT
@@ -795,7 +821,9 @@ _GL_FUNCDECL_SYS (posix_spawn_file_actions_destroy, int,
 _GL_CXXALIAS_SYS (posix_spawn_file_actions_destroy, int,
                   (posix_spawn_file_actions_t *__file_actions));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (posix_spawn_file_actions_destroy);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawn_file_actions_destroy
 # if HAVE_RAW_DECL_POSIX_SPAWN_FILE_ACTIONS_DESTROY
@@ -941,7 +969,9 @@ _GL_CXXALIAS_SYS (posix_spawn_file_actions_addchdir, int,
                   (posix_spawn_file_actions_t *_Restrict_ __file_actions,
                    const char *_Restrict_ __path));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (posix_spawn_file_actions_addchdir);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawn_file_actions_addchdir
 # if HAVE_RAW_DECL_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR
@@ -976,7 +1006,9 @@ _GL_CXXALIAS_SYS (posix_spawn_file_actions_addfchdir, int,
                   (posix_spawn_file_actions_t *_Restrict_ __file_actions,
                    int __fd));
 # endif
+# if __GLIBC__ >= 2
 _GL_CXXALIASWARN (posix_spawn_file_actions_addfchdir);
+# endif
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawn_file_actions_addfchdir
 # if HAVE_RAW_DECL_POSIX_SPAWN_FILE_ACTIONS_ADDFCHDIR
index 3bee0f7be4d78547e915f784edc399a732df5711..b7b9a613429361ffe0bc39cca4523f6fbd31d328 100644 (file)
@@ -1,4 +1,4 @@
-# spawn_h.m4 serial 23
+# spawn_h.m4 serial 24
 dnl Copyright (C) 2008-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -79,6 +79,9 @@ AC_DEFUN([gl_HAVE_POSIX_SPAWN],
 
   if test $ac_cv_func_posix_spawn != yes; then
     HAVE_POSIX_SPAWN=0
+    case "$gl_cv_onwards_func_posix_spawn" in
+      future*) REPLACE_POSIX_SPAWN=1 ;;
+    esac
   fi
 ])