nrk/phpiredis

Extension fails to load when built with hiredis 0.14 on armv7h or x86_64: works on armv6h

gearhead opened this issue · 3 comments

All previous versions worked fine. Arch recently upgraded hiredis to 0.14.0-1. I built it for armv6 against php 7.4.3 and hiredis 0.14.0-1 and I can load and run the extension

phpinfo()
PHP Version => 7.4.2

System => Linux runeaudio 4.19.102-1-ARCH #1 SMP PREEMPT Thu Feb 13 22:13:34 CST 2020 armv6l
Build Date => Jan 21 2020 19:19:29
...
phpiredis

phpiredis => enabled
phpiredis version => 1.0.0
hiredis version => 0.14.0

When I build it for armv7h, I get an error:

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

Warning: PHP Startup: Unable to load dynamic library 'phpiredis' (tried: /usr/lib/php/modules/phpiredis (/usr/lib/php/modules/phpiredis: cannot open shared object file: No such file or directory), /usr/lib/php/modules/phpiredis.so (/usr/lib/php/modules/phpiredis.so: undefined symbol: redisReplyReaderGetError)) in Unknown on line 0
phpinfo()
PHP Version => 7.4.2

System => Linux livingrune 4.19.102-1-ARCH #1 SMP PREEMPT Sun Feb 9 19:07:08 UTC 2020 armv7l
Build Date => Jan 21 2020 19:19:33

If I revert the hiredis version to 0.13.3-2 (on both the build machine and the running machine) and re-build the extension, I get no error
Both the build machine and the machine I am using it on are 'up to date' with packages. I did a pacman -Syu on both machines and re-built the extension

phpinfo()
PHP Version => 7.4.2

System => Linux livingrune 4.19.102-1-ARCH #1 SMP PREEMPT Sun Feb 9 19:07:08 UTC 2020 armv7l
Build Date => Jan 21 2020 19:19:33
...
phpiredis

phpiredis => enabled
phpiredis version => 1.0.0
hiredis version => 0.13.3

Both the armv6h and armv7h kernel and hiredis extension are built using the same PKGBUILD file.

This package also builds but does not work on x86_64. It requires the same work-around: revert hiredis to 0.13.3. When built against this, all works. Curious that it works on armv6h, but not on armv7h or x86_64

Ignore this issue. It is not relevant. Was a different version of hiredis between the builds when I reported it. Has been resolved on the Arch Linux side.

nrk commented

Changes to support Hiredis >= 0.14, >= 1.0 have been merged in the v1.1 branch, the new minor release will be shipped in a few days is everything is fine. Thank you.