[Bug 24332] New: fails to build with "undefined reference to 'lldb_private::ScriptInterpreterNone::Initialize()'"

Bug ID 24332
Summary fails to build with “undefined reference to ‘lldb_private::ScriptInterpreterNone::Initialize()’”
Product lldb
Version unspecified
Hardware PC
OS Linux
Status NEW
Severity normal
Priority P
Component All Bugs
Assignee lldb-dev@cs.uiuc.edu
Reporter sylvestre@debian.org
Classification Unclassified

With Debian jessie and some other Ubuntu version, the build is failing with:

llvm[5]: Linking Release Shared Library liblldb.so
g++-4.9 -std=c++0x -g -O2 -Wl,-R -Wl,'$ORIGIN' -Wl,--gc-sections -rdynamic
-L/tmp/buildd/llvm-toolchain-snapshot-3.8~svn243822/build-llvm/Release/lib
-L/tmp/buildd/llvm-toolchain-snapshot-3.8~svn243822/build-llvm/Release/lib
-fuse-ld=gold   -shared -o
/tmp/buildd/llvm-toolchain-snapshot-3.8~svn243822/build-llvm/Release/lib/liblldb.so
 \
  -Wl,--whole-archive -llldbAPI -llldbBreakpoint -llldbCommands -llldbCore
