Bug #77463 [Opn]: gcc warning & PHP doesn't start using own openssl & curl

From: Date: Tue, 19 Feb 2019 23:36:26 +0000
Subject: Bug #77463 [Opn]: gcc warning & PHP doesn't start using own openssl & curl
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-219650@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=77463&edit=1

 ID:                 77463
 User updated by:    office at vargapeter dot net
 Reported by:        office at vargapeter dot net
 Summary:            gcc warning & PHP doesn't start using own openssl &
                     curl
 Status:             Open
 Type:               Bug
 Package:            Compile Warning
 Operating System:   SLES 12.4
 PHP Version:        7.2.14
 Block user comment: N
 Private report:     N

 New Comment:

The error when I run httpd -X from gdb:
httpd: Syntax error on line 233 of /etc/apache2/httpd.conf: Cannot load
/usr/local/libexec/mod_dav_svn.so into server: /usr/local/libexec/mod_dav_svn.so: undefined symbol:
dav_do_find_liveprop

-------------
Very strange:
-------------
When I DISABLE the PHP7 module then Apache starts!
I can access without any problem the SVN features in the browser.

Enabling PHP7 --> I get the above error message.
+++++++++++++++++++++++++++++++++++++++++++++++++

I am using the subversion 1.11.0 downloaded from the Apache site https://subversion.apache.org/download.cgi

However, it looks like something in libphp7.so prevents mod_dav_svn.so from loading and then it
complains regarding the undefined symbol dav_do_find_liveprop.

Maybe this has something to do with this problem:
In PHP 7.2.13 I see while installation this:
libtool --mode=install install libphp7.la /usr/lib64/apache2-prefork/
                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^

Suddenly, even nothing changed in the configuration string [I am using a script] this changed to:
libtool --mode=install install libphp7.la /usr/lib64/apache2/
                                          ^^^^^^^^^^^^^^^^^^^

So, first, I had to set a symbolic link to the new location of libphp7.la in order Apache does find
it. But with this new location the mod_dav_svn.so problems started.

For each PHP version I use --with-apxs2=/usr/bin/apxs2-prefork

Any idea? I have this problems since I am using the personalized curl and openssl. I had to do this
because I upgraded to SLES 12.4 and while the upgrade process the distribution curl developer
version was removed and THEREFORE I am forced to used my own versions.

***************
I could fix it:
***************

When I compile a separated CURL [7.63.0] version USING the distribution openssl version into a
DIFFERENT directory and use this [e.q. --with-curl=/php-curl-version] then IT WORKS and the above
libtool commands are using the correct paths [e.q. /usr/lib64/apache2-prefork/].

....................................................................
Guys, can it be you have a bug in the above described constellation?
....................................................................


Previous Comments:
------------------------------------------------------------------------
[2019-01-18 14:57:42] cmb@php.net

See <https://bugs.php.net/bugs-generating-backtrace.php>.

------------------------------------------------------------------------
[2019-01-18 11:56:25] office at vargapeter dot net

How can I get it?

In the Apache log file is nothing. The Apache process just doesn't start. Please provide
instruction how I can post here the stack trace.

Compiling it with the old distribution versions of curl and openssl works fine.

------------------------------------------------------------------------
[2019-01-18 11:25:28] nikic@php.net

Would it be possible to provide a stack trace for the crash?

------------------------------------------------------------------------
[2019-01-15 14:15:40] office at vargapeter dot net

Description:
------------
Compiling PHP 7.2.14 with gcc 8.2.0 produces lot of warnings when using openssl 1.1.0h and curl
7.63.0 which differ from the SLES 12.4 distribution versions and have been compiled into a separate
directories.

I provide the path to the personalized curl and openssl versions to the ./configure script using
--with-openssl=/FaF/openssl
--with-curl=/FaF/curl

Also then, once PHP compiles and installs it cannot be started.
No error messages are logged in the Apache log file but Apache apparently crashes.

