I use minix 3.1.2a stable version.

When I am learning the signal system calls, I wrote a simple C program
#include
#include
int main(void)
{
struct sigaction a;
a.sa_handler = SIG_IGN;
sigaction(SIGQUIT, &a, NULL);
while (1);
return 0;
}

When I user ACK to compile it, I got errors, (no a.out is generated)
but gcc can do it OK (a.out can not be stopped by typing "Ctrl + \")

Then I find that reference struct sigaction need a macro _POSIX_SOURCE
be defined.
It means _POSIX_SOURCE is defined in GCC but not in ACK.

Then I go on tracking.
Final I find several lines in ansi.h

#ifdefined (_MINIX) || _POSIX_C_SOURCE > 0 || defined (_POSIX2_SOURCE)
#undef _POSIX_SOURCE
#define _POSIX_SOURCE 1
#endif

Does that mean GCC has the above built-in macros but ACK not?
If so, why use ACK as default compiler not GCC?

If GCC generate larger code than ACK, why not try PCC?
NetBSD and OpenBSD now use PCC as its default compiler.