libarchive, lzma, and xz interaction

Kevin Oberman kob6558 at gmail.com
Sat Jul 2 05:48:01 UTC 2011


I'm trying to understand the problems I am having on some systems
regarding libarchive, lzma, and xz.
I have an 8-Stable system updated yesterday. As far as I can tell,
libarchive does include the lzma stuff
from libzma. At least I see the references. But several ports seem to
still pull in xz-5.0.1 and link to it.
This has a wonderful potential to cause library symbol conflicts. I get:
/usr/lib/libarchive.so: undefined reference to `lzma_stream_encoder at XZ_5.0'
/usr/lib/libarchive.so: undefined reference to `lzma_alone_decoder at XZ_5.0'
/usr/lib/libarchive.so: undefined reference to `lzma_memusage at XZ_5.0'
/usr/lib/libarchive.so: undefined reference to `lzma_stream_decoder at XZ_5.0'
/usr/lib/libarchive.so: undefined reference to `lzma_code at XZ_5.0'
/usr/lib/libarchive.so: undefined reference to `lzma_end at XZ_5.0'
/usr/lib/libarchive.so: undefined reference to `lzma_lzma_preset at XZ_5.0'
/usr/lib/libarchive.so: undefined reference to `lzma_alone_encoder at XZ_5.0'

ldd shows libarchive linked against liblzma.so.5 and an objdump of the
dynamic symbols from liblzma.so.5
shows the "undefined symbols" defined with the XZ_5.0 version, so I am
mystified. It looks o me like it is
there. Is confusion with xz-5.0.1 causing this? Should get rid of it?
Even so, I don't understand why the
loader is claiming that these symbols are undefined when they seem to
be defined as far as I can tell.
0000000000007c60 g    DF .text  0000000000000084  XZ_5.0
lzma_stream_encoder

Any clues to what i happening would be greatly appreciated!
-- 
R. Kevin Oberman, Network Engineer - Retired
E-mail: kob6558 at gmail.com


More information about the freebsd-stable mailing list