Summary: | dev-lang/python-3.3.2-r2 - *** WARNING: renaming "_lzma" since importing it failed: build/lib.linux-x86_64-3.3/_lzma.cpython-33.so: undefined symbol: lzma_easy_encoder | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | walter+gentoo |
Component: | [OLD] Development | Assignee: | Python Gentoo Team <python> |
Status: | RESOLVED INVALID | ||
Severity: | normal | ||
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | AMD64 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | build.log |
Description
walter+gentoo
2014-01-20 16:40:20 UTC
Created attachment 368260 [details]
build.log
> *** WARNING: renaming "_lzma" since importing it failed: build/lib.linux-x86_64-3.3/_lzma.cpython-33.so: undefined symbol: lzma_easy_encoder
Well, that symbol should be present.
Which version of app-arch/xz-utils is installed ?
Does liblzma really lack this symbol ?
Thank you for your reply. > Which version of app-arch/xz-utils is installed ? % equery list -i app-arch/xz-utils * Searching for xz-utils in app-arch ... [IP-] [ ] app-arch/xz-utils-5.0.5-r1:0 > Does liblzma really lack this symbol ? Yes % objdump -tT /usr/local/lib/liblzma.so | egrep 'lzma_easy_encoder$' % It seems that /usr/lib/liblzma.so contains lzma_easy_encoder. % cat /usr/lib/liblzma.so /* GNU ld script Since Gentoo has critical dynamic libraries in /lib, and the static versions in /usr/lib, we need to have a "fake" dynamic lib in /usr/lib, otherwise we run into linking problems. This "fake" dynamic lib is a linker script that redirects the linker to the real lib. And yes, this works in the cross- compiling scenario as the sysroot-ed linker will prepend the real path. See bug http://bugs.gentoo.org/4411 for more info. */ OUTPUT_FORMAT ( elf64-x86-64 ) GROUP ( /lib64/liblzma.so.5 ) % objdump -tT /lib64/liblzma.so.5 | egrep 'lzma_easy_encoder$' 0000000000006140 g DF .text 0000000000000059 Base lzma_easy_encoder ...well, personally, I prefer 'nm -C -D', but whatever, not the point However, /usr/*local*/lib/liblzma.so definitely is the point. Purge trash out of /usr/local/{lib*,include}. |