I needed to bump local curl build version to fix a (php-unrelated) SEGV. Currently, I have
curl -V
curl 7.67.1-DEV (x86_64-pc-linux-gnu) libcurl/7.67.1-DEV OpenSSL/1.1.1d zlib/1.2.11 brotli/1.0.7 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.2.0) libssh2/1.9.0_DEV nghttp2/1.40.0-DEV
Release-Date: [unreleased]
Protocols: dict file ftp ftps http https imap imaps pop3 pop3s scp sftp smtp smtps tftp
Features: AsynchDNS brotli HTTP2 HTTPS-proxy IDN IPv6 Largefile libz Metalink NTLM NTLM_WB PSL SSL TLS-SRP UnixSockets
Rebuilding my usual PHP7.3/git install,
(add'l note: fwiw, the following issue also occurs with 7.4/git ...)
cd php7
git branch -a | grep \*
* PHP-7.3
git log | head
commit 9083e178f656878cab46aee52b555346ef92a768
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Nov 12 12:59:50 2019 +0300
Fixed wrong constant usage
commit ea2a125789d2e6cf7416bd706be1ac44df1367e4
Merge: 4a55794b98 2c9926f156
Author: Stanislav Malyshev <stas@php.net>
Date: Mon Nov 11 23:08:38 2019 -0800
works nicely as usual,
/usr/local/php7/bin/php -v
PHP 7.3.13-dev (cli) (built: Nov 14 2019 19:53:24) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.13-dev, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.13-dev, Copyright (c) 1999-2018, by Zend Technologies
But curl extension now fails,
ext/curl/interface.c:778:25: error: âCURLE_OBSOLETE20â undeclared (first use in this function); did you mean âCURLE_OBSOLETE50â?
778 | REGISTER_CURL_CONSTANT(CURLE_FTP_WRITE_ERROR);
Before making noise about in @bugs, wanted to check 1st; known issue? additional/new config req'd?
Here's more detail
cd ext/curl
/usr/local/php7/bin/phpize
Configuring for:
PHP Api Version: 20180731
Zend Module Api No: 20180731
Zend Extension Api No: 320180731
./configure \
--with-php-config=/usr/local/php7/bin/php-config \
--with-curl=/usr/local \
--with-libdir=lib64 \
--enable-shared --disable-static \
--with-gnu-ld
...
checking for cURL support... yes, shared
checking for libcurl.pc... using /usr/local/lib64/pkgconfig/libcurl.pc
checking for cURL 7.15.5 or greater... 7.67.1-DEV
checking for SSL support in libcurl... yes
checking how to run the C preprocessor... /usr/bin/cpp-9
checking for openssl support in libcurl... checking for ANSI C header files... yes
...
checking for gnutls support in libcurl... no
checking for curl_easy_perform in -lcurl... yes
checking for curl_easy_strerror in -lcurl... yes
checking for curl_multi_strerror in -lcurl... yes
...
, at `make`,
make V=1
/bin/sh /usr/local/src/php7-src/ext/curl/libtool --mode=compile /usr/bin/gcc-9 -I. -I/usr/local/src/php7-src/ext/curl -DPHP_ATOM_INC -I/usr/local/src/php7-src/ext/curl/include -I/usr/local/src/php7-src/ext/curl/main -I/usr/local/src/php7-src/ext/curl -I/usr/local/php7/include/php -I/usr/local/php7/include/php/main -I/usr/local/php7/include/php/TSRM -I/usr/local/php7/include/php/Zend -I/usr/local/php7/include/php/ext -I/usr/local/php7/include/php/ext/date/lib -I/usr/local/include -O3 -Wall -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fmessage-length=0 -grecord-gcc-switches -march=native -mtune=native -D_FORTIFY_SOURCE=2 -DHAVE_CONFIG_H -O3 -Wall -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fmessage-length=0 -grecord-gcc-switches -march=native -mtune=native -c /usr/local/src/php7-src/ext/curl/interface.c -o interface.lo
mkdir .libs
/usr/bin/gcc-9 -I. -I/usr/local/src/php7-src/ext/curl -DPHP_ATOM_INC -I/usr/local/src/php7-src/ext/curl/include -I/usr/local/src/php7-src/ext/curl/main -I/usr/local/src/php7-src/ext/curl -I/usr/local/php7/include/php -I/usr/local/php7/include/php/main -I/usr/local/php7/include/php/TSRM -I/usr/local/php7/include/php/Zend -I/usr/local/php7/include/php/ext -I/usr/local/php7/include/php/ext/date/lib -I/usr/local/include -O3 -Wall -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fmessage-length=0 -grecord-gcc-switches -march=native -mtune=native -D_FORTIFY_SOURCE=2 -DHAVE_CONFIG_H -O3 -Wall -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fmessage-length=0 -grecord-gcc-switches -march=native -mtune=native -c /usr/local/src/php7-src/ext/curl/interface.c -fPIC -DPIC -o .libs/interface.o
In file included from /usr/local/php7/include/php/main/php.h:468,
from /usr/local/src/php7-src/ext/curl/interface.c:25:
/usr/local/src/php7-src/ext/curl/interface.c: In function âzm_startup_curlâ:
/usr/local/src/php7-src/ext/curl/interface.c:778:25: error: âCURLE_OBSOLETE20â undeclared (first use in this function); did you mean âCURLE_OBSOLETE50â?
778 | REGISTER_CURL_CONSTANT(CURLE_FTP_WRITE_ERROR);
| ^~~~~~~~~~~~~~~~~~~~~
/usr/local/php7/include/php/Zend/zend_constants.h:53:105: note: in definition of macro âREGISTER_LONG_CONSTANTâ
53 | #define REGISTER_LONG_CONSTANT(name, lval, flags) zend_register_long_constant((name), sizeof(name)-1, (lval), (flags), module_number)
| ^~~~
/usr/local/src/php7-src/ext/curl/interface.c:778:2: note: in expansion of macro âREGISTER_CURL_CONSTANTâ
778 | REGISTER_CURL_CONSTANT(CURLE_FTP_WRITE_ERROR);
| ^~~~~~~~~~~~~~~~~~~~~~
/usr/local/src/php7-src/ext/curl/interface.c:778:25: note: each undeclared identifier is reported only once for each function it appears in
778 | REGISTER_CURL_CONSTANT(CURLE_FTP_WRITE_ERROR);
| ^~~~~~~~~~~~~~~~~~~~~
/usr/local/php7/include/php/Zend/zend_constants.h:53:105: note: in definition of macro âREGISTER_LONG_CONSTANTâ
53 | #define REGISTER_LONG_CONSTANT(name, lval, flags) zend_register_long_constant((name), sizeof(name)-1, (lval), (flags), module_number)
| ^~~~
/usr/local/src/php7-src/ext/curl/interface.c:778:2: note: in expansion of macro âREGISTER_CURL_CONSTANTâ
778 | REGISTER_CURL_CONSTANT(CURLE_FTP_WRITE_ERROR);
| ^~~~~~~~~~~~~~~~~~~~~~
make: *** [Makefile:194: interface.lo] Error 1
noting
/usr/local/src/php7-src/ext/curl/interface.c
...
REGISTER_CURL_CONSTANT(CURLE_FTP_WEIRD_USER_REPLY);
778 REGISTER_CURL_CONSTANT(CURLE_FTP_WRITE_ERROR);
REGISTER_CURL_CONSTANT(CURLE_FUNCTION_NOT_FOUND);
...
checking,
grep CURLE_OBSOLETE /usr/local/include/curl/curl.h
CURLE_OBSOLETE24, /* 24 - NOT USED */
CURLE_OBSOLETE29, /* 29 - NOT USED */
CURLE_OBSOLETE32, /* 32 - NOT USED */
CURLE_OBSOLETE40, /* 40 - NOT USED */
CURLE_OBSOLETE44, /* 44 - NOT USED */
CURLE_OBSOLETE46, /* 46 - NOT USED */
CURLE_OBSOLETE50, /* 50 - NOT USED */
CURLE_OBSOLETE51, /* 51 - NOT USED */
CURLE_OBSOLETE57, /* 57 - NOT IN USE */
#define CURLE_OBSOLETE16 CURLE_HTTP2
#define CURLE_OBSOLETE10 CURLE_FTP_ACCEPT_FAILED
#define CURLE_OBSOLETE12 CURLE_FTP_ACCEPT_TIMEOUT
#define CURLE_OBSOLETE CURLE_OBSOLETE50 /* no one should be using this! */
#define CURLE_BAD_PASSWORD_ENTERED CURLE_OBSOLETE46
#define CURLE_BAD_CALLING_ORDER CURLE_OBSOLETE44
#define CURLE_FTP_USER_PASSWORD_INCORRECT CURLE_OBSOLETE10
#define CURLE_FTP_CANT_RECONNECT CURLE_OBSOLETE16
#define CURLE_FTP_COULDNT_GET_SIZE CURLE_OBSOLETE32
#define CURLE_FTP_COULDNT_SET_ASCII CURLE_OBSOLETE29
#define CURLE_FTP_WEIRD_USER_REPLY CURLE_OBSOLETE12
! #define CURLE_FTP_WRITE_ERROR CURLE_OBSOLETE20
#define CURLE_LIBRARY_NOT_FOUND CURLE_OBSOLETE40
#define CURLE_MALFORMAT_USER CURLE_OBSOLETE24
#define CURLE_SHARE_IN_USE CURLE_OBSOLETE57
A problem on my end, or a bug with new(er) curl/libcurl 'vs' php ext/curl?
If more info's needed b4 redirecting, or to deal with here, pls let me know.
thx!