Hi Paul, On Tue, Sep 10, 2024 at 08:47:17AM -0400, Paul Smith wrote: > On Tue, 2024-09-10 at 10:52 +0200, Mark Wielaard wrote: > > On Mon, Sep 09, 2024 at 06:21:16PM -0400, Paul Smith wrote: > > > On Mon, 2024-09-09 at 15:29 -0400, Paul Smith wrote: > > > > I'm trying to build the latest elfutils release 0.191. The > > > > configure > > > > help says: > > > > > > > > ZSTD_COMPRESS_CFLAGS > > > > C compiler flags for ZSTD_COMPRESS, overriding pkg- > > > > config > > > > ZSTD_COMPRESS_LIBS > > > > linker flags for ZSTD_COMPRESS, overriding pkg- > > > > config > > > > > > Actually, these variables don't seem to work either. > > > > > > Looking at the generated configure script, I don't see how to get > > > elfutils to use zstd from a non-standard location? > > > > Yeah, this is unfortunate. There are two checks in configure.ac. One > > for zstd decompression support (as used in libdw) which uses the > > eu_ZIPLIB macro (as defined in m4/zip.m4). This is the main check, it > > also creates the --with-zstd=... configure argument to provide an > > alternative location. > > Hm. Are you saying that if I use --with-zstd=/my/prefix that should > work? That was the first thing I tried, but it didn't seem to work and > I don't think (from reading the configure script) where this value is > used as part of the path search. But, the shell output of autoconf is > not easy to read so maybe I missed it. I can give it another try.
It should work, for building libdw. But then we (elfutils in configure.ac) does something odd for building with libelf by using pkgconfig. I would try two things: - Remove the PKG_CONFIG checking and just set with_zstd_compress to with_zstd: diff --git a/configure.ac b/configure.ac index 8f5901a2af7c..3c10ae3482fa 100644 --- a/configure.ac +++ b/configure.ac @@ -458,12 +458,7 @@ zip_LIBS="$LIBS" LIBS="$save_LIBS" AC_SUBST([zip_LIBS]) -dnl zstd compression support requires libzstd 1.4.0+ -AS_IF([test "x$with_zstd" = xyes], [ - PKG_PROG_PKG_CONFIG - PKG_CHECK_MODULES([ZSTD_COMPRESS],[libzstd >= 1.4.0], - [with_zstd_compress="yes"],[with_zstd_compress="no"])], - [with_zstd_compress="no"]) +with_zstd_compress=$with_zstd AM_CONDITIONAL(USE_ZSTD_COMPRESS, test "x$with_zstd_compress" = "xyes") AS_IF([test "x$with_zstd_compress" = "xyes"], [AC_DEFINE([USE_ZSTD_COMPRESS], [1], [zstd compression support])]) Now --with-zstd=... should work. - Replace the function being checked to something libzstd only defines with 1.4.0+ maybe ZSTD_compressStream2 (which is actually used in libelf. diff --git a/configure.ac b/configure.ac index 8f5901a2af7c..1307fb2df086 100644 --- a/configure.ac +++ b/configure.ac @@ -449,7 +449,7 @@ LIBS="$lzma_LIBS $save_LIBS" AS_IF([test "x$with_lzma" = xyes], [LIBLZMA="liblzma"], [LIBLZMA=""]) AC_SUBST([lzma_LIBS]) AC_SUBST([LIBLZMA]) -eu_ZIPLIB(zstd,ZSTD,zstd,ZSTD_decompress,[ZSTD (zst)]) +eu_ZIPLIB(zstd,ZSTD,zstd,ZSTD_compressStream2,[ZSTD (zst)]) AS_IF([test "x$with_zstd" = xyes], [LIBZSTD="libzstd"], [LIBLZSTD=""]) AC_SUBST([LIBZSTD]) zstd_LIBS="$LIBS" Hope that helps. It would mean requiring zstd 1.4.0+ always, but that might be reasonable these days. Cheers, Mark