Xcode12 fails to ./configure due to -Wimplicit-function-declaration
Compiling Pike-v8.0.702 on MacOS 11 with Xcode 12 one encounters an issue common to a lot of autoconf scripts -- broken tests due to the change to -Werror,-Wimplicit-function-declaration
Xcode 12 decided to make this warning an error by default in C code. One place this tends to bite in a subtle way is inside of autoconf scripts, since there a failure will usually be silent unless it causes something to be misdetected. Indeed, when building pike the build ends up failing with:
Configuration error: No way to set nonblocking I/O
If you search for Werror
in the config.log lines you see lots and lots of examples:
./build/darwin-20.1.0-x86_64/modules/_Image_JPEG/config.log:conftest.c:27:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/_Image_TIFF/config.log:conftest.c:48:26: error: implicitly declaring library function 'malloc' with type 'void *(unsigned long)' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/_Stdio/config.log:conftest.c:116:7: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/_Stdio/config.log:conftest.c:134:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/_Stdio/config.log:conftest.c:141:5: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/_Stdio/config.log:conftest.c:135:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/_Stdio/config.log:conftest.c:103:63: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/_Stdio/config.log:conftest.c:136:5: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/Mysql/config.log:conftest.c:39:3: error: implicit declaration of function 'mysql_real_connect' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/Mysql/config.log:conftest.c:39:3: error: implicit declaration of function 'mysql_connect' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/Mysql/config.log:conftest.c:39:3: error: implicit declaration of function 'mysql_real_connect' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/Mysql/config.log:conftest.c:39:3: error: implicit declaration of function 'mysql_connect' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/Mysql/config.log:conftest.c:39:3: error: implicit declaration of function 'mysql_real_connect' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/Mysql/config.log:conftest.c:39:3: error: implicit declaration of function 'mysql_connect' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/Mysql/config.log:conftest.c:39:3: error: implicit declaration of function 'mysql_real_connect' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/Mysql/config.log:conftest.c:39:3: error: implicit declaration of function 'mysql_connect' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/Mysql/config.log:conftest.c:39:3: error: implicit declaration of function 'mysql_real_connect' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/Mysql/config.log:conftest.c:39:3: error: implicit declaration of function 'mysql_connect' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/system/config.log:conftest.c:116:14: error: implicit declaration of function 'setprgp' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/system/config.log:conftest.c:118:3: error: implicit declaration of function 'gethostbyname_r' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/system/config.log:conftest.c:118:7: error: implicit declaration of function 'gethostbyname_r' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/system/config.log:conftest.c:117:3: error: implicit declaration of function 'getservbyname_r' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/system/config.log:conftest.c:118:7: error: implicit declaration of function 'getservbyname_r' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/sybase/config.log:conftest.c:32:11: error: implicit declaration of function 'cs_ctx_alloc' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/sybase/config.log:conftest.c:33:11: error: implicit declaration of function 'ct_init' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/_math/config.log:conftest.c:28:5: error: implicit declaration of function 'fpsetround' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/_Image_XFace/config.log:conftest.c:45:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/Wnotify/config.log:conftest.c:33:3: error: implicit declaration of function 'FindFirstChangeNotification' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/modules/Wnotify/config.log:conftest.c:34:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:12: error: implicit declaration of function '_bswap' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:12: error: implicit declaration of function '_bswap64' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:12: error: implicit declaration of function '_bit_scan_reverse' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:12: error: implicit declaration of function '_bit_scan_forward' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:64:12: error: implicit declaration of function '_byteswap_ulong' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:64:12: error: implicit declaration of function '_byteswap_uint64' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:12: error: implicit declaration of function '__cntlz4' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:12: error: implicit declaration of function '__cntlz8' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:12: error: implicit declaration of function '__cnttz4' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:12: error: implicit declaration of function '__cnttz8' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:59:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:y.tab.c:1206:16: error: implicit declaration of function 'yylex' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.y:42:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:y.tab.c:1206:16: error: implicit declaration of function 'yylex' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.y:42:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:y.tab.c:1208:16: error: implicit declaration of function 'yylex' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:1: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:y.tab.c:1208:16: error: implicit declaration of function 'yylex' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:1: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:62:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:61:14: error: implicit declaration of function 'bar' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:174:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:168:30: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:239:3: error: implicit declaration of function 'mkdir' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:225:17: error: implicit declaration of function 'infnan' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:228:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:224:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:224:8: error: implicit declaration of function '_isnan' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:225:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:234:5: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:245:25: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:249:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:251:3: error: implicit declaration of function 'fpsetmask' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:252:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:255:3: error: implicit declaration of function 'fpsetround' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:256:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:253:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:253:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:245:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:259:24: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:250:3: error: implicit declaration of function 'GetSystemTimeAsFileTime' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:251:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:253:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:249:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:245:42: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:245:33: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:260:17: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:245:19: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:258:7: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:261:7: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:258:7: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:261:7: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:255:3: error: implicit declaration of function 'write' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:289:8: error: implicit declaration of function 'getpid' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:292:10: error: implicitly declaring library function 'strlen' with type 'unsigned long (const char *)' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:251:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:251:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:250:3: error: implicitly declaring library function 'printf' with type 'int (const char *, ...)' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:252:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:/Users/mitch/Pike-v8.0.702/src/fd_control.c:300:5: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:/Users/mitch/Pike-v8.0.702/src/fd_control.c:300:5: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:/Users/mitch/Pike-v8.0.702/src/fd_control.c:300:5: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:/Users/mitch/Pike-v8.0.702/src/fd_control.c:300:5: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:/Users/mitch/Pike-v8.0.702/src/fd_control.c:300:5: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:/Users/mitch/Pike-v8.0.702/src/fd_control.c:300:5: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:/Users/mitch/Pike-v8.0.702/src/fd_control.c:300:5: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:/Users/mitch/Pike-v8.0.702/src/fd_control.c:300:5: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:/Users/mitch/Pike-v8.0.702/src/fd_control.c:300:5: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:/Users/mitch/Pike-v8.0.702/src/fd_control.c:300:5: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:341:7: error: implicit declaration of function 'close' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:351:7: error: implicit declaration of function 'close' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:360:7: error: implicit declaration of function 'close' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:367:29: error: implicit declaration of function 'inet_addr' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:416:4: error: implicit declaration of function 'close' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:439:7: error: implicit declaration of function 'close' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:276:3: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:258:1: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:254:14: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
./build/darwin-20.1.0-x86_64/config.log:conftest.c:8:3: error: implicit declaration of function 'testfunc2' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
The number one cause of this type of failure is calling exit()
without #include <stdlib.h>
first. However, in my experience the fastest way to solve that particular one is to adjust the tests to just return
from main()
instead. E.g. here is one recent PR I made for a smaller project: https://github.com/jca02266/lha/pull/18/files
However in the case of pike there are a lot of other functions that are called without the proper header inclusion. For the time being I am going to work around it in Homebrew by adding CFLAGS=-Wno-implicit-function-declaration
but long-term the configure.in files should be cleaned up to not generate these errors.