https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117796
--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Daniel Starke from comment #6) > That means this is considered to be valid C code? I just checked the newest version of ncurses and it is doing: ``` for ac_func in \ ... select \ ... /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (void); int main (void) { /* The GNU C library defines stubs for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) #error found stub for $ac_func #endif return $ac_func (); ; return 0; } ... ``` So you are using too old ncurses.