kjdev/php-ext-zstd

compilation does not handle with-libdir correctly

mokraemer opened this issue · 7 comments

/usr/local is added:
./configure --host=x86_64-mageia-linux-gnu --build=x86_64-mageia-linux-gnu --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-libzstd --with-libdir=lib64 --enable-zstd=shared,/usr

results in
cc -shared -Wl,--as-needed .libs/zstd.o -Wl,--as-needed -Wl,-z -Wl,relro -Wl,-O1 -Wl,--build-id=sha1 -Wl,--enable-new-dtags -Wl,-rpath -Wl,/usr/local/lib -L/usr/local/lib -lzstd -Wl,-soname -Wl,zstd.so -o .libs/zstd.so creating zstd.la

and should be /usr/lib64.

Should not happen... last version rely on pkg-config and doesn't accept path anymore...

configure (using --with-libzstd):

checking whether to enable zstd support... yes, shared
checking whether to use system zstd library... yes
checking for pkg-config... (cached) /usr/bin/x86_64-redhat-linux-gnu-pkg-config
checking for libzstd... from pkgconfig: version 1.5.2

build:
libtool: link: cc -shared -fPIC -DPIC .libs/zstd.o -lzstd -O2 -flto=auto -g -grecord-gcc-switches -fstack-protector-strong -m64 -mtune=generic -Wl,-z -Wl,relro -Wl,--as-needed -Wl,-z -Wl,now -Wl,-soname -Wl,zstd.so -o .libs/zstd.so

yes it does use pkgconfig. but is wrong....
here is the output
compile.txt

Sorry, some patch was applied (removed it). But without that patch all builds go to
/usr/local
even though --prefix=/usr --exec-prefix=/usr are specified.
updated compilation, no patches!

compile.txt

check output of pkg-config libzstd --libs --cflags

even though --prefix=/usr --exec-prefix=/usr are specified.

This have no value for php extension (inherited from php itself)

hmm, it looks like libzstd gives the wrong linker flags. Ok, I'll have to look why this changed.
Thx.

I think I can go one from here.
Thanks for your help / time.