Bug 30246 - Не слинкована с libpython3.3m
Summary: Не слинкована с libpython3.3m
Status: CLOSED NOTABUG
Alias: None
Product: Sisyphus
Classification: Development
Component: libboost_python3-1.53.0 (show other bugs)
Version: unstable
Hardware: all Linux
: P3 major
Assignee: Ivan A. Melnikov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-08-25 06:22 MSK by real@altlinux.org
Modified: 2014-08-25 11:41 MSK (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description real@altlinux.org 2014-08-25 06:22:56 MSK
При использовании выскакивает:

ImportError: /usr/lib64/libboost_python3.so.1.53.0: undefined symbol: PyUnicode_AsUTF8String

$ findsym PyUnicode_AsUTF8String
/usr/lib64/libpython3.3m.so: 00000000000e61e0 T PyUnicode_AsUTF8String
/usr/lib64/libpython3.3m.so.1.0: 00000000000e61e0 T PyUnicode_AsUTF8String

$ ldd /usr/lib64/libboost_python3.so.1.53.0
        linux-vdso.so.1 (0x00007fff97089000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f543a042000)
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f5439d3e000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f5439b27000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f5439778000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f543a4b2000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f543947a000)
Comment 1 Ivan A. Melnikov 2014-08-25 11:41:08 MSK
Boost.Python специально не линкуется с libpythonX.Y.so. Сделано это для того чтобы модули, собранные с ней, можно было использовать в приложениях, которые берут питоновский рантайм откуда-то ещё. Например, наш /usr/bin/python3 собран не с этой либой, а статически; то есть, если libboost_python собрать с libpythonX.Y.so, она притянется внутрь процесса, где она совершенно не нужна, с непредсказуемыми последствиями.

To sum up: this is not a bug, this is a feature, and important one.

Программы, которые хотят исползовать питон, но не его интерпретатор, всё равно должны линковаться с нужной libpython явно. Модули же с ней линковать не надо, и даже опасно.