Page 1 of 1

Failed to link codelite-lldb

Posted: Wed Jul 16, 2014 3:31 am
by tankist02
Trying to build latest CL sources from git on RedHat 6.5 using dev tools 2.1 (gcc 4.8.2). Followed the standard procedure to build Release version and got the following error:

Code: Select all

Linking CXX executable ../../bin/codelite-lldb
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `std::__throw_bad_function_call()@GLIBCXX_3.4.14'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `std::__detail::_List_node_base::_M_unhook()@GLIBCXX_3.4.15'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `std::__detail::_List_node_base::swap(std::__detail::_List_node_base&, std::__detail::_List_node_base&)@GLIBCXX_3.4.15'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `std::__detail::_List_node_base::_M_transfer(std::__detail::_List_node_base*, std::__detail::_List_node_base*)@GLIBCXX_3.4.15'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `std::_Hash_bytes(void const*, unsigned long, unsigned long)@CXXABI_1.3.5'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)@GLIBCXX_3.4.15'
collect2: error: ld returned 1 exit status
make[2]: *** [bin/codelite-lldb] Error 1
make[1]: *** [LLDBDebugger/codelite-lldb/CMakeFiles/codelite-lldb.dir/all] Error 2
make: *** [all] Error 2

Re: Failed to link codelite-lldb

Posted: Wed Jul 16, 2014 9:57 am
by eranif
You have 2 options here:
- Build lldb yourself and use that binary instead of the pre-built one
- Disable LLDB when building codelite, by adding this line:

Code: Select all

-DENABLE_LLDB=0
To the CMake line

Eran

Re: Failed to link codelite-lldb

Posted: Thu Jul 17, 2014 12:40 am
by tankist02
Hi Eran,

Thanks a lot, the second option worked!

Do I need lldb if I don't use clang/llvm (yet)? For now it is gcc only.

Re: Failed to link codelite-lldb

Posted: Thu Jul 17, 2014 9:21 am
by eranif
tankist02 wrote:Do I need lldb if I don't use clang/llvm (yet)?
When under Linux, whatever lldb can do, gdb does better (at least in codelite terms)
So, no. You don't need lldb (even when using clang, gdb can debug it pretty well)
Eran

Re: Failed to link codelite-lldb

Posted: Thu Nov 06, 2014 1:16 am
by tankist02
Tried to build the trunk (as of today) and got linking errors when building codelite-lldb:

Code: Select all

