linunwind unable to find some lzma_ symbols
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
libunwind (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
I'm trying to build perf with dwarf support and found that libunwind, which is needed for that, is unusable for perf. The following simple test from perf configure script
gcc -o test-libunwind test-libunwind.c -lunwind -lunwind-x86 -lelf
fails with the following errors
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
collect2: error: ld returned 1 exit status
mentioned symbols are actually exists in liblzma.so (provided by liblzma-dev) but are not found by libunwind. Moreover, adding -llzma to the command line above does not solve the problem, everything is the same
strangely, while requiring all these symbols, libunwind-x86.so requires only libc.so and doesn't mention liblzma.so.6. Looks like some building bug
system info:
"lsb_release -rd" output
Description: Ubuntu 14.04 LTS
Release: 14.04
"apt-cache policy pkgname" output
libunwind8-dev:
Installed: 1.1-2.2ubuntu3
Candidate: 1.1-2.2ubuntu3
Version table:
*** 1.1-2.2ubuntu3 0
500 http://
100 /var/lib/
actually when I tried to rebuild libunwind by myself I found that there are a lot of warnings printed during packaging process. Like:
dpkg-shlibdeps: warning: symbol lzma_index_ buffer_ decode used by debian/ libunwind8/ usr/lib/ i386-linux- gnu/libunwind- x86.so. 8.0.1 found in none of the libraries
(about 20 such warnings)
Looks like lzma compression for symbols is a relatively new feature and not fully tested on all architectures. I created a fix which solves problem and removes all warnings on x86 platform. Sorry, I do not have x86_64 to test how it works there