-]], [int fd = open ("conftest.h", O_RDONLY);
- if (fd < 0) return 2;
- return !!fdopendir (fd);])],
- [gl_cv_func_fdopendir_works=yes],
- [gl_cv_func_fdopendir_works=no],
- [gl_cv_func_fdopendir_works="guessing no"])])
- if test "$gl_cv_func_fdopendir_works" != yes; then
- REPLACE_FDOPENDIR=1
- gl_REPLACE_DIRENT_H
- AC_LIBOBJ([fdopendir])
- fi
+#include <unistd.h>
+#if !HAVE_DECL_FDOPENDIR
+extern
+# ifdef __cplusplus
+"C"
+# endif
+DIR *fdopendir (int);
+#endif
+]], [int result = 0;
+ int fd = open ("conftest.c", O_RDONLY);
+ if (fd < 0) result |= 1;
+ if (fdopendir (fd)) result |= 2;
+ if (close (fd)) result |= 4;
+ return result;])],
+ [gl_cv_func_fdopendir_works=yes],
+ [gl_cv_func_fdopendir_works=no],
+ [case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_fdopendir_works="guessing yes" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_fdopendir_works="guessing no" ;;
+ esac
+ ])])
+ case "$gl_cv_func_fdopendir_works" in
+ *yes) ;;
+ *)
+ REPLACE_FDOPENDIR=1
+ ;;
+ esac