-llldbDataFormatters -llldbExpression -llldbInitialization -llldbHost
-llldbBase -llldbInterpreter -llldbPluginABIMacOSX_arm
-llldbPluginABIMacOSX_arm64 -llldbPluginABIMacOSX_i386 -llldbPluginABISysV_arm
-llldbPluginABISysV_arm64 -llldbPluginABISysV_ppc -llldbPluginABISysV_ppc64
-llldbPluginABISysV_mips -llldbPluginABISysV_mips64 -llldbPluginABISysV_i386
-llldbPluginABISysV_x86_64 -llldbPluginABISysV_hexagon
-llldbPluginDisassemblerLLVM -llldbPluginDynamicLoaderStatic
-llldbPluginDynamicLoaderPosixDYLD -llldbPluginDynamicLoaderHexagon
-llldbPluginDynamicLoaderMacOSXDYLD -llldbPluginDynamicLoaderWindowsDYLD
-llldbPluginInstructionARM -llldbPluginInstructionARM64
-llldbPluginInstructionMIPS -llldbPluginInstructionMIPS64
-llldbPluginInstrumentationRuntimeAddressSanitizer -llldbPluginCXXItaniumABI
-llldbPluginAppleObjCRuntime -llldbPluginRenderScriptRuntime
-llldbPluginMemoryHistoryASan -llldbPluginObjectContainerBSDArchive
-llldbPluginObjectContainerMachOArchive -llldbPluginObjectFileELF
-llldbPluginObjectFileJIT -llldbPluginSymbolVendorELF
-llldbPluginObjectFilePECOFF -llldbPluginOSPython -llldbPluginPlatformGDB
-llldbPluginProcessGDBRemote -llldbPluginSymbolFileDWARF
-llldbPluginSymbolFileSymtab -llldbPluginSystemRuntimeMacOSX
-llldbPluginUnwindAssemblyInstEmulation -llldbPluginUnwindAssemblyX86
-llldbPluginProcessUtility -llldbSymbol -llldbTarget -llldbUtility
-lclangAnalysis -lclangAST -lclangBasic -lclangCodeGen -lclangFrontend
-lclangDriver -lclangEdit -lclangLex -lclangParse -lclangSema
-lclangSerialization -lLLVMMCDisassembler -lLLVMProfileData
-llldbPluginPlatformMacOSX -llldbPluginPlatformLinux
-llldbPluginPlatformWindows -llldbPluginPlatformFreeBSD
-llldbPluginPlatformPOSIX -llldbPluginPlatformKalimba
-llldbPluginPlatformAndroid -llldbPluginProcessLinux -llldbPluginProcessPOSIX
-llldbPluginProcessElfCore -llldbPluginJITLoaderGDB -Wl,--no-whole-archive
-lLLVM-3.8 -Wl,--no-undefined -L/usr/lib/python2.7/config-i386-linux-gnu
-L/usr/lib -lpython2.7 -lpthread -ldl  -lutil -lm  -Xlinker -export-dynamic
-Wl,-O1 -Wl,-Bsymbolic-functions -lrt -ledit -lncurses -lpanel -lpthread
-Wl,--soname,liblldb-3.8.so -lz -lpthread -lffi -ledit -ltinfo -ldl -lm 
/tmp/buildd/llvm-toolchain-snapshot-3.8~svn243822/tools/lldb/source/API/SystemInitializerFull.cpp:338:
error: undefined reference to
'lldb_private::ScriptInterpreterPython::InitializeInterpreter(void (*)(), bool
(*)(char const*, char const*, std::shared_ptr<lldb_private::StackFrame> const&,
std::shared_ptr<lldb_private::BreakpointLocation> const&), bool (*)(char
const*, char const*, std::shared_ptr<lldb_private::StackFrame> const&,
std::shared_ptr<lldb_private::Watchpoint> const&), bool (*)(char const*, void*,
lldb_private::SharingPtr<lldb_private::ValueObject> const&, void**,
std::shared_ptr<lldb_private::TypeSummaryOptions> const&, std::string&), void*
(*)(char const*, char const*,
lldb_private::SharingPtr<lldb_private::ValueObject> const&), void* (*)(char
const*, char const*, std::shared_ptr<lldb_private::Debugger>), unsigned int
(*)(void*), void* (*)(void*, unsigned int), int (*)(void*, char const*), void*
(*)(void*), lldb_private::SharingPtr<lldb_private::ValueObject> (*)(void*),
bool (*)(void*), bool (*)(void*), void* (*)(void*), bool (*)(char const*, char
const*, std::shared_ptr<lldb_private::Debugger>&, char const*,
lldb_private::CommandReturnObject&,
std::shared_ptr<lldb_private::ExecutionContextRef>), bool (*)(void*,
std::shared_ptr<lldb_private::Debugger>&, char const*,
lldb_private::CommandReturnObject&,
std::shared_ptr<lldb_private::ExecutionContextRef>), bool (*)(char const*, char
const*, std::shared_ptr<lldb_private::Debugger>&), void* (*)(char const*, char
const*, std::shared_ptr<lldb_private::Process> const&), bool (*)(char const*,
char const*, std::shared_ptr<lldb_private::Process>&, std::string&), bool
(*)(char const*, char const*, std::shared_ptr<lldb_private::Thread>&,
std::string&), bool (*)(char const*, char const*,
std::shared_ptr<lldb_private::Target>&, std::string&), bool (*)(char const*,
char const*, std::shared_ptr<lldb_private::StackFrame>&, std::string&), bool
(*)(char const*, char const*,
lldb_private::SharingPtr<lldb_private::ValueObject>&, std::string&), void*
(*)(void*, char const*, std::shared_ptr<lldb_private::Target> const&), void*
(*)(char const*, char const*, std::shared_ptr<lldb_private::ThreadPlan>
const&), bool (*)(void*, char const*, lldb_private::Event*, bool&))'
/tmp/buildd/llvm-toolchain-snapshot-3.8~svn243822/tools/lldb/source/API/SystemInitializerFull.cpp:240:
error: undefined reference to
'lldb_private::ScriptInterpreterNone::Initialize()'
/tmp/buildd/llvm-toolchain-snapshot-3.8~svn243822/tools/lldb/source/API/SystemInitializerFull.cpp:241:
error: undefined reference to
'lldb_private::ScriptInterpreterPython::Initialize()'
collect2: error: ld returned 1 exit status
/tmp/buildd/llvm-toolchain-snapshot-3.8~svn243822/Makefile.rules:1206: recipe
for target
'/tmp/buildd/llvm-toolchain-snapshot-3.8~svn243822/build-llvm/Release/lib/liblldb.so'
failed

Hi, sorry about this. I can’t fix this issue until Monday when I get back in the office. But if it’s blocking you, perhaps you could just add the definition of this method to ScriptInterpreterNone.cpp? (I assume that’s what the error is, anyway, a missing function definition)

Sylvestre Ledru changed bug 24332

What | Removed | Added |

Comment # 2 on bug 24332 from Sylvestre Ledru

ok, thanks for the information.
[http://reviews.llvm.org/D11717](https://urldefense.proofpoint.com/v2/url?u=http-3A__reviews.llvm.org_D11717&d=AwMBaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=DDUMf06MYELAe1Nlv7KChiwJLLHbYha4jtK_AOiWqwQ&m=-PtZ6tXxu6Y-eOmY70GVBy9N6CjLZ96TM_UkikBToE0&s=nw3ZBv44PuV334HPaGrGhHWJTkbBOe89pLiNcBwz_AM&e=) works for me.