VLD is invalid library on Alpine
Closed this issue ยท 5 comments
Strange things happen on Alpine Linux (Docker) ๐
It works fine on Windows and Debian.
PHP: from source/package.
VLD: from source (VLD_0_14_0).
How can I help (debug) for you?
# uname -a
Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.39-1 (2016-12-30) x86_64 Linux
# php -v
PHP 7.1.6 (cli) (built: Jun 12 2017 21:23:32) ( NTS )
# php -dextension=vld.so
PHP Warning: PHP Startup: Invalid library (maybe not a PHP library) 'vld.so' in Unknown on line 0
How did you build vld?
What is in vld.so? Try "file vld.so" (in the right path) and "head vld.so" (in the right path).
Thanks for the quick reply.
git clone -o VLD_0_14_0 --depth 1 https://github.com/derickr/vld.git /tmp/vld
cd /tmp/vld
phpize
./configure
make
make install
# /usr/local/lib/php/extensions/no-debug-non-zts-20160303
# file vld.so
sh: file: not found
# head vld.so > /vld_head.log
vld_head.log (sorry for Dropbox)
Btw,
Alpine uses musl as its libc; musl isn't 100% compatible with glibc, hence the missing symbols.
# file vld.so
sh: file: not found
You do need to install "file" for that to work :-)
But at least the "head" looks like that it is a shared object (ELF) file.
Alpine uses musl as its libc; musl isn't 100% compatible with glibc, hence the missing symbols.
You didn't include these in your report, and they are important to see.
Oh, Alpine and me. Sorry ๐
# file ./vld.so
./vld.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped
# ldd ./vld.so
ldd (0x7f17f725c000)
libc.musl-x86_64.so.1 => ldd (0x7f17f725c000)
I meant the missing symbols! I need to figure out what musl misses.