]> granicus.if.org Git - procps-ng/commitdiff
configure: Check for stdio_ext.h
authorRainer Müller <raimue@codingfarm.de>
Wed, 20 Feb 2013 19:10:40 +0000 (20:10 +0100)
committerRainer Müller <raimue@codingfarm.de>
Wed, 20 Mar 2013 15:32:06 +0000 (16:32 +0100)
For portability, check for stdio_ext.h during configure and define
HAVE_STDIO_EXT_H accordingly.

If the current system does not provide this header, use a fallback for
__fpending(). This definition will not work on all systems as it relies
on internal data structures of libc. A more portable solution should be
preferred, for example by using gnulib.

configure.ac
lib/fileutils.c

index afb24cee939bad5a843e89449b50d22e2e827bbd..08f59e3d41f0d29515e59759fcdd12b840801ac3 100644 (file)
@@ -137,6 +137,8 @@ dnl else
 dnl    ALL_LINGUAS="af am ar as be bg bn_IN bn ca cs cy da de el en_GB es et eu_ES fa fi fr gl gu he hi hr hu hy id is it ja ka kn ko ku lo lt lv mk ml mr ms my nb nl nn no nso or pa pl pt_BR pt ro ru si sk sl sq sr@Latn sr sv ta te th tr uk ur vi zh_CN zh_TW zu"
 dnl fi
 
+AC_CHECK_HEADERS(stdio_ext.h, [], [], AC_INCLUDES_DEFAULT)
+
 AC_MSG_CHECKING(whether program_invocation_name is defined)
 AC_TRY_COMPILE([#include <errno.h>],
                [program_invocation_name = "test";],
index fe56cb815fcbf5264467d52a69f1d6e981c5ab63..c50d6aa94cbfad493899e24bedf6ee3bce0293e6 100644 (file)
@@ -1,6 +1,12 @@
 #include <errno.h>
 #include <error.h>
-#include <stdio_ext.h>
+#ifdef HAVE_STDIO_EXT_H
+# include <stdio_ext.h>
+#else
+/* FIXME: use a more portable definition of __fpending() (from gnulib?) */
+# include <stdio.h>
+# define __fpending(fp) ((fp)->_p - (fp)->_bf._base)
+#endif
 #include <stdlib.h>
 #include <unistd.h>