...
Linking CXX executable ../../bin/codelite-lldb
[ 60%] Building CXX object DatabaseExplorer/CMakeFiles/DatabaseExplorer.dir/GUI.cpp.o
[ 60%] Building CXX object SFTP/CMakeFiles/SFTP.dir/UI.cpp.o
[ 60%] Building CXX object SFTP/CMakeFiles/SFTP.dir/sftp_item_comparator.cpp.o
Scanning dependencies of target PHPUnitTests
[ 60%] Building CXX object codelitephp/CMakeFiles/PHPUnitTests.dir/PHPParserUnitTests/main.cpp.o
[ 60%] Building CXX object LLDBDebugger/CMakeFiles/LLDBDebugger.dir/LLDBSettingDialog.cpp.o
[ 60%] Building CXX object Subversion2/CMakeFiles/Subversion.dir/svn_props_dialog.cpp.o
/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/ld: warning: libpython2.7.so.1.0, needed by ../../../sdk/lldb/unix/lib/x86_64/liblldb.so, not found (try using -rpath or -rpath-link)
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyThreadState_GetDict'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyByteArray_AsString'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyLong_FromLong'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `std::__throw_bad_function_call()@GLIBCXX_3.4.14'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyExc_NotImplementedError'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyByteArray_Type'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyType_IsSubtype'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyErr_Fetch'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyExc_RuntimeError'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyErr_GivenExceptionMatches'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyEval_RestoreThread'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `std::__detail::_List_node_base::_M_unhook()@GLIBCXX_3.4.15'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyDict_Size'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyString_Size'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyExc_MemoryError'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyErr_Print'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyString_FromStringAndSize'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `_Py_ZeroStruct'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyDict_Keys'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyByteArray_Size'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `_PyThreadState_Current'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyInstance_Type'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `_PyWeakref_CallableProxyType'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyList_SetItem'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyErr_Clear'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyCallable_Check'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `std::__detail::_List_node_base::swap(std::__detail::_List_node_base&, std::__detail::_List_node_base&)@GLIBCXX_3.4.15'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyCapsule_New'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyLong_AsUnsignedLongLong'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyInt_AsLong'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyErr_ExceptionMatches'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyExc_TypeError'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyLong_AsUnsignedLong'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyRun_SimpleStringFlags'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyEval_InitThreads'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyType_Ready'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyFloat_FromDouble'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_IsTrue'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_Print'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `_PyWeakref_ProxyType'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `_PyObject_GetDictPtr'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_Size'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_Malloc'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyLong_AsLongLong'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyTuple_SetItem'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyInstance_NewRaw'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_Call'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyEval_ThreadsInitialized'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyString_AsString'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_GetAttr'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyExc_SyntaxError'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyList_Size'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyCFunction_Type'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyExc_SystemExit'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyDict_GetItem'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyTuple_New'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyImport_AddModule'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_CallFunctionObjArgs'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyString_FromFormat'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `std::__detail::_List_node_base::_M_transfer(std::__detail::_List_node_base*, std::__detail::_List_node_base*)@GLIBCXX_3.4.15'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `std::_Hash_bytes(void const*, unsigned long, unsigned long)@CXXABI_1.3.5'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_GenericGetAttr'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyExc_AttributeError'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyParser_SimpleParseStringFlags'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyErr_Occurred'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyString_ConcatAndDel'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyDict_SetItem'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyExc_ValueError'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyUnicodeUCS4_AsUTF8String'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyDict_SetItemString'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyImport_ImportModule'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyExc_OverflowError'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyClass_Type'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyModule_GetDict'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyString_FromString'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)@GLIBCXX_3.4.15'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyArg_Parse'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyFile_AsFile'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyTuple_GetSlice'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_CallFunction'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyString_AsStringAndSize'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyGILState_Ensure'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyErr_SetString'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_CallObject'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyList_GetItem'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `Py_InitModule4_64'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyList_Append'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyEval_EvalCode'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyExc_IOError'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyArg_ParseTuple'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_Init'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyString_Format'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_Repr'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyLong_FromUnsignedLongLong'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `_PyInstance_Lookup'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyDict_Next'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `_PyObject_New'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyCapsule_GetPointer'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyInt_FromLong'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `_Py_NoneStruct'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyDict_New'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyRun_StringFlags'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `Py_InitializeEx'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyGILState_Release'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyModule_AddObject'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `_Py_NotImplementedStruct'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyExc_SystemError'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `Py_BuildValue'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyFile_FromFile'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_Free'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyBool_FromLong'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyLong_AsLong'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `_Py_TrueStruct'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyFloat_Type'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyExc_IndexError'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_AsFileDescriptor'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyFile_Type'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyFloat_AsDouble'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyLong_FromLongLong'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyEval_SaveThread'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyInt_FromSize_t'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyFunction_Type'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyArg_UnpackTuple'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyNode_Compile'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyLong_FromVoidPtr'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyCapsule_Import'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_CallMethod'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_GetAttrString'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyList_New'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyObject_Str'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyExc_ZeroDivisionError'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyLong_FromUnsignedLong'
../../../sdk/lldb/unix/lib/x86_64/liblldb.so: undefined reference to `PyTuple_Size'
collect2: error: ld returned 1 exit status
make[2]: *** [bin/codelite-lldb] Error 1
make[1]: *** [LLDBDebugger/codelite-lldb/CMakeFiles/codelite-lldb.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
I tried to follow the advice above:

Code: Select all

cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -ENABLE_LLDB=0 ..
but got the same error.

Re: Failed to link codelite-lldb

Posted: Thu Nov 06, 2014 1:25 am
by tankist02
make complains that libpython27 is not found, but python27-devel is installed:

Code: Select all

# yum install python27-python-devel
Loaded plugins: changelog, refresh-packagekit, rhnplugin, versionlock
This system is receiving updates from RHN Classic or RHN Satellite.
Setting up Install Process
Package python27-python-devel-2.7.5-10.el6.x86_64 already installed and latest version
Nothing to do
This is RedHat 6.5 with Devtools 2.1 (gcc 4.8.2).

Re: Failed to link codelite-lldb

Posted: Thu Nov 06, 2014 1:32 am
by tankist02
Solved by switching to use python27:

Code: Select all

scl enable python27 bash
rerunning cmake and rebuilding.

As for ENABLE_LLDB=0 I mistyped it and that's why it was ignored.

Sorry for the noise.