kjdev / php-ext-zstd

Zstd Extension for PHP
MIT License
201 stars 27 forks source link

compilation does not handle with-libdir correctly #44

Closed mokraemer closed 1 year ago

mokraemer commented 1 year ago

/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.

remicollet commented 1 year ago

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

remicollet commented 1 year ago

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

mokraemer commented 1 year ago

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

mokraemer commented 1 year ago

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

remicollet commented 1 year ago

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)

mokraemer commented 1 year ago

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

mokraemer commented 1 year ago

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