unread
What's the current status of Openssl 1.1 builds?
Several references
https://externals.io/thread/661
http://git.php.net/?p=php-src.git;a=commitdiff;h=015a80ef7bb5d691745b6fba35060d996c788a53
https://bugs.php.net/bug.php?id=72360
suggest that it should be 'in' head, at least, if not 71 branch.
But, here, with php HEAD
cd /work/php-src
git clean -xfd
git reset --hard HEAD
git checkout master
git log | head
the 'cleanest' build on linux64 + openssl 1.1 I can manage atm,
requires this fix
perl -pi -e '\
s|SSLeay_version\(SSLEAY_VERSION\)|OpenSSL_version\(OPENSSL_VERSION\)|g' \
/work/php-src/ext/openssl/openssl.c
then, with simple config
export PHP_RPATHS="/usr/local/openssl11/lib64"
./buildconf --force
./configure \
--disable-all \
--with-openssl=/usr/local/openssl11
builds, with lots of warnings, but no apparent errors
make V=1
/bin/sh /work/php-src/libtool --silent --preserve-dup-deps --mode=compile /usr/bin/gcc-6 -Iext/openssl/ -I/work/php-src/ext/openssl/ -DPHP_ATOM_INC -I/work/php-src/include -I/work/php-src/main -I/work/php-src -I/work/php-src/ext/date/lib -I/usr/local/openssl11/include -I/work/php-src/TSRM -I/work/php-src/Zend -O3 -Wall -fstack-protector -funwind-tables -fasynchronous-unwind-tables -fmessage-length=0 -grecord-gcc-switches -march=native -mtune=native -fPIC -DPIC -D_GNU_SOURCE -fno-strict-aliasing -fvisibility=hidden -DZEND_SIGNALS -c /work/php-src/ext/openssl/openssl.c -o ext/openssl/openssl.lo
/work/php-src/ext/openssl/openssl.c: In function ‘add_assoc_name_entry’:
/work/php-src/ext/openssl/openssl.c:859:13: warning: implicit declaration of function ‘ASN1_STRING_data’ [-Wimplicit-function-declaration]
to_add = ASN1_STRING_data(str);
^~~~~~~~~~~~~~~~
/work/php-src/ext/openssl/openssl.c:859:11: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
to_add = ASN1_STRING_data(str);
^
/work/php-src/ext/openssl/openssl.c: In function ‘asn1_time_to_time_t’:
/work/php-src/ext/openssl/openssl.c:921:28: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
if (timestr_len != strlen((const char*)ASN1_STRING_data(timestr))) {
^
In file included from /work/php-src/Zend/zend.h:31:0,
from /work/php-src/main/php.h:35,
from /work/php-src/ext/openssl/openssl.c:30:
/work/php-src/ext/openssl/openssl.c:936:19: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
strbuf = estrdup((char *)ASN1_STRING_data(timestr));
^
/work/php-src/Zend/zend_alloc.h:172:36: note: in definition of macro ‘estrdup’
#define estrdup(s) _estrdup((s) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
^
/work/php-src/ext/openssl/openssl.c: In function ‘zm_startup_openssl’:
/work/php-src/ext/openssl/openssl.c:1402:2: warning: implicit declaration of function ‘SSL_library_init’ [-Wimplicit-function-declaration]
SSL_library_init();
^~~~~~~~~~~~~~~~
/work/php-src/ext/openssl/openssl.c:1403:2: warning: implicit declaration of function ‘OpenSSL_add_all_ciphers’ [-Wimplicit-function-declaration]
OpenSSL_add_all_ciphers();
^~~~~~~~~~~~~~~~~~~~~~~
/work/php-src/ext/openssl/openssl.c:1404:2: warning: implicit declaration of function ‘OpenSSL_add_all_digests’ [-Wimplicit-function-declaration]
OpenSSL_add_all_digests();
^~~~~~~~~~~~~~~~~~~~~~~
/work/php-src/ext/openssl/openssl.c:1405:2: warning: implicit declaration of function ‘OpenSSL_add_all_algorithms’ [-Wimplicit-function-declaration]
OpenSSL_add_all_algorithms();
^~~~~~~~~~~~~~~~~~~~~~~~~~
/work/php-src/ext/openssl/openssl.c:1413:2: warning: implicit declaration of function ‘SSL_load_error_strings’ [-Wimplicit-function-declaration]
SSL_load_error_strings();
^~~~~~~~~~~~~~~~~~~~~~
/work/php-src/ext/openssl/openssl.c: In function ‘zm_shutdown_openssl’:
/work/php-src/ext/openssl/openssl.c:1577:2: warning: implicit declaration of function ‘EVP_cleanup’ [-Wimplicit-function-declaration]
EVP_cleanup();
^~~~~~~~~~~
/work/php-src/ext/openssl/openssl.c:1580:2: warning: implicit declaration of function ‘CRYPTO_set_locking_callback’ [-Wimplicit-function-declaration]
CRYPTO_set_locking_callback(NULL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
/work/php-src/ext/openssl/openssl.c:1582:2: warning: implicit declaration of function ‘ERR_free_strings’ [-Wimplicit-function-declaration]
ERR_free_strings();
^~~~~~~~~~~~~~~~
In file included from /work/php-src/main/php.h:39:0,
from /work/php-src/ext/openssl/openssl.c:30:
/work/php-src/ext/openssl/openssl.c: In function ‘zif_openssl_spki_export_challenge’:
/work/php-src/ext/openssl/openssl.c:2045:16: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
RETVAL_STRING((char *) ASN1_STRING_data(spki->spkac->challenge));
^
/work/php-src/Zend/zend_API.h:592:21: note: in definition of macro ‘ZVAL_STRING’
const char *_s = (s); \
^
/work/php-src/ext/openssl/openssl.c:2045:2: note: in expansion of macro ‘RETVAL_STRING’
RETVAL_STRING((char *) ASN1_STRING_data(spki->spkac->challenge));
^~~~~~~~~~~~~
/work/php-src/ext/openssl/openssl.c: In function ‘openssl_x509v3_subjectAltName’:
/work/php-src/ext/openssl/openssl.c:2236:20: warning: passing argument 2 of ‘BIO_write’ makes pointer from integer without a cast [-Wint-conversion]
BIO_write(bio, ASN1_STRING_data(as),
^~~~~~~~~~~~~~~~
In file included from /usr/local/openssl11/include/openssl/err.h:21:0,
from /work/php-src/ext/openssl/php_openssl.h:49,
from /work/php-src/ext/openssl/openssl.c:32:
/usr/local/openssl11/include/openssl/bio.h:549:5: note: expected ‘const void *’ but argument is of type ‘int’
int BIO_write(BIO *b, const void *data, int len);
^~~~~~~~~
/work/php-src/ext/openssl/openssl.c:2242:20: warning: passing argument 2 of ‘BIO_write’ makes pointer from integer without a cast [-Wint-conversion]
BIO_write(bio, ASN1_STRING_data(as),
^~~~~~~~~~~~~~~~
In file included from /usr/local/openssl11/include/openssl/err.h:21:0,
from /work/php-src/ext/openssl/php_openssl.h:49,
from /work/php-src/ext/openssl/openssl.c:32:
/usr/local/openssl11/include/openssl/bio.h:549:5: note: expected ‘const void *’ but argument is of type ‘int’
int BIO_write(BIO *b, const void *data, int len);
^~~~~~~~~
/work/php-src/ext/openssl/openssl.c:2248:20: warning: passing argument 2 of ‘BIO_write’ makes pointer from integer without a cast [-Wint-conversion]
BIO_write(bio, ASN1_STRING_data(as),
^~~~~~~~~~~~~~~~
In file included from /usr/local/openssl11/include/openssl/err.h:21:0,
from /work/php-src/ext/openssl/php_openssl.h:49,
from /work/php-src/ext/openssl/openssl.c:32:
/usr/local/openssl11/include/openssl/bio.h:549:5: note: expected ‘const void *’ but argument is of type ‘int’
int BIO_write(BIO *b, const void *data, int len);
^~~~~~~~~
/work/php-src/ext/openssl/openssl.c: In function ‘zif_openssl_x509_parse’:
/work/php-src/ext/openssl/openssl.c:2340:52: warning: implicit declaration of function ‘X509_get_notBefore’ [-Wimplicit-function-declaration]
add_assoc_asn1_string(return_value, "validFrom", X509_get_notBefore(cert));
^~~~~~~~~~~~~~~~~~
/work/php-src/ext/openssl/openssl.c:2340:52: warning: passing argument 3 of ‘add_assoc_asn1_string’ makes pointer from integer without a cast [-Wint-conversion]
/work/php-src/ext/openssl/openssl.c:892:13: note: expected ‘ASN1_STRING * {aka struct asn1_string_st *}’ but argument is of type ‘int’
static void add_assoc_asn1_string(zval * val, char * key, ASN1_STRING * str) /* {{{ */
^~~~~~~~~~~~~~~~~~~~~
/work/php-src/ext/openssl/openssl.c:2341:51: warning: implicit declaration of function ‘X509_get_notAfter’ [-Wimplicit-function-declaration]
add_assoc_asn1_string(return_value, "validTo", X509_get_notAfter(cert));
^~~~~~~~~~~~~~~~~
/work/php-src/ext/openssl/openssl.c:2341:51: warning: passing argument 3 of ‘add_assoc_asn1_string’ makes pointer from integer without a cast [-Wint-conversion]
/work/php-src/ext/openssl/openssl.c:892:13: note: expected ‘ASN1_STRING * {aka struct asn1_string_st *}’ but argument is of type ‘int’
static void add_assoc_asn1_string(zval * val, char * key, ASN1_STRING * str) /* {{{ */
^~~~~~~~~~~~~~~~~~~~~
In file included from /work/php-src/main/php.h:39:0,
from /work/php-src/ext/openssl/openssl.c:30:
/work/php-src/ext/openssl/openssl.c:2343:72: warning: passing argument 1 of ‘asn1_time_to_time_t’ makes pointer from integer without a cast [-Wint-conversion]
add_assoc_long(return_value, "validFrom_time_t", asn1_time_to_time_t(X509_get_notBefore(cert)));
^
/work/php-src/Zend/zend_API.h:413:90: note: in definition of macro ‘add_assoc_long’
define add_assoc_long(__arg, __key, __n) add_assoc_long_ex(__arg, __key, strlen(__key), __n)
^~~
/work/php-src/ext/openssl/openssl.c:898:15: note: expected ‘ASN1_UTCTIME * {aka struct asn1_string_st *}’ but argument is of type ‘int’
static time_t asn1_time_to_time_t(ASN1_UTCTIME * timestr) /* {{{ */
^~~~~~~~~~~~~~~~~~~
In file included from /work/php-src/main/php.h:39:0,
from /work/php-src/ext/openssl/openssl.c:30:
/work/php-src/ext/openssl/openssl.c:2344:71: warning: passing argument 1 of ‘asn1_time_to_time_t’ makes pointer from integer without a cast [-Wint-conversion]
add_assoc_long(return_value, "validTo_time_t", asn1_time_to_time_t(X509_get_notAfter(cert)));
^
/work/php-src/Zend/zend_API.h:413:90: note: in definition of macro ‘add_assoc_long’
define add_assoc_long(__arg, __key, __n) add_assoc_long_ex(__arg, __key, strlen(__key), __n)
^~~
/work/php-src/ext/openssl/openssl.c:898:15: note: expected ‘ASN1_UTCTIME * {aka struct asn1_string_st *}’ but argument is of type ‘int’
static time_t asn1_time_to_time_t(ASN1_UTCTIME * timestr) /* {{{ */
^~~~~~~~~~~~~~~~~~~
/work/php-src/ext/openssl/openssl.c: In function ‘zif_openssl_csr_sign’:
/work/php-src/ext/openssl/openssl.c:3421:18: warning: passing argument 1 of ‘X509_gmtime_adj’ makes pointer from integer without a cast [-Wint-conversion]
X509_gmtime_adj(X509_get_notBefore(new_cert), 0);
^~~~~~~~~~~~~~~~~~
In file included from /work/php-src/ext/openssl/openssl.c:50:0:
/usr/local/openssl11/include/openssl/x509.h:479:12: note: expected ‘ASN1_TIME * {aka struct asn1_string_st *}’ but argument is of type ‘int’
ASN1_TIME *X509_gmtime_adj(ASN1_TIME *s, long adj);
^~~~~~~~~~~~~~~
/work/php-src/ext/openssl/openssl.c:3422:18: warning: passing argument 1 of ‘X509_gmtime_adj’ makes pointer from integer without a cast [-Wint-conversion]
X509_gmtime_adj(X509_get_notAfter(new_cert), 60*60*24*(long)num_days);
^~~~~~~~~~~~~~~~~
In file included from /work/php-src/ext/openssl/openssl.c:50:0:
/usr/local/openssl11/include/openssl/x509.h:479:12: note: expected ‘ASN1_TIME * {aka struct asn1_string_st *}’ but argument is of type ‘int’
ASN1_TIME *X509_gmtime_adj(ASN1_TIME *s, long adj);
^~~~~~~~~~~~~~~
/work/php-src/ext/openssl/openssl.c: In function ‘zif_openssl_seal’:
/work/php-src/ext/openssl/openssl.c:5886:2: warning: implicit declaration of function ‘EVP_CIPHER_CTX_cleanup’ [-Wimplicit-function-declaration]
EVP_CIPHER_CTX_cleanup(ctx);
^~~~~~~~~~~~~~~~~~~~~~
/bin/sh /work/php-src/libtool --silent --preserve-dup-deps --mode=compile /usr/bin/gcc-6 -Iext/openssl/ -I/work/php-src/ext/openssl/ -DPHP_ATOM_INC -I/work/php-src/include -I/work/php-src/main -I/work/php-src -I/work/php-src/ext/date/lib -I/usr/local/openssl11/include -I/work/php-src/TSRM -I/work/php-src/Zend -O3 -Wall -fstack-protector -funwind-tables -fasynchronous-unwind-tables -fmessage-length=0 -grecord-gcc-switches -march=native -mtune=native -fPIC -DPIC -D_GNU_SOURCE -fno-strict-aliasing -fvisibility=hidden -DZEND_SIGNALS -c /work/php-src/ext/openssl/xp_ssl.c -o ext/openssl/xp_ssl.lo
/work/php-src/ext/openssl/xp_ssl.c: In function ‘php_select_crypto_method’:
/work/php-src/ext/openssl/xp_ssl.c:946:22: warning: implicit declaration of function ‘TLSv1_client_method’ [-Wimplicit-function-declaration]
return is_client ? TLSv1_client_method() : TLSv1_server_method();
^~~~~~~~~~~~~~~~~~~
/work/php-src/ext/openssl/xp_ssl.c:946:46: warning: implicit declaration of function ‘TLSv1_server_method’ [-Wimplicit-function-declaration]
return is_client ? TLSv1_client_method() : TLSv1_server_method();
^~~~~~~~~~~~~~~~~~~
/work/php-src/ext/openssl/xp_ssl.c:946:44: warning: return makes pointer from integer without a cast [-Wint-conversion]
return is_client ? TLSv1_client_method() : TLSv1_server_method();
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
/work/php-src/ext/openssl/xp_ssl.c:949:22: warning: implicit declaration of function ‘TLSv1_1_client_method’ [-Wimplicit-function-declaration]
return is_client ? TLSv1_1_client_method() : TLSv1_1_server_method();
^~~~~~~~~~~~~~~~~~~~~
/work/php-src/ext/openssl/xp_ssl.c:949:48: warning: implicit declaration of function ‘TLSv1_1_server_method’ [-Wimplicit-function-declaration]
return is_client ? TLSv1_1_client_method() : TLSv1_1_server_method();
^~~~~~~~~~~~~~~~~~~~~
/work/php-src/ext/openssl/xp_ssl.c:949:46: warning: return makes pointer from integer without a cast [-Wint-conversion]
return is_client ? TLSv1_1_client_method() : TLSv1_1_server_method();
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/work/php-src/ext/openssl/xp_ssl.c:957:22: warning: implicit declaration of function ‘TLSv1_2_client_method’ [-Wimplicit-function-declaration]
return is_client ? TLSv1_2_client_method() : TLSv1_2_server_method();
^~~~~~~~~~~~~~~~~~~~~
/work/php-src/ext/openssl/xp_ssl.c:957:48: warning: implicit declaration of function ‘TLSv1_2_server_method’ [-Wimplicit-function-declaration]
return is_client ? TLSv1_2_client_method() : TLSv1_2_server_method();
^~~~~~~~~~~~~~~~~~~~~
/work/php-src/ext/openssl/xp_ssl.c:957:46: warning: return makes pointer from integer without a cast [-Wint-conversion]
return is_client ? TLSv1_2_client_method() : TLSv1_2_server_method();
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/work/php-src/ext/openssl/xp_ssl.c: In function ‘php_openssl_sockop_set_option’:
/work/php-src/ext/openssl/xp_ssl.c:1867:22: warning: ‘cert_captured’ may be used uninitialized in this function [-Wmaybe-uninitialized]
if (n && peer_cert && cert_captured == 0) {
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/work/php-src/ext/openssl/xp_ssl.c:1737:6: note: ‘cert_captured’ was declared here
int cert_captured;
^~~~~~~~~~~~~
/bin/sh /work/php-src/libtool --silent --preserve-dup-deps --mode=link /usr/bin/gcc
...
make install
ldd /usr/local/php-dev/bin/php | egrep "ssl|crypto"
libssl.so.1.1 => /usr/local/openssl11/lib64/libssl.so.1.1 (0x00007f8f58586000)
libcrypto.so.1.1 => /usr/local/openssl11/lib64/libcrypto.so.1.1 (0x00007f8f580dc000)