FS#10998 - [boost] 1.35.0-1 : linking problems

Attached to Project: Arch Linux
Opened by Eric Belanger (Snowman) - Thursday, 24 July 2008, 01:01 GMT
Last edited by Paul Mattal (paul) - Thursday, 26 November 2009, 15:02 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Kevin Piche (kpiche)
Architecture All
Severity Medium
Priority Normal
Reported Version None
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

While trying to fix  FS#10934 , I noticed that the boost package also have undefined symbol errors. I don't know if the package in extra has that problem. This is tested on x86_64. When building libboost_python.so, the libraries that provide these symbols needs to be linked as well. I haven't checked if other boost libs had this problem too.

$ ldd -r /usr/lib/libboost_python.so
linux-vdso.so.1 => (0x00007fff2f5ff000)
libutil.so.1 => /lib/libutil.so.1 (0x00007f3a2703c000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007f3a26e21000)
libdl.so.2 => /lib/libdl.so.2 (0x00007f3a26c1d000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f3a26910000)
libm.so.6 => /lib/libm.so.6 (0x00007f3a2668d000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f3a26476000)
libc.so.6 => /lib/libc.so.6 (0x00007f3a26121000)
/lib/ld-linux-x86-64.so.2 (0x00007f3a274c4000)
undefined symbol: PyExc_ImportError (/usr/lib/libboost_python.so)
undefined symbol: PyProperty_Type (/usr/lib/libboost_python.so)
undefined symbol: PyExc_StopIteration (/usr/lib/libboost_python.so)
undefined symbol: PyBool_Type (/usr/lib/libboost_python.so)
undefined symbol: PyClass_Type (/usr/lib/libboost_python.so)
undefined symbol: PyList_Type (/usr/lib/libboost_python.so)
undefined symbol: _Py_NotImplementedStruct (/usr/lib/libboost_python.so)
undefined symbol: PyExc_TypeError (/usr/lib/libboost_python.so)
undefined symbol: PyDict_Type (/usr/lib/libboost_python.so)
undefined symbol: PyInt_Type (/usr/lib/libboost_python.so)
undefined symbol: PyComplex_Type (/usr/lib/libboost_python.so)
undefined symbol: PyExc_ReferenceError (/usr/lib/libboost_python.so)
undefined symbol: PyModule_Type (/usr/lib/libboost_python.so)
undefined symbol: PyBaseObject_Type (/usr/lib/libboost_python.so)
undefined symbol: PyFloat_Type (/usr/lib/libboost_python.so)
undefined symbol: PyExc_IndexError (/usr/lib/libboost_python.so)
undefined symbol: PyUnicode_Type (/usr/lib/libboost_python.so)
undefined symbol: PyTuple_Type (/usr/lib/libboost_python.so)
undefined symbol: PyExc_RuntimeError (/usr/lib/libboost_python.so)
undefined symbol: PyType_Type (/usr/lib/libboost_python.so)
undefined symbol: PyMethod_Type (/usr/lib/libboost_python.so)
undefined symbol: PyStaticMethod_Type (/usr/lib/libboost_python.so)
undefined symbol: PyLong_Type (/usr/lib/libboost_python.so)
undefined symbol: _Py_NoneStruct (/usr/lib/libboost_python.so)
undefined symbol: PyExc_OverflowError (/usr/lib/libboost_python.so)
undefined symbol: PyExc_AttributeError (/usr/lib/libboost_python.so)
undefined symbol: PyCFunction_Type (/usr/lib/libboost_python.so)
undefined symbol: PyString_Type (/usr/lib/libboost_python.so)
undefined symbol: PyType_GenericAlloc (/usr/lib/libboost_python.so)
undefined symbol: PyList_Insert (/usr/lib/libboost_python.so)
undefined symbol: PyString_InternFromString (/usr/lib/libboost_python.so)
undefined symbol: PyString_AsString (/usr/lib/libboost_python.so)
undefined symbol: PyImport_Import (/usr/lib/libboost_python.so)
undefined symbol: PyNumber_InPlaceRshift (/usr/lib/libboost_python.so)
undefined symbol: PyObject_CallMethod (/usr/lib/libboost_python.so)
undefined symbol: PyIter_Next (/usr/lib/libboost_python.so)
undefined symbol: PyNumber_Remainder (/usr/lib/libboost_python.so)
undefined symbol: Py_InitModule4_64 (/usr/lib/libboost_python.so)
undefined symbol: PyType_Ready (/usr/lib/libboost_python.so)
undefined symbol: _PyEval_SliceIndex (/usr/lib/libboost_python.so)
undefined symbol: PyFile_AsFile (/usr/lib/libboost_python.so)
undefined symbol: PyLong_FromUnsignedLong (/usr/lib/libboost_python.so)
undefined symbol: PyMem_Free (/usr/lib/libboost_python.so)
undefined symbol: PyNumber_InPlaceXor (/usr/lib/libboost_python.so)
undefined symbol: PyNumber_InPlaceOr (/usr/lib/libboost_python.so)
undefined symbol: PyBool_FromLong (/usr/lib/libboost_python.so)
undefined symbol: PyDict_Items (/usr/lib/libboost_python.so)
undefined symbol: PyNumber_InPlaceRemainder (/usr/lib/libboost_python.so)
undefined symbol: PyErr_NoMemory (/usr/lib/libboost_python.so)
undefined symbol: PyComplex_ImagAsDouble (/usr/lib/libboost_python.so)
undefined symbol: PyObject_IsTrue (/usr/lib/libboost_python.so)
undefined symbol: PyUnicodeUCS2_FromEncodedObject (/usr/lib/libboost_python.so)
undefined symbol: PyNumber_Lshift (/usr/lib/libboost_python.so)
undefined symbol: PyNumber_InPlaceMultiply (/usr/lib/libboost_python.so)
undefined symbol: _PyObject_New (/usr/lib/libboost_python.so)
undefined symbol: PyObject_GetItem (/usr/lib/libboost_python.so)
undefined symbol: PyString_FromStringAndSize (/usr/lib/libboost_python.so)
undefined symbol: PyNumber_InPlaceLshift (/usr/lib/libboost_python.so)
undefined symbol: PyString_Size (/usr/lib/libboost_python.so)
undefined symbol: PyDict_Update (/usr/lib/libboost_python.so)
undefined symbol: PyComplex_RealAsDouble (/usr/lib/libboost_python.so)
undefined symbol: PyErr_Format (/usr/lib/libboost_python.so)
undefined symbol: PyNumber_And (/usr/lib/libboost_python.so)
undefined symbol: PyNumber_InPlaceAdd (/usr/lib/libboost_python.so)
undefined symbol: PyObject_GetAttr (/usr/lib/libboost_python.so)
undefined symbol: PyErr_ExceptionMatches (/usr/lib/libboost_python.so)
undefined symbol: PyErr_Occurred (/usr/lib/libboost_python.so)
undefined symbol: PyDict_Copy (/usr/lib/libboost_python.so)
undefined symbol: PyNumber_Divide (/usr/lib/libboost_python.so)
undefined symbol: PyDict_Keys (/usr/lib/libboost_python.so)
undefined symbol: PyErr_SetObject (/usr/lib/libboost_python.so)
undefined symbol: PyNumber_Multiply (/usr/lib/libboost_python.so)
undefined symbol: PyRun_FileExFlags (/usr/lib/libboost_python.so)
undefined symbol: PyObject_Size (/usr/lib/libboost_python.so)
undefined symbol: PyString_FromString (/usr/lib/libboost_python.so)
undefined symbol: PyString_FromFormat (/usr/lib/libboost_python.so)
undefined symbol: PyNumber_InPlaceAnd (/usr/lib/libboost_python.so)
undefined symbol: PyInt_FromLong (/usr/lib/libboost_python.so)
undefined symbol: PyDict_Size (/usr/lib/libboost_python.so)
undefined symbol: PyDict_GetItem (/usr/lib/libboost_python.so)
undefined symbol: PyObject_SetItem (/usr/lib/libboost_python.so)
undefined symbol: PyInt_AsLong (/usr/lib/libboost_python.so)
undefined symbol: PyObject_RichCompare (/usr/lib/libboost_python.so)
undefined symbol: PyCFunction_NewEx (/usr/lib/libboost_python.so)
undefined symbol: PyDict_Values (/usr/lib/libboost_python.so)
undefined symbol: PyNumber_Rshift (/usr/lib/libboost_python.so)
undefined symbol: PyStaticMethod_New (/usr/lib/libboost_python.so)
undefined symbol: PyType_IsSubtype (/usr/lib/libboost_python.so)
undefined symbol: PyNumber_Add (/usr/lib/libboost_python.so)
undefined symbol: PyList_Sort (/usr/lib/libboost_python.so)
undefined symbol: PySequence_DelSlice (/usr/lib/libboost_python.so)
undefined symbol: PyErr_WarnEx (/usr/lib/libboost_python.so)
undefined symbol: PyNumber_Xor (/usr/lib/libboost_python.so)
undefined symbol: PyObject_ClearWeakRefs (/usr/lib/libboost_python.so)
undefined symbol: PyNumber_Subtract (/usr/lib/libboost_python.so)
undefined symbol: PySlice_New (/usr/lib/libboost_python.so)
undefined symbol: PyObject_GetAttrString (/usr/lib/libboost_python.so)
undefined symbol: PyObject_IsInstance (/usr/lib/libboost_python.so)
undefined symbol: PyRun_StringFlags (/usr/lib/libboost_python.so)
undefined symbol: PyObject_SetAttrString (/usr/lib/libboost_python.so)
undefined symbol: PyWeakref_NewRef (/usr/lib/libboost_python.so)
undefined symbol: PyErr_NewException (/usr/lib/libboost_python.so)
undefined symbol: PyList_Append (/usr/lib/libboost_python.so)
undefined symbol: PyObject_SetAttr (/usr/lib/libboost_python.so)
undefined symbol: PyDict_GetItemString (/usr/lib/libboost_python.so)
undefined symbol: PyNumber_InPlaceDivide (/usr/lib/libboost_python.so)
undefined symbol: PyLong_AsLongLong (/usr/lib/libboost_python.so)
undefined symbol: PyLong_AsUnsignedLongLong (/usr/lib/libboost_python.so)
undefined symbol: PyNumber_Or (/usr/lib/libboost_python.so)
undefined symbol: PyUnicodeUCS2_AsWideChar (/usr/lib/libboost_python.so)
undefined symbol: PyObject_DelItem (/usr/lib/libboost_python.so)
undefined symbol: PyNumber_InPlaceSubtract (/usr/lib/libboost_python.so)
undefined symbol: PyMethod_New (/usr/lib/libboost_python.so)
undefined symbol: PyEval_CallFunction (/usr/lib/libboost_python.so)
undefined symbol: PySequence_GetSlice (/usr/lib/libboost_python.so)
undefined symbol: PyTuple_Size (/usr/lib/libboost_python.so)
undefined symbol: PyImport_ImportModule (/usr/lib/libboost_python.so)
undefined symbol: PyErr_Clear (/usr/lib/libboost_python.so)
undefined symbol: PyTuple_New (/usr/lib/libboost_python.so)
undefined symbol: PyTuple_GetItem (/usr/lib/libboost_python.so)
undefined symbol: PyErr_SetString (/usr/lib/libboost_python.so)
undefined symbol: PyObject_CallFunction (/usr/lib/libboost_python.so)
undefined symbol: PyList_Reverse (/usr/lib/libboost_python.so)
undefined symbol: PyFile_FromString (/usr/lib/libboost_python.so)
undefined symbol: _PyType_Lookup (/usr/lib/libboost_python.so)
undefined symbol: PyList_New (/usr/lib/libboost_python.so)
undefined symbol: PyMem_Malloc (/usr/lib/libboost_python.so)
undefined symbol: PyCallable_Check (/usr/lib/libboost_python.so)
undefined symbol: PyDict_Clear (/usr/lib/libboost_python.so)
undefined symbol: PySequence_SetSlice (/usr/lib/libboost_python.so)
undefined symbol: PyLong_AsUnsignedLong (/usr/lib/libboost_python.so)
undefined symbol: PyDict_New (/usr/lib/libboost_python.so)


