FS#55798 - [boost-libs] boost_python is probably broken

Attached to Project: Arch Linux
Opened by Konstantin Gizdov (kgizdov) - Thursday, 28 September 2017, 18:03 GMT
Last edited by Bartłomiej Piotrowski (Barthalion) - Tuesday, 10 October 2017, 06:16 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Bartłomiej Piotrowski (Barthalion)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

Description:
There are lots of undefined symbols on libboost_python.so
I was trying to compile a repo when I discovered it.

Additional info:
* package version(s) - 1.65.1-1
* config and/or log files etc.


Steps to reproduce:
install boost-libs
inspect libs or try to compile with something that requires -lboost_python
$ ldd -r -d /usr/lib/libboost_python.so
ldd -r -d /usr/lib/libboost_python.so
linux-vdso.so.1 (0x00007ffe21b07000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f23f9da2000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f23f9b84000)
libutil.so.1 => /usr/lib/libutil.so.1 (0x00007f23f9981000)
librt.so.1 => /usr/lib/librt.so.1 (0x00007f23f9779000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f23f93f2000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f23f91db000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f23f8e24000)
/usr/lib64/ld-linux-x86-64.so.2 (0x00007f23fa1e8000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007f23f8ad8000)
undefined symbol: PyList_Insert (/usr/lib/libboost_python.so)
undefined symbol: PyString_InternFromString (/usr/lib/libboost_python.so)
undefined symbol: PyProperty_Type (/usr/lib/libboost_python.so)
undefined symbol: PyString_AsString (/usr/lib/libboost_python.so)
undefined symbol: PyExc_StopIteration (/usr/lib/libboost_python.so)
undefined symbol: PyUnicodeUCS4_FromEncodedObject (/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: 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: PyExc_ValueError (/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: PyList_Type (/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: _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: 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: 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: PyObject_GetItem (/usr/lib/libboost_python.so)
undefined symbol: PyString_FromStringAndSize (/usr/lib/libboost_python.so)
undefined symbol: PyModule_Type (/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: PyBaseObject_Type (/usr/lib/libboost_python.so)
undefined symbol: PyNumber_And (/usr/lib/libboost_python.so)
undefined symbol: PyUnicodeUCS4_AsWideChar (/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: PyArg_ParseTupleAndKeywords (/usr/lib/libboost_python.so)
undefined symbol: PyNumber_Divide (/usr/lib/libboost_python.so)
undefined symbol: PyEval_GetGlobals (/usr/lib/libboost_python.so)
undefined symbol: PyFloat_Type (/usr/lib/libboost_python.so)
undefined symbol: PyDict_Keys (/usr/lib/libboost_python.so)
undefined symbol: PyExc_IndexError (/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: PyUnicode_Type (/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: PyTuple_Type (/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: PyExc_RuntimeError (/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: PyType_Type (/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: PyMethod_Type (/usr/lib/libboost_python.so)
undefined symbol: PyStaticMethod_Type (/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: PyLong_Type (/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: _Py_NoneStruct (/usr/lib/libboost_python.so)
undefined symbol: PyExc_OverflowError (/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: PyExc_AttributeError (/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: 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: PyCFunction_Type (/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: PyString_Type (/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)
undefined symbol: PyType_GenericAlloc (/usr/lib/libboost_python.so)
This task depends upon

Closed by  Bartłomiej Piotrowski (Barthalion)
Tuesday, 10 October 2017, 06:16 GMT
Reason for closing:  Not a bug
Comment by Konstantin Gizdov (kgizdov) - Thursday, 28 September 2017, 18:26 GMT
probably something similar to this - https://bugzilla.redhat.com/show_bug.cgi?id=1420086
Comment by Konstantin Gizdov (kgizdov) - Thursday, 28 September 2017, 20:23 GMT
This also applies to boost_python3.so. I tested to compile my code on my GitLab CI and there it compiles and links correctly. So something is amiss.
Comment by Konstantin Gizdov (kgizdov) - Monday, 09 October 2017, 08:51 GMT
Just wanted to ask of the status of this. Mainly, I'm concerned if it is safe to downgrade to a previous version that works (and which one is appropriate) while it's being understood or if the it's understood and underway in a soon-coming update. Thanks.
Comment by Bartłomiej Piotrowski (Barthalion) - Monday, 09 October 2017, 09:24 GMT
Looks like some behavior changed in boost.build AGAIN, as I remember fixing it already in past. I will look at it today.
Comment by Bartłomiej Piotrowski (Barthalion) - Monday, 09 October 2017, 10:51 GMT
Sorry, downgrading won't help because ABI has changed between releases.

What you can do in the meantime is:
1) link your application with python (-lpython3.6m or -lpython2.7) or
2) LD_PRELOAD required library or
3) modify dynamic sections of libboost_python.so file with patchelf (so it links to libpython3.6m.so.1.0)

I'm working on a fix now.
Comment by Konstantin Gizdov (kgizdov) - Monday, 09 October 2017, 21:31 GMT
Linking to python directly worked like a charm. Thanks.
Comment by Bartłomiej Piotrowski (Barthalion) - Tuesday, 10 October 2017, 06:16 GMT
Apparently it's a feature: https://github.com/boostorg/python/blob/135c02548431e86d4b169fae07e9f1ceee188211/build/Jamfile#L90

So I guess we both learned something. Boost never stops to confuse me. Closing…

Loading...