Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
static libarchive: missing ZSTD symbols?
Hi!
While trying to link pkgin statically on -current, I noticed a problem
in libarchive.
The symptom:
CCLD pkgin
ld: /usr/lib/libarchive.a(archive_read_support_filter_zstd.o): in function `zstd_filter_close':
archive_read_support_filter_zstd.c:(.text+0x11): undefined reference to `ZSTD_freeDStream'
ld: /usr/lib/libarchive.a(archive_read_support_filter_zstd.o): in function `zstd_bidder_init':
archive_read_support_filter_zstd.c:(.text+0x42): undefined reference to `ZSTD_DStreamOutSize'
ld: archive_read_support_filter_zstd.c:(.text+0x7c): undefined reference to `ZSTD_createDStream'
ld: archive_read_support_filter_zstd.c:(.text+0xd9): undefined reference to `ZSTD_freeDStream'
ld: /usr/lib/libarchive.a(archive_read_support_filter_zstd.o): in function `zstd_filter_read':
archive_read_support_filter_zstd.c:(.text+0x1a4): undefined reference to `ZSTD_decompressStream'
ld: archive_read_support_filter_zstd.c:(.text+0x1af): undefined reference to `ZSTD_isError'
ld: archive_read_support_filter_zstd.c:(.text+0x1ee): undefined reference to `ZSTD_initDStream'
ld: archive_read_support_filter_zstd.c:(.text+0x1f9): undefined reference to `ZSTD_isError'
ld: archive_read_support_filter_zstd.c:(.text+0x27a): undefined reference to `ZSTD_getErrorName'
ld: archive_read_support_filter_zstd.c:(.text+0x2a6): undefined reference to `ZSTD_getErrorName'
*** [pkgin] Error code 1
which lead me to investigating the static libarchive:
nm /usr/lib/libarchive.a| grep U.ZSTD
U ZSTD_CCtx_reset
U ZSTD_CCtx_setParameter
U ZSTD_CStreamOutSize
U ZSTD_cParam_getBounds
U ZSTD_compressStream
U ZSTD_createCStream
U ZSTD_endStream
U ZSTD_freeCStream
U ZSTD_getErrorName
U ZSTD_initCStream
U ZSTD_isError
U ZSTD_maxCLevel
U ZSTD_minCLevel
U ZSTD_versionNumber
U ZSTD_createDStream
U ZSTD_decompressStream
U ZSTD_freeDStream
U ZSTD_getErrorName
U ZSTD_isError
U ZSTD_DStreamOutSize
U ZSTD_createDStream
U ZSTD_decompressStream
U ZSTD_freeDStream
U ZSTD_getErrorName
U ZSTD_initDStream
U ZSTD_isError
U ZSTD_DStreamOutSize
U ZSTD_createDStream
U ZSTD_decompressStream
U ZSTD_freeDStream
U ZSTD_getErrorName
U ZSTD_initDStream
U ZSTD_isError
The shared library doesn't have this problem, but I haven't understood
the build system enough to find where this difference comes from.
I found:
/usr/src/external/bsd/libarchive> grep -r ZSTDDPLIBS
./bin/Makefile.inc:PROGDPLIBS+= ${ZSTDDPLIBS}
./lib/libarchive/Makefile: ${ZSTDDPLIBS} \
and that seems to be defined in:
/usr/src/external/bsd/zstd/Makefile.zstd:ZSTDDPLIBS= zstd ${ZSTD}/lib
Any ideas for the proper fix?
Thanks,
Thomas
Home |
Main Index |
Thread Index |
Old Index