[Bug lto/94259] New: --without-zstd seems to have no effect and links libzstd if available
slyfox at inbox dot ru
gcc-bugzilla@gcc.gnu.org
Sun Mar 22 11:16:26 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94259
Bug ID: 94259
Summary: --without-zstd seems to have no effect and links
libzstd if available
Product: gcc
Version: 10.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: lto
Assignee: unassigned at gcc dot gnu.org
Reporter: slyfox at inbox dot ru
CC: marxin at gcc dot gnu.org
Target Milestone: ---
Built gcc with --without-zstd as:
$ ../gcc/configure --enable-languages=c,c++ --disable-bootstrap
--with-multilib-list=m64
--prefix=/home/slyfox/dev/git/gcc-native-quick/../gcc-native-quick-installed
--disable-nls --without-isl --disable-libsanitizer --disable-libvtv
--disable-libgomp --disable-libstdcxx-pch --disable-libunwind-exceptions
CFLAGS=-O1 CXXFLAGS=-O1 --with-sysroot=/usr/x86_64-HEAD-linux-gnu
--without-zstd
But cc1plus still links to libzstd:
ldd ./gcc/cc1plus
linux-vdso.so.1 (0x00007ffed53f0000)
libmpc.so.3 => /usr/lib64/libmpc.so.3 (0x00007ff32f12a000)
libmpfr.so.6 => /usr/lib64/libmpfr.so.6 (0x00007ff32f0a9000)
libgmp.so.10 => /usr/lib64/libgmp.so.10 (0x00007ff32f02f000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007ff32f029000)
libzstd.so.1 => /usr/lib64/libzstd.so.1 (0x00007ff32ef95000)
libm.so.6 => /lib64/libm.so.6 (0x00007ff32ee52000)
libc.so.6 => /lib64/libc.so.6 (0x00007ff32ec7e000)
/lib64/ld-linux-x86-64.so.2 (0x00007ff32f1d4000)
Loks like it happens because library/header detection happens regardless of
user's setting in gcc/configure.ac:
https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/configure.ac;h=0d6230e0ca1bdd1f7de34ad452efac867351121a;hb=HEAD#l1316
1323 AC_ARG_WITH(zstd,
1324 [AS_HELP_STRING([--with-zstd=PATH],
1325 [specify prefix directory for installed zstd library.
1326 Equivalent to --with-zstd-include=PATH/include
1327 plus --with-zstd-lib=PATH/lib])])
...
1374 # LTO can use zstd compression algorithm
1375 save_LIBS="$LIBS"
1376 LIBS=
1377 AC_SEARCH_LIBS(ZSTD_compress, zstd)
1378 ZSTD_LIB="$LIBS"
1379 LIBS="$save_LIBS"
1380 AC_SUBST(ZSTD_LIB)
It looks like headers/library detection happens regardless of
--with-zstd/--without-zstd flag being passed. I have zstd installed in /usr and
it always get picked up.
More information about the Gcc-bugs
mailing list