Edit report at https://bugs.php.net/bug.php?id=80171&edit=1
ID: 80171
Comment by: smillerdev at me dot com
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:
> Where does the -Werror flag come from in your case? Is this a new default flag in macos 10.15?
As far as I know it's added by Homebrew. That has been the case for tons of software years
though, without any issues.
Previous Comments:
------------------------------------------------------------------------
[2020-10-02 09:46:50] nikic@php.net
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?
------------------------------------------------------------------------
[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/61828https://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