I set also the relative path to the personalized openssl and curl libraries for the linker using:
LDFLAGS="-Wl,--rpath=/FaF/openssl/lib -Wl,--rpath=/FaF/curl/lib" ./configure
my-configuration

Using the distribution versions of openssl & curl work.
May be a problem when loading the personalized libraries?



Expected result:
----------------
No warnings and crash when starting the compiled PHP version.

Actual result:
--------------
/builds/php-7.2.14/ext/openssl/xp_ssl.c:965:3: warning: ‘TLSv1_client_method’ is
deprecated [-Wdeprecated-declarations]
   return is_client ? TLSv1_client_method() : TLSv1_server_method();
   ^~~~~~
In file included from /FaF/openssl/include/openssl/ct.h:13,
                 from /FaF/openssl/include/openssl/ssl.h:61,
                 from /builds/php-7.2.14/ext/openssl/xp_ssl.c:34:
/FaF/openssl/include/openssl/ssl.h:1629:45: note: declared here
 DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_client_method(void)) /* TLSv1.0 */
                                             ^~~~~~~~~~~~~~~~~~~
/FaF/openssl/include/openssl/opensslconf.h:99:35: note: in definition of macro
‘DECLARE_DEPRECATED’
 # define DECLARE_DEPRECATED(f)    f __attribute__ ((deprecated));
                                   ^
/FaF/openssl/include/openssl/ssl.h:1629:1: note: in expansion of macro
‘DEPRECATEDIN_1_1_0’
 DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_client_method(void)) /* TLSv1.0 */
 ^~~~~~~~~~~~~~~~~~
/builds/php-7.2.14/ext/openssl/xp_ssl.c:965:3: warning: ‘TLSv1_server_method’ is
deprecated [-Wdeprecated-declarations]
   return is_client ? TLSv1_client_method() : TLSv1_server_method();
   ^~~~~~
In file included from /FaF/openssl/include/openssl/ct.h:13,
                 from /FaF/openssl/include/openssl/ssl.h:61,
                 from /builds/php-7.2.14/ext/openssl/xp_ssl.c:34:
/FaF/openssl/include/openssl/ssl.h:1628:45: note: declared here
 DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_server_method(void)) /* TLSv1.0 */
                                             ^~~~~~~~~~~~~~~~~~~
/FaF/openssl/include/openssl/opensslconf.h:99:35: note: in definition of macro
‘DECLARE_DEPRECATED’
 # define DECLARE_DEPRECATED(f)    f __attribute__ ((deprecated));
                                   ^
/FaF/openssl/include/openssl/ssl.h:1628:1: note: in expansion of macro
‘DEPRECATEDIN_1_1_0’
 DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_server_method(void)) /* TLSv1.0 */
 ^~~~~~~~~~~~~~~~~~
/builds/php-7.2.14/ext/openssl/xp_ssl.c:968:3: warning: ‘TLSv1_1_client_method’ is
deprecated [-Wdeprecated-declarations]
   return is_client ? TLSv1_1_client_method() : TLSv1_1_server_method();
   ^~~~~~
In file included from /FaF/openssl/include/openssl/ct.h:13,
                 from /FaF/openssl/include/openssl/ssl.h:61,
                 from /builds/php-7.2.14/ext/openssl/xp_ssl.c:34:
/FaF/openssl/include/openssl/ssl.h:1635:45: note: declared here
 DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_client_method(void)) /* TLSv1.1 */
                                             ^~~~~~~~~~~~~~~~~~~~~
/FaF/openssl/include/openssl/opensslconf.h:99:35: note: in definition of macro
‘DECLARE_DEPRECATED’
 # define DECLARE_DEPRECATED(f)    f __attribute__ ((deprecated));
                                   ^
/FaF/openssl/include/openssl/ssl.h:1635:1: note: in expansion of macro
‘DEPRECATEDIN_1_1_0’
 DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_client_method(void)) /* TLSv1.1 */
 ^~~~~~~~~~~~~~~~~~
