Skip to content

undefined symbol: rados_clone_range on CentOS 7 #30

@kaplun

Description

@kaplun

Hi I am trying to build phprados on CentOS 7 to be used with PHP-7.2. as provided by WebTatic: https://webtatic.com/packages/php72/

I have installed librados:

$ rpm -qa | grep rados
librados-devel-12.2.5-0.el7.x86_64
librados2-12.2.5-0.el7.x86_64

And the phprados does compile and install successfully. However upon import into PHP it fails with:

PHP Warning:  PHP Startup: Unable to load dynamic library 'rados.so' (tried:
 /usr/lib64/php/modules/rados.so (/usr/lib64/php/modules/rados.so: undefined symbol: 
rados_clone_range), /usr/lib64/php/modules/rados.so.so (/usr/lib64/php/modules/rados.so.so: cannot 
open shared object file: No such file or directory)) in Unknown on line 0

I checked and indeed:

$ ldd -r /usr/lib64/php/modules/rados.so 
	linux-vdso.so.1 =>  (0x00007ffda4e6d000)
	libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007f17dcd14000)
	librados.so.2 => /lib64/librados.so.2 (0x00007f17dc9af000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f17dc5ec000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007f17dc3e8000)
	libz.so.1 => /lib64/libz.so.1 (0x00007f17dc1d2000)
	libceph-common.so.0 => /usr/lib64/ceph/libceph-common.so.0 (0x00007f17d34f2000)
	libblkid.so.1 => /lib64/libblkid.so.1 (0x00007f17d32b3000)
	libssl3.so => /lib64/libssl3.so (0x00007f17d3067000)
	libsmime3.so => /lib64/libsmime3.so (0x00007f17d2e40000)
	libnss3.so => /lib64/libnss3.so (0x00007f17d2b16000)
	libnssutil3.so => /lib64/libnssutil3.so (0x00007f17d28e9000)
	libplds4.so => /lib64/libplds4.so (0x00007f17d26e5000)
	libplc4.so => /lib64/libplc4.so (0x00007f17d24e0000)
	libnspr4.so => /lib64/libnspr4.so (0x00007f17d22a2000)
	librt.so.1 => /lib64/librt.so.1 (0x00007f17d209a000)
	libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f17d1e80000)
	libibverbs.so.1 => /lib64/libibverbs.so.1 (0x00007f17d1c6b000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f17d1a4f000)
	libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f17d1747000)
	libm.so.6 => /lib64/libm.so.6 (0x00007f17d1445000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f17d122f000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f17dd381000)
	libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f17d102a000)
	libnl-route-3.so.200 => /lib64/libnl-route-3.so.200 (0x00007f17d0dbd000)
	libnl-3.so.200 => /lib64/libnl-3.so.200 (0x00007f17d0b9c000)
undefined symbol: zend_hash_get_current_data_ex	(/usr/lib64/php/modules/rados.so)
undefined symbol: php_error_docref0	(/usr/lib64/php/modules/rados.so)
undefined symbol: add_next_index_string	(/usr/lib64/php/modules/rados.so)
undefined symbol: _emalloc	(/usr/lib64/php/modules/rados.so)
undefined symbol: zend_hash_move_forward_ex	(/usr/lib64/php/modules/rados.so)
undefined symbol: php_info_print_table_row	(/usr/lib64/php/modules/rados.so)
undefined symbol: rados_clone_range	(/usr/lib64/php/modules/rados.so)
undefined symbol: add_next_index_long	(/usr/lib64/php/modules/rados.so)
undefined symbol: zend_fetch_resource	(/usr/lib64/php/modules/rados.so)
undefined symbol: add_assoc_string_ex	(/usr/lib64/php/modules/rados.so)
undefined symbol: Z_LVAL_PP	(/usr/lib64/php/modules/rados.so)
undefined symbol: _emalloc_16	(/usr/lib64/php/modules/rados.so)
undefined symbol: php_info_print_table_end	(/usr/lib64/php/modules/rados.so)
undefined symbol: php_info_print_table_start	(/usr/lib64/php/modules/rados.so)
undefined symbol: zend_hash_internal_pointer_reset_ex	(/usr/lib64/php/modules/rados.so)
undefined symbol: Z_TYPE_PP	(/usr/lib64/php/modules/rados.so)
undefined symbol: _estrndup	(/usr/lib64/php/modules/rados.so)
undefined symbol: zend_parse_parameters	(/usr/lib64/php/modules/rados.so)
undefined symbol: zend_register_resource	(/usr/lib64/php/modules/rados.so)
undefined symbol: zend_register_list_destructors_ex	(/usr/lib64/php/modules/rados.so)
undefined symbol: _efree	(/usr/lib64/php/modules/rados.so)
undefined symbol: add_assoc_stringl_ex	(/usr/lib64/php/modules/rados.so)
undefined symbol: add_assoc_long_ex	(/usr/lib64/php/modules/rados.so)
undefined symbol: _array_init	(/usr/lib64/php/modules/rados.so)
undefined symbol: zend_hash_get_current_key_ex	(/usr/lib64/php/modules/rados.so)
undefined symbol: php_sprintf	(/usr/lib64/php/modules/rados.so)
undefined symbol: display_ini_entries	(/usr/lib64/php/modules/rados.so)

Beside the PHP-specific symbols, that can only be resolved from within PHP, it seems like like also rados_clone_range is an unresolved symbol.

cc: @JanoSicek

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions