Now that Minix is free software, it's higher priority for autoconf to support it more accurately. Minix is small so this should be easy to do. I just downloaded Minix 2.0 (the free version) and discovered the following: * The macro _POSIX_1_SOURCE is no longer used. So we don't need to worry about it any more, except perhaps as part of the obsolescent AC_MINIX macro (and if we retain it, we should document it as being irrelevant for Minix 2.0 and later). * Defining _MINIX causes <stdio.h> to declare popen and pclose. So if the suggestion in my previous message is used, _MINIX will be defined properly. * Defining _POSIX_SOURCE causes the following changes. <limits.h> defines symbols like _POSIX_ARG_MAX and ARG_MAX. <setjmp.h> defines sigjmp_buf, siglongjmp, and sigsetjmp. <signal.h> defines sigset_t, sighandler_t, struct sigaction, kill, and related macros and functions. <stdio.h> defines fileno, fdopen, L_ctermid, and L_cuserid. <time.h> defines tzset and the obsolecent name CLK_TCK. These changes are enabled only by defining _POSIX_SOURCE; they aren't enabled by defining _MINIX. The last bullet is the problematic one. It looks like it would be better after all to follow my initial suggestion and define _POSIX_SOURCE if <stdio.h> does not define fileno. This would be done by trying to compile the fileno test program with -D_POSIX_C_SOURCE=2147483647 (the modern way to do it), and if that doesn't help to try again with -D_POSIX_SOURCE (the old-fashioned way, which Minix 2.0 uses). Sorry that my suggestions waffled about _POSIX_SOURCE, but it is a problematic area. You can't define _POSIX_SOURCE or _POSIX_C_SOURCE unconditionally, as that causes possibly-undesirable changes on Solaris and many other platforms. On the other hand, if you don't define thes macros up-front on hosts like Minix, you either need hacks like AC_MINIX and AC_ISC_POSIX, or you need to have a separate autoconf macro for fileno, tzset, etc.; and both these alternatives are more unpleasant than simply defining one of those feature-test macros if <stdio.h> doesn't define fileno.