Bug #80171 [Opn]: reentrancy.c:139:23: error: too few arguments to function call

From: Date: Fri, 02 Oct 2020 09:46:50 +0000
Subject: Bug #80171 [Opn]: reentrancy.c:139:23: error: too few arguments to function call
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-229336@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=80171&edit=1 ID: 80171 Updated by: nikic@php.net Reported by: smillerdev at me dot com Summary: reentrancy.c:139:23: error: too few arguments to function call Status: Open Type: Bug Package: Compile Failure Operating System: macOS 10.15 PHP Version: 7.3.23 Block user comment: N Private report: N New Comment: Relevant part: conftest.c:277:1: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] main() { ^ conftest.c:284:5: error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration] exit(1); ^ conftest.c:284:5: note: include the header <stdlib.h> or explicitly provide a declaration for 'exit' conftest.c:286:5: error: implicit declaration of function 'close' is invalid in C99 [-Werror,-Wimplicit-function-declaration] close(dir); ^ conftest.c:289:3: error: implicit declaration of function 'close' is invalid in C99 [-Werror,-Wimplicit-function-declaration] close(dir); ^ 1 warning and 3 errors generated. configure:15832: $? = 1 configure: program exited with status 1 It fails due to implicit declaration warnings that become errors under -Werror. While we can fix the missing includes, running configure with -Werror will also break other checks -- and if I remember correct, some of them are ones done by autoconf itself, so we cannot easily address them. This is why we have an --enable-werror option that enables -Werror only for the build of PHP itself, not for configure checks. Where does the -Werror flag come from in your case? Is this a new default flag in macos 10.15? Previous Comments: ------------------------------------------------------------------------ [2020-10-02 09:38:29] smillerdev at me dot com I'm personally running the macOS 11.0 beta, but the error is the same. Here is a gist with the log. I can't get it from the CI servers, but I can ask someone to run it on 10.15 if needed. https://gist.github.com/SMillerDev/638547b3840380fac9f9fd8e0eefb5f6 ------------------------------------------------------------------------ [2020-10-02 09:21:06] nikic@php.net PHP >= 7.4 sidesteps the issue by removing use of readdir_r: https://github.com/php/php-src/commit/2b28f7189144a21e753dbc09efadd571121a82b9 It looks like PHP_READDIR_R_TYPE is detecting the wrong readdir_r signature for your case. Could you provide the config.log dump? ------------------------------------------------------------------------ [2020-10-02 08:56:23] smillerdev at me dot com Description: ------------ Compiling PHP on the latest macOS 10.15 fails in Homebrew CI because Apple changed the way readdir_r is defined as far as I can tell. https://github.com/Homebrew/homebrew-core/pull/61828 https://github.com/Homebrew/homebrew-core/pull/61820 Actual result: -------------- /private/tmp/php@7.2-20201002-12382-1t37dvh/php-7.2.34/main/reentrancy.c:139:23: error: too few arguments to function call, expected 3, have 2 readdir_r(dirp, entry); ~~~~~~~~~ ^ /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/dirent.h:110:1: note: 'readdir_r' declared here int readdir_r(DIR *, struct dirent *, struct dirent **) __DARWIN_INODE64(readdir_r); ^ 1 error generated. make: *** [main/reentrancy.lo] Error 1 ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=80171&edit=1

« previous php.bugs (#229336) next »