-]], [int fd = open ("conftest.c", O_RDONLY);
- if (fd < 0) return 2;
- return !!fdopendir (fd);])],
+#include <unistd.h>
+#if !HAVE_DECL_FDOPENDIR
+extern 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;])],