Topic: mysql.so: undefined symbol: core_globals_id in Unknown on line 0

Remi,

[bpm]$ lsb_release -a
LSB Version:    :core-4.0-amd64:core-4.0-noarch
Distributor ID:    Fedora
Description:    Fedora release 16 (Verne)
Release:    16
Codename:    Verne

  I downloded php-5.4.0-0.16.RC8.remi.src.rpm and did a rpmbuild --rebuild, then installed the packages.

Installed:
  php.x86_64 0:5.4.0-0.16.RC8.fc16                              php-bcmath.x86_64 0:5.4.0-0.16.RC8.fc16                     
  php-cli.x86_64 0:5.4.0-0.16.RC8.fc16                          php-common.x86_64 0:5.4.0-0.16.RC8.fc16                     
  php-dba.x86_64 0:5.4.0-0.16.RC8.fc16                          php-devel.x86_64 0:5.4.0-0.16.RC8.fc16                       
  php-embedded.x86_64 0:5.4.0-0.16.RC8.fc16                     php-enchant.x86_64 0:5.4.0-0.16.RC8.fc16                     
  php-fpm.x86_64 0:5.4.0-0.16.RC8.fc16                          php-gd.x86_64 0:5.4.0-0.16.RC8.fc16                         
  php-imap.x86_64 0:5.4.0-0.16.RC8.fc16                         php-intl.x86_64 0:5.4.0-0.16.RC8.fc16                       
  php-ldap.x86_64 0:5.4.0-0.16.RC8.fc16                         php-mbstring.x86_64 0:5.4.0-0.16.RC8.fc16                   
  php-mcrypt.x86_64 0:5.4.0-0.16.RC8.fc16                       php-mssql.x86_64 0:5.4.0-0.16.RC8.fc16                       
  php-mysql.x86_64 0:5.4.0-0.16.RC8.fc16                        php-odbc.x86_64 0:5.4.0-0.16.RC8.fc16                       
  php-pdo.x86_64 0:5.4.0-0.16.RC8.fc16                          php-pgsql.x86_64 0:5.4.0-0.16.RC8.fc16                       
  php-process.x86_64 0:5.4.0-0.16.RC8.fc16                      php-pspell.x86_64 0:5.4.0-0.16.RC8.fc16                     
  php-recode.x86_64 0:5.4.0-0.16.RC8.fc16                       php-snmp.x86_64 0:5.4.0-0.16.RC8.fc16                       
  php-soap.x86_64 0:5.4.0-0.16.RC8.fc16                         php-tidy.x86_64 0:5.4.0-0.16.RC8.fc16                       
  php-xml.x86_64 0:5.4.0-0.16.RC8.fc16                          php-xmlrpc.x86_64 0:5.4.0-0.16.RC8.fc16                     

Complete!

But when I try to envoke php, I get the error/warnings:

[bpm]$ php -v
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/mysql.so' - /usr/lib64/php/modules/mysql.so: undefined symbol: core_globals_id in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/mysqli.so' - /usr/lib64/php/modules/mysqli.so: undefined symbol: core_globals_id in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/pdo.so' - /usr/lib64/php/modules/pdo.so: undefined symbol: executor_globals_id in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/pdo_dblib.so' - /usr/lib64/php/modules/pdo_dblib.so: undefined symbol: php_pdo_unregister_driver in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/pdo_mysql.so' - /usr/lib64/php/modules/pdo_mysql.so: undefined symbol: php_pdo_register_driver in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/pdo_odbc.so' - /usr/lib64/php/modules/pdo_odbc.so: undefined symbol: pdo_parse_params in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/pdo_pgsql.so' - /usr/lib64/php/modules/pdo_pgsql.so: undefined symbol: pdo_parse_params in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/pdo_sqlite.so' - /usr/lib64/php/modules/pdo_sqlite.so: undefined symbol: core_globals_id in Unknown on line 0
PHP 5.4.0RC8 (cli) (built: Feb 23 2012 09:08:51)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies

[bpm]$ ldd /usr/lib64/php/modules/mysql.so
    linux-vdso.so.1 =>  (0x00007fffa8dff000)
    libmysqlclient.so.18 => /usr/lib64/mysql/libmysqlclient.so.18 (0x00007ff4e130e000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff4e10f2000)
    libc.so.6 => /lib64/libc.so.6 (0x00007ff4e0d3b000)
    libz.so.1 => /lib64/libz.so.1 (0x00007ff4e0b24000)
    libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007ff4e08c9000)
    libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007ff4e052f000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007ff4e032b000)
    librt.so.1 => /lib64/librt.so.1 (0x00007ff4e0123000)
    libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007ff4dfe1b000)
    libm.so.6 => /lib64/libm.so.6 (0x00007ff4dfb97000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007ff4df982000)
    /lib64/ld-linux-x86-64.so.2 (0x00000039b1200000)
    libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007ff4df73f000)
    libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007ff4df461000)
    libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007ff4df25e000)
    libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007ff4df032000)
    libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007ff4dee27000)
    libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007ff4dec23000)
    libresolv.so.2 => /lib64/libresolv.so.2 (0x00007ff4dea07000)
    libselinux.so.1 => /lib64/libselinux.so.1 (0x00007ff4de7e7000)

[bpm]$ readelf -Ws /usr/lib64/php/modules/mysql.so | awk '{print $8}' | grep core_globals_id
core_globals_id

So, I don't know.

Any idea how to troubleshoot this?

Thanks

Re: mysql.so: undefined symbol: core_globals_id in Unknown on line 0

Don't know why you want to rebuild... as the binary RPM are available.

It seems something is broken in your environment ?
Or you have mixed RC7 / RC8 modules

I can't reproduce, can you try "my" binary RPM.

And, will be useful

rpm -qa php\* | sort
rpm -Va php\*
Laptop:  Fedora 38 + rpmfusion + remi (SCL only)
x86_64 builder: Fedora 39 + rpmfusion + remi-test
aarch64 builder: RHEL 9 with EPEL
Hosting Server: CentOS 8 Stream with EPEL, rpmfusion, remi

Re: mysql.so: undefined symbol: core_globals_id in Unknown on line 0

Well, using httpd-2.4.1 which has a new magic number for starters.

Re: mysql.so: undefined symbol: core_globals_id in Unknown on line 0

AFAIK, reading PHP Internals, PHP 5.4.0 is not compatible with Apache 2.4 (what your issue seems to prove) : build issue to detect correct MPM.

This is planed for (probably) PHP 5.4.1.

Laptop:  Fedora 38 + rpmfusion + remi (SCL only)
x86_64 builder: Fedora 39 + rpmfusion + remi-test
aarch64 builder: RHEL 9 with EPEL
Hosting Server: CentOS 8 Stream with EPEL, rpmfusion, remi