This task depends upon

Closed by  Paul Mattal (paul)
Thursday, 26 November 2009, 15:02 GMT
Reason for closing:  Fixed
Additional comments about closing:  This appears to be fixed, and there's been no post for a long time about it. However, if it turns out still to be a bug, please request reopen.
Comment by Alessandro Doro (adoroo) - Thursday, 24 July 2008, 10:42 GMT
mmh...
on my i686 with current (no testing/unstable) packages:
find /usr/lib/python2.5/site-packages -name '*.so' -exec ldd -r '{}' ';' | grep undefined

many libraries have undefined symbols
Comment by Alessandro Doro (adoroo) - Thursday, 24 July 2008, 11:17 GMT
Regarding "ldd -r /usr/lib/libboost_python.so"
yes, the package in extra has the problem.
Comment by Jan de Groot (JGC) - Thursday, 24 July 2008, 11:44 GMT
The files in /usr/lib/python2.5/site-packages/*.so don't need to link to python, as they're dlopen()'ed by python. Files in /usr/lib shouldn't have missing symbols.
Comment by Alessandro Doro (adoroo) - Thursday, 24 July 2008, 14:35 GMT
Many files in /usr/lib also have missing symbols.
Comment by Kevin Piche (kpiche) - Tuesday, 05 August 2008, 02:38 GMT
I found some postings online that suggest that a patch is required for python for it to use the RTLD_GLOBAL flag. http://archive.netbsd.se/?ml=zope-perl&a=2000-08&m=3936630
Comment by Nicolas Bigaouette (big_gie) - Friday, 24 October 2008, 18:24 GMT
I cannot build some packages while boost is installed on my system. I need to remove boost, compile these, and reinstall boost, or else all these builds fails...

The packages are qbittorent, avogadro, and probably others that I don't remember...
Comment by Eric Belanger (Snowman) - Friday, 24 October 2008, 19:29 GMT
Nicolas: What are the error messages?
Comment by Nicolas Bigaouette (big_gie) - Friday, 24 October 2008, 19:37 GMT
Trying to build avogadro _with_ boost 1.36.0-2 installed
[ 21%] Building CXX object libavogadro/src/CMakeFiles/avogadro-lib.dir/tool.o
[ 21%] Building CXX object libavogadro/src/CMakeFiles/avogadro-lib.dir/povpainter.o
[ 21%] Building CXX object libavogadro/src/CMakeFiles/avogadro-lib.dir/engines/bsdyengine.o
[ 21%] Building CXX object libavogadro/src/CMakeFiles/avogadro-lib.dir/colors/elementcolor.o
Linking CXX shared library libavogadro.so
/usr/lib/python2.5/config/libpython2.5.a(posixmodule.o): In function `posix_forkpty':
/var/abs/python/trunk/src/Python-2.5.2/./Modules/posixmodule.c:3579: undefined reference to `forkpty'
/usr/lib/python2.5/config/libpython2.5.a(posixmodule.o): In function `posix_openpty':
/var/abs/python/trunk/src/Python-2.5.2/./Modules/posixmodule.c:3521: undefined reference to `openpty'
collect2: ld returned 1 exit status
make[2]: *** [libavogadro/src/libavogadro.so.0.8.2] Error 1
make[1]: *** [libavogadro/src/CMakeFiles/avogadro-lib.dir/all] Error 2
make: *** [all] Error 2
==> ERROR: Build Failed.
Aborting...
Comment by Nicolas Bigaouette (big_gie) - Friday, 24 October 2008, 19:37 GMT
Uninstalling boost before compiling avogadro solves the problem...
Comment by Alessandro Doro (adoroo) - Tuesday, 04 November 2008, 10:57 GMT
Current boost version is 1.36.0. Could this task be closed?
Comment by Nicolas Bigaouette (big_gie) - Tuesday, 04 November 2008, 13:09 GMT
I remember having that issue with an old boost version (1.34 or 1.35?) and tried installing 1.36 from testing without success.
Comment by Alessandro Doro (adoroo) - Monday, 09 March 2009, 01:07 GMT
big_gie, you can fix the avogadro build error adding -DPYTHON_LIBRARY=/usr/lib/libpython2.6.so to the cmake command line options in your PKGBUILD. For some reason the static linking to libpython2.6.a does not work.

cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DPYTHON_LIBRARY=/usr/lib/libpython2.6.so || return 1
Comment by Lionel Ott (WhiteMagic) - Sunday, 22 March 2009, 07:55 GMT
The problem persists with the current boost version (boost 1.37.0-1 i686) but is solved by a simple rebuild.
Comment by Roman Kyrylych (Romashka) - Saturday, 03 October 2009, 09:33 GMT
status in 1.39.0-2?

Loading...