+2025-02-10 KO Myung-Hun <komh78@gmail.com>
+
+ popen: Set gl_cv_func_popen_works to "guessing no" on OS/2.
+ * doc/posix-functions/popen.texi: List OS/2 kLIBC case.
+ * m4/popen.m4 (gl_FUNC_POPEN): Set gl_cv_func_popen_works to
+ "guessing no" on OS/2.
+
2025-02-03 Bruno Haible <bruno@clisp.org>
gnulib-tool: Apply libgnu.{,l}a specific CFLAGS to all its object files.
# popen.m4
-# serial 7
-dnl Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# serial 8
+dnl Copyright (C) 2009-2025 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
AC_CACHE_CHECK([whether popen works with closed stdin],
[gl_cv_func_popen_works],
[
- AC_RUN_IFELSE(
- [AC_LANG_PROGRAM(
- [[#include <stdio.h>]],
- [[int result = 0;
- FILE *child;
- fclose (stdin);
- fclose (stdout);
- child = popen ("echo a", "r");
- if (fgetc (child) != 'a')
- result |= 1;
- if (pclose (child) != 0)
- result |= 2;
- return result;
- ]])],
- [gl_cv_func_popen_works=yes],
- [gl_cv_func_popen_works=no],
- [case "$host_os" in
- # For now, only cygwin 1.5 or older is known to be broken.
- cygwin*) gl_cv_func_popen_works="guessing no" ;;
- # Guess yes on native Windows.
- mingw* | windows*) gl_cv_func_popen_works="guessing yes" ;;
- *) gl_cv_func_popen_works="guessing yes" ;;
- esac
- ])
+ case "$host_os" in
+ os2*)
+ # On OS/2 kLIBC, popen() with closed stdios hangs on.
+ gl_cv_func_popen_works="guessing no"
+ ;;
+ *)
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <stdio.h>]],
+ [[int result = 0;
+ FILE *child;
+ fclose (stdin);
+ fclose (stdout);
+ child = popen ("echo a", "r");
+ if (fgetc (child) != 'a')
+ result |= 1;
+ if (pclose (child) != 0)
+ result |= 2;
+ return result;
+ ]])],
+ [gl_cv_func_popen_works=yes],
+ [gl_cv_func_popen_works=no],
+ [case "$host_os" in
+ # For now, only cygwin 1.5 or older is known to be broken.
+ cygwin*) gl_cv_func_popen_works="guessing no" ;;
+ # Guess yes on native Windows.
+ mingw* | windows*) gl_cv_func_popen_works="guessing yes" ;;
+ *) gl_cv_func_popen_works="guessing yes" ;;
+ esac
+ ])
+ ;;
+ esac
])
case "$gl_cv_func_popen_works" in
*yes) ;;