/builds/php-7.2.14/ext/openssl/xp_ssl.c:968:3: warning: ‘TLSv1_1_server_method’ is
deprecated [-Wdeprecated-declarations]
   return is_client ? TLSv1_1_client_method() : TLSv1_1_server_method();
   ^~~~~~
In file included from /FaF/openssl/include/openssl/ct.h:13,
                 from /FaF/openssl/include/openssl/ssl.h:61,
                 from /builds/php-7.2.14/ext/openssl/xp_ssl.c:34:
/FaF/openssl/include/openssl/ssl.h:1634:45: note: declared here
 DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_server_method(void)) /* TLSv1.1 */
                                             ^~~~~~~~~~~~~~~~~~~~~
/FaF/openssl/include/openssl/opensslconf.h:99:35: note: in definition of macro
‘DECLARE_DEPRECATED’
 # define DECLARE_DEPRECATED(f)    f __attribute__ ((deprecated));
                                   ^
/FaF/openssl/include/openssl/ssl.h:1634:1: note: in expansion of macro
‘DEPRECATEDIN_1_1_0’
 DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_server_method(void)) /* TLSv1.1 */
 ^~~~~~~~~~~~~~~~~~
/builds/php-7.2.14/ext/openssl/xp_ssl.c:976:3: warning: ‘TLSv1_2_client_method’ is
deprecated [-Wdeprecated-declarations]
   return is_client ? TLSv1_2_client_method() : TLSv1_2_server_method();
   ^~~~~~
In file included from /FaF/openssl/include/openssl/ct.h:13,
                 from /FaF/openssl/include/openssl/ssl.h:61,
                 from /builds/php-7.2.14/ext/openssl/xp_ssl.c:34:
/FaF/openssl/include/openssl/ssl.h:1641:45: note: declared here
 DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_client_method(void)) /* TLSv1.2 */
                                             ^~~~~~~~~~~~~~~~~~~~~
/FaF/openssl/include/openssl/opensslconf.h:99:35: note: in definition of macro
‘DECLARE_DEPRECATED’
 # define DECLARE_DEPRECATED(f)    f __attribute__ ((deprecated));
                                   ^
/FaF/openssl/include/openssl/ssl.h:1641:1: note: in expansion of macro
‘DEPRECATEDIN_1_1_0’
 DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_client_method(void)) /* TLSv1.2 */
 ^~~~~~~~~~~~~~~~~~
/builds/php-7.2.14/ext/openssl/xp_ssl.c:976:3: warning: ‘TLSv1_2_server_method’ is
deprecated [-Wdeprecated-declarations]
   return is_client ? TLSv1_2_client_method() : TLSv1_2_server_method();
   ^~~~~~
In file included from /FaF/openssl/include/openssl/ct.h:13,
                 from /FaF/openssl/include/openssl/ssl.h:61,
                 from /builds/php-7.2.14/ext/openssl/xp_ssl.c:34:
/FaF/openssl/include/openssl/ssl.h:1640:45: note: declared here
 DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_server_method(void)) /* TLSv1.2 */
                                             ^~~~~~~~~~~~~~~~~~~~~
/FaF/openssl/include/openssl/opensslconf.h:99:35: note: in definition of macro
‘DECLARE_DEPRECATED’
 # define DECLARE_DEPRECATED(f)    f __attribute__ ((deprecated));
                                   ^
/FaF/openssl/include/openssl/ssl.h:1640:1: note: in expansion of macro
‘DEPRECATEDIN_1_1_0’
 DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_server_method(void)) /* TLSv1.2 */
 ^~~~~~~~~~~~~~~~~~



------------------------------------------------------------------------



--
Edit this bug report at https://bugs.php.net/bug.php?id=77463&edit=1


Thread (12 messages)

« previous php.bugs (#219650) next »