Summary: | dev-lang/php: modules: Error relocating | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Alexander Miroshnichenko <alex> |
Component: | Current packages | Assignee: | PHP Bugs <php-bugs> |
Status: | UNCONFIRMED --- | ||
Severity: | normal | CC: | hydrapolic, mjo |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Alexander Miroshnichenko
2021-10-10 15:35:10 UTC
(In reply to Alexander Miroshnichenko from comment #0) > php fails to load any module with Error relocating error > > Reproducible: Always > > Steps to Reproduce: > 1. install gentoo linux with musl libc > 2. install php any module, opcache for example. > 3. php fails to load module > Actual Results: > $ php -v > Failed loading /usr/lib/php8.0/lib/opcache.so: Error relocating > /usr/lib/php8.0/lib/opcache.so: concat_function: initial-exec TLS resolves > to dynamic definition in /usr/lib/php8.0/lib/opcache.so > PHP 8.0.11 (cli) (built: Oct 7 2021 23:21:17) ( ZTS ) > Copyright (c) The PHP Group > Zend Engine v4.0.11, Copyright (c) Zend Technologies > > > $ ldd /usr/lib/php8.0/lib/opcache.so > ldd (0x6cacb207b000) > libc.so => ldd (0x6cacb207b000) > Error relocating /usr/lib/php8.0/lib/opcache.so: convert_to_array: symbol > not found > Error relocating /usr/lib/php8.0/lib/opcache.so: _erealloc: symbol not found > ... > Error relocating /usr/lib/php8.0/lib/opcache.so: mul_function: symbol not > found How is PHP built? Where did this opcache.so come from? Opcache should never be a shared module under Gentoo. It is hard coded into the binary when enabled (by default at that as well). (In reply to Brian Evans from comment #1) > (In reply to Alexander Miroshnichenko from comment #0) > > php fails to load any module with Error relocating error > > > > Reproducible: Always > > > > Steps to Reproduce: > > 1. install gentoo linux with musl libc > > 2. install php any module, opcache for example. > > 3. php fails to load module > > Actual Results: > > $ php -v > > Failed loading /usr/lib/php8.0/lib/opcache.so: Error relocating > > /usr/lib/php8.0/lib/opcache.so: concat_function: initial-exec TLS resolves > > to dynamic definition in /usr/lib/php8.0/lib/opcache.so > > PHP 8.0.11 (cli) (built: Oct 7 2021 23:21:17) ( ZTS ) > > Copyright (c) The PHP Group > > Zend Engine v4.0.11, Copyright (c) Zend Technologies > > > > > > $ ldd /usr/lib/php8.0/lib/opcache.so > > ldd (0x6cacb207b000) > > libc.so => ldd (0x6cacb207b000) > > Error relocating /usr/lib/php8.0/lib/opcache.so: convert_to_array: symbol > > not found > > Error relocating /usr/lib/php8.0/lib/opcache.so: _erealloc: symbol not found > > ... > > Error relocating /usr/lib/php8.0/lib/opcache.so: mul_function: symbol not > > found > > How is PHP built? Where did this opcache.so come from? # qlist -IUe php dev-lang/php acl argon2 bcmath bzip2 cli ctype curl embed fileinfo filter flatfile fpm gd gmp iconv imap intl ipv6 jit nls opcache pdo phar posix postgres readline selinux session simplexml spell sqlite ssl threads tokenizer truetype unicode xml xmlreader xmlwriter zip zlib Opcache is part of php (when opcache USE flag enabled), but it builds as loadable module: # qlist -e php|grep opcache.so /usr/lib/php8.0/lib/opcache.so # qfile /usr/lib/php8.0/lib/opcache.so dev-lang/php: /usr/lib/php8.0/lib/opcache.so Same issue with any other modules: # qlist -IU dev-php/pecl-imagick dev-php/pecl-imagick php_targets_php8-0 # qlist -e dev-php/pecl-imagick|grep imagick.so /usr/lib/php8.0/lib/extensions/no-debug-zts-20200930/imagick.so # ldd /usr/lib/php8.0/lib/extensions/no-debug-zts-20200930/imagick.so ldd (0x69993f532000) libgomp.so.1 => /usr/lib/gcc/x86_64-gentoo-linux-musl/10.3.0/libgomp.so.1 (0x69993f481000) libMagickWand-7.Q16.so.7 => /usr/lib/libMagickWand-7.Q16.so.7 (0x69993f378000) libMagickCore-7.Q16.so.7 => /usr/lib/libMagickCore-7.Q16.so.7 (0x69993f107000) libc.so => ldd (0x69993f532000) libbz2.so.1 => /lib/libbz2.so.1 (0x69993f0ef000) libz.so.1 => /lib/libz.so.1 (0x69993f0d1000) libltdl.so.7 => //usr/lib/libltdl.so.7 (0x69993eec7000) Error relocating /usr/lib/php8.0/lib/extensions/no-debug-zts-20200930/imagick.so: add_next_index_bool: symbol not found Error relocating /usr/lib/php8.0/lib/extensions/no-debug-zts-20200930/imagick.so: _php_stream_cast: symbol not found Error relocating /usr/lib/php8.0/lib/extensions/no-debug-zts-20200930/imagick.so: add_assoc_zval_ex: symbol not found Error relocating /usr/lib/php8.0/lib/extensions/no-debug-zts-20200930/imagick.so: zend_declare_class_constant_string: symbol not found ... > Opcache should never be a shared module under Gentoo. It is hard coded into > the binary when enabled (by default at that as well). I don't know what to say. In my gentoo installation opcache builds as shared module with php. |