bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 1/7] spawn: Use special invocation for <spawn.h> on OS/2 kLIBC


From: KO Myung-Hun
Subject: [PATCH 1/7] spawn: Use special invocation for <spawn.h> on OS/2 kLIBC
Date: Tue, 19 Jan 2021 01:40:07 +0900

On OS/2 kLIBC, <spawn.h> includes <signal.h>. Then <signal.h> ->
<pthread.h> -> <sched.h> -> <spawn.h> are included by GNULIB.
In this situation, `struct sched_param' is not yet defined.

* lib/spawn.in.h: Use special invocation to include <spawn.h> properly
on OS/2 kLIBC.
---
 lib/spawn.in.h | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/lib/spawn.in.h b/lib/spawn.in.h
index 326b79e6c..35e78e6cf 100644
--- a/lib/spawn.in.h
+++ b/lib/spawn.in.h
@@ -15,16 +15,33 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
-#ifndef _@GUARD_PREFIX@_SPAWN_H
-
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
 #endif
 @PRAGMA_COLUMNS@
 
+#if defined _GL_ALREADY_INCLUDING_SPAWN_H
+/* Special invocation convention:
+   On OS/2 kLIBC, <spawn.h> includes <signal.h>. Then <signal.h> ->
+   <pthread.h> -> <sched.h> -> <spawn.h> are included by GNULIB.
+   In this situation, struct sched_param is not yet defined.  */
+
+#@INCLUDE_NEXT@ @NEXT_SPAWN_H@
+
+#else
+
+#ifndef _@GUARD_PREFIX@_SPAWN_H
+/* Normal invocation convention.  */
+
 /* The include_next requires a split double-inclusion guard.  */
 #if @HAVE_SPAWN_H@
+
+# define _GL_ALREADY_INCLUDING_SPAWN_H
+
 # @INCLUDE_NEXT@ @NEXT_SPAWN_H@
+
+# define _GL_ALREADY_INCLUDING_SPAWN_H
+
 #endif
 
 #ifndef _@GUARD_PREFIX@_SPAWN_H
@@ -972,3 +989,4 @@ _GL_WARN_ON_USE (posix_spawn_file_actions_addfchdir,
 
 #endif /* _@GUARD_PREFIX@_SPAWN_H */
 #endif /* _@GUARD_PREFIX@_SPAWN_H */
+#endif
-- 
2.22.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]