grame-cncm / faustlive

Advanced self-contained prototyping environment for the Faust programming language
Other
78 stars 17 forks source link

undefined reference to `typeinfo for llvm_dsp_factory' #10

Closed muziker closed 6 years ago

muziker commented 6 years ago

I'm getting this during compilation of faustlive. I'm using llvm 6.0.1 with rtti, QT5. Faust itself is working.

sletz commented 6 years ago

Do you have a more precise log ? Thanks.

muziker commented 6 years ago

g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DAPP_VERSION=\"2.0\" -DLLVM_VERSION=\"6.0.1\" -DHTTPCTRL -DQRCODECTRL -DJACK -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I/home/ustinov/.local/include -fPIC -Werror=date-time -Wall -W -Wno-unused-parameter -Wwrite-strings -Wno-missing-field-initializers -pedantic -Wno-long-long -Wno-comment -ffunction-sections -fdata-sections -O3 -DNDEBUG -D_GNU_SOURCE -DSTDC_CONSTANT_MACROS -DSTDC_FORMAT_MACROS -DSTDC_LIMIT_MACROS -I. -I. -I/opt/local/include -I../../src/Audio -I../../src/MenusAndDialogs -I../../src/MainStructure -I../../src/Network -I../../src/Utilities -I../../src/Audio/JA -I../../../../.local/qt5install/include -I../../../../.local/qt5install/include/QtWidgets -I../../../../.local/qt5install/include/QtGui -I../../../../.local/qt5install/include/QtNetwork -I../../../../.local/qt5install/include/QtCore -I../../src/objectsFolder -isystem /usr/include/libdrm -I../../../../.local/qt5install/mkspecs/linux-g++ -o ../../src/objectsFolder/moc_faustqt.o ../../src/objectsFolder/moc_faustqt.cpp
g++ -Wl,-O1 -Wl,-rpath,/home/ustinov/.local/qt5install/lib -L/home/ustinov/.local/lib -o FaustLive ../../src/objectsFolder/JA_audioSettings.o ../../src/objectsFolder/JA_audioManager.o ../../src/objectsFolder/JA_audioFactory.o ../../src/objectsFolder/JA_audioFader.o ../../src/objectsFolder/utilities.o ../../src/objectsFolder/AudioCreator.o ../../src/objectsFolder/AudioFader_Implementation.o ../../src/objectsFolder/FLToolBar.o ../../src/objectsFolder/FLHelpWindow.o ../../src/objectsFolder/FLPresentationWindow.o ../../src/objectsFolder/FLErrorWindow.o ../../src/objectsFolder/FLMessageWindow.o ../../src/objectsFolder/FLExportManager.o ../../src/objectsFolder/FLWindow.o ../../src/objectsFolder/FLComponentWindow.o ../../src/objectsFolder/FLSettings.o ../../src/objectsFolder/FLWinSettings.o ../../src/objectsFolder/FLFileWatcher.o ../../src/objectsFolder/FLPreferenceWindow.o ../../src/objectsFolder/FLSessionManager.o ../../src/objectsFolder/FLApp.o ../../src/objectsFolder/FLInterfaceManager.o ../../src/objectsFolder/FLServerHttp.o ../../src/objectsFolder/HTTPWindow.o ../../src/objectsFolder/SimpleParser.o ../../src/objectsFolder/main.o ../../src/objectsFolder/qrc_application.o ../../src/objectsFolder/qrc_styles.o ../../src/objectsFolder/moc_JA_audioManager.o ../../src/objectsFolder/moc_AudioSettings.o ../../src/objectsFolder/moc_AudioManager.o ../../src/objectsFolder/moc_AudioCreator.o ../../src/objectsFolder/moc_FLToolBar.o ../../src/objectsFolder/moc_FLHelpWindow.o ../../src/objectsFolder/moc_FLPresentationWindow.o ../../src/objectsFolder/moc_FLErrorWindow.o ../../src/objectsFolder/moc_FLMessageWindow.o ../../src/objectsFolder/moc_FLExportManager.o ../../src/objectsFolder/moc_FLPreferenceWindow.o ../../src/objectsFolder/moc_FLWindow.o ../../src/objectsFolder/moc_FLComponentWindow.o ../../src/objectsFolder/moc_FLSettings.o ../../src/objectsFolder/moc_FLWinSettings.o ../../src/objectsFolder/moc_FLFileWatcher.o ../../src/objectsFolder/moc_FLServerHttp.o ../../src/objectsFolder/moc_FLSessionManager.o ../../src/objectsFolder/moc_FLApp.o ../../src/objectsFolder/moc_HTTPWindow.o ../../src/objectsFolder/moc_faustqt.o -L/usr/local/lib/ -L/usr/lib/ -L/opt/local/lib -lHTTPDFaust -lOSCFaust -lfaust -lqrencode -lmicrohttpd -lcrypto -lcurl -lasound -ljack -L/home/ustinov/.local/lib -lLLVMLTO -lLLVMPasses -lLLVMObjCARCOpts -lLLVMMIRParser -lLLVMSymbolize -lLLVMDebugInfoPDB -lLLVMDebugInfoDWARF -lLLVMCoverage -lLLVMTableGen -lLLVMDlltoolDriver -lLLVMOrcJIT -lLLVMXCoreDisassembler -lLLVMXCoreCodeGen -lLLVMXCoreDesc -lLLVMXCoreInfo -lLLVMXCoreAsmPrinter -lLLVMSystemZDisassembler -lLLVMSystemZCodeGen -lLLVMSystemZAsmParser -lLLVMSystemZDesc -lLLVMSystemZInfo -lLLVMSystemZAsmPrinter -lLLVMSparcDisassembler -lLLVMSparcCodeGen -lLLVMSparcAsmParser -lLLVMSparcDesc -lLLVMSparcInfo -lLLVMSparcAsmPrinter -lLLVMPowerPCDisassembler -lLLVMPowerPCCodeGen -lLLVMPowerPCAsmParser -lLLVMPowerPCDesc -lLLVMPowerPCInfo -lLLVMPowerPCAsmPrinter -lLLVMNVPTXCodeGen -lLLVMNVPTXDesc -lLLVMNVPTXInfo -lLLVMNVPTXAsmPrinter -lLLVMMSP430CodeGen -lLLVMMSP430Desc -lLLVMMSP430Info -lLLVMMSP430AsmPrinter -lLLVMMipsDisassembler -lLLVMMipsCodeGen -lLLVMMipsAsmParser -lLLVMMipsDesc -lLLVMMipsInfo -lLLVMMipsAsmPrinter -lLLVMLanaiDisassembler -lLLVMLanaiCodeGen -lLLVMLanaiAsmParser -lLLVMLanaiDesc -lLLVMLanaiAsmPrinter -lLLVMLanaiInfo -lLLVMHexagonDisassembler -lLLVMHexagonCodeGen -lLLVMHexagonAsmParser -lLLVMHexagonDesc -lLLVMHexagonInfo -lLLVMBPFDisassembler -lLLVMBPFCodeGen -lLLVMBPFAsmParser -lLLVMBPFDesc -lLLVMBPFInfo -lLLVMBPFAsmPrinter -lLLVMARMDisassembler -lLLVMARMCodeGen -lLLVMARMAsmParser -lLLVMARMDesc -lLLVMARMInfo -lLLVMARMAsmPrinter -lLLVMARMUtils -lLLVMAMDGPUDisassembler -lLLVMAMDGPUCodeGen -lLLVMAMDGPUAsmParser -lLLVMAMDGPUDesc -lLLVMAMDGPUInfo -lLLVMAMDGPUAsmPrinter -lLLVMAMDGPUUtils -lLLVMAArch64Disassembler -lLLVMAArch64CodeGen -lLLVMAArch64AsmParser -lLLVMAArch64Desc -lLLVMAArch64Info -lLLVMAArch64AsmPrinter -lLLVMAArch64Utils -lLLVMObjectYAML -lLLVMLibDriver -lLLVMOption -lLLVMWindowsManifest -lLLVMFuzzMutate -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMGlobalISel -lLLVMSelectionDAG -lLLVMAsmPrinter -lLLVMDebugInfoCodeView -lLLVMDebugInfoMSF -lLLVMX86Desc -lLLVMMCDisassembler -lLLVMX86Info -lLLVMX86AsmPrinter -lLLVMX86Utils -lLLVMMCJIT -lLLVMLineEditor -lLLVMInterpreter -lLLVMExecutionEngine -lLLVMRuntimeDyld -lLLVMCodeGen -lLLVMTarget -lLLVMCoroutines -lLLVMipo -lLLVMInstrumentation -lLLVMVectorize -lLLVMScalarOpts -lLLVMLinker -lLLVMIRReader -lLLVMAsmParser -lLLVMInstCombine -lLLVMTransformUtils -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMObject -lLLVMMCParser -lLLVMMC -lLLVMBitReader -lLLVMCore -lLLVMBinaryFormat -lLLVMSupport -lLLVMDemangle -lz -lrt -ldl -ltinfo -lm -lxml2 -L/home/ustinov/.local/qt5install/lib -lQt5Widgets -lQt5Gui -lQt5Network -lQt5Core -lGL -lpthread ../../src/objectsFolder/FLSessionManager.o: In function FLSessionManager::getDependencies(dsp_factory*)': FLSessionManager.cpp:(.text._ZN16FLSessionManager15getDependenciesEP11dsp_factory+0x5b): undefined reference totypeinfo for llvm_dsp_factory' FLSessionManager.cpp:(.text._ZN16FLSessionManager15getDependenciesEP11dsp_factory+0x72): undefined reference to getDSPFactoryLibraryList[abi:cxx11](llvm_dsp_factory*)' ../../src/objectsFolder/FLSessionManager.o: In functionFLSessionManager::deleteDSPandFactory(dsp)': FLSessionManager.cpp:(.text._ZN16FLSessionManager19deleteDSPandFactoryEP3dsp+0xfe): undefined reference to typeinfo for llvm_dsp_factory' FLSessionManager.cpp:(.text._ZN16FLSessionManager19deleteDSPandFactoryEP3dsp+0x114): undefined reference todeleteDSPFactory(llvm_dsp_factory)' ../../src/objectsFolder/FLSessionManager.o: In function FLSessionManager::createFactory(QString const&, FLWinSettings*, QString&)': FLSessionManager.cpp:(.text._ZN16FLSessionManager13createFactoryERK7QStringP13FLWinSettingsRS0_+0xfc4): undefined reference toreadDSPFactoryFromBitcodeFile(std::
cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::cxx11::basic_string<char, std::char_traits, std::allocator > const&, int)' FLSessionManager.cpp:(.text.ZN16FLSessionManager13createFactoryERK7QStringP13FLWinSettingsRS0+0x1051): undefined reference to `createDSPFactoryFromFile(std::cxx11::basic_string<char, std::char_traits, std::allocator > const&, int, char const*, std::cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::cxx11::basic_string<char, std::char_traits, std::allocator >&, int)' FLSessionManager.cpp:(.text.ZN16FLSessionManager13createFactoryERK7QStringP13FLWinSettingsRS0+0x1147): undefined reference to typeinfo for llvm_dsp_factory' FLSessionManager.cpp:(.text._ZN16FLSessionManager13createFactoryERK7QStringP13FLWinSettingsRS0_+0x115d): undefined reference towriteDSPFactoryToBitcodeFile(llvm_dsp_factory, std::cxx11::basic_string<char, std::char_traits, std::allocator > const&)' ../../src/objectsFolder/FLHelpWindow.o: In function `FLHelpWindow::parseLibs(std::map<std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::vector<std::pair<std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::cxx11::basic_string<char, std::char_traits, std::allocator > > > >, std::less<std::cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::cxx11::basic_string<char, std::char_traits, std::allocator > const, std::vector<std::pair<std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::cxx11::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::pair<std::cxx11::basic_string<char, std::char_traits, std::allocator >, std::cxx11::basic_string<char, std::char_traits, std::allocator > > > > > > >&)': FLHelpWindow.cpp:(.text._ZN12FLHelpWindow9parseLibsERSt3mapINSt7cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorISt4pairIS6_S6_ESaIS9_EESt4lessIS6_ESaIS8_IKS6_SB_EEE+0x2e9): undefined reference to `createDSPFactoryFromFile(std::cxx11::basic_string<char, std::char_traits, std::allocator > const&, int, char const**, std::cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::__cxx11::basic_string<char, std::char_traits, std::allocator >&, int)' FLHelpWindow.cpp:(.text._ZN12FLHelpWindow9parseLibsERSt3mapINSt7cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorISt4pairIS6_S6_ESaIS9_EESt4lessIS6_ESaIS8_IKS6_SB_EEE+0x741): undefined reference to typeinfo for llvm_dsp_factory' FLHelpWindow.cpp:(.text._ZN12FLHelpWindow9parseLibsERSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorISt4pairIS6_S6_ESaIS9_EESt4lessIS6_ESaIS8_IKS6_SB_EEE+0x757): undefined reference todeleteDSPFactory(llvm_dsp_factory*)' collect2: error: ld returned 1 exit status

sletz commented 6 years ago

It seems you don"t have libfaust compiled and available. You'll have to use make all at top-level to build the libfaust library. (see also : https://github.com/grame-cncm/faust/wiki)

muziker commented 6 years ago

The default target in the faust build directory is all. And it is the same on the initial directory. The output for the build makefile is: cd faustdir && cmake -DINCLUDE_STATIC=on .. -- In target faust: include ASMJS backend -- In target faust: include C backend -- In target faust: include CPP backend -- In target faust: include JAVA backend -- In target faust: include JS backend -- In target faust: include OCPP backend -- In target faust: include WASM backend -- In target staticlib: include ASMJS backend -- In target staticlib: include C backend -- In target staticlib: include CPP backend -- In target staticlib: include JAVA backend -- In target staticlib: include JS backend -- In target staticlib: include OCPP backend -- In target staticlib: include WASM backend -- In target dynamiclib: include ASMJS backend -- In target dynamiclib: include C backend -- In target dynamiclib: include CPP backend -- In target dynamiclib: include JAVA backend -- In target dynamiclib: include JS backend -- In target dynamiclib: include OCPP backend -- In target dynamiclib: include WASM backend -- In target wasmlib: include WASM backend -- In target asmjslib: include ASMJS backend -- Found libmicrohttpd 0.9.44 -- Install location is /usr/local -- Include targets: faust;staticlib;dynamiclib osc;http

And has the targets staticlib and dynamiclib. I double checked the existence of libfaust as well. It is there.

sletz commented 6 years ago

LLVM backend has to be built also.

muziker commented 6 years ago

Compiling the faust project again: The initial directory makefile default is make all. The make all doesn't change the selected backends. So what i did, was replace the regular.cmake with the all.cmake. If the user compiles the faust project to begin with, the faustdir is the build directory with all the configuration details in the CMakeCache.txt, and this doesn't change even if you replace the backends.txt with the cmake file you want. The README isn't clear that faust/build is one set of config files, and faustdir, is another set of config files.

After compiling with the llvm backend in, cd faustdir && cmake -DINCLUDE_STATIC=on -DINCLUDE_DYNAMIC=on -DINCLUDE_HTTP=on .. -- Found LLVM 6.0.1 -- In target faust: include ASMJS backend -- In target faust: include C backend -- In target faust: include CPP backend -- In target faust: include FIR backend -- In target faust: include INTERP backend -- In target faust: include JAVA backend -- In target faust: include JS backend -- In target faust: include OCPP backend -- In target faust: include RUST backend -- In target faust: include WASM backend -- In target faust: include LLVM backend -- In target staticlib: include ASMJS backend -- In target staticlib: include C backend -- In target staticlib: include CPP backend -- In target staticlib: include FIR backend -- In target staticlib: include INTERP backend -- In target staticlib: include JAVA backend -- In target staticlib: include JS backend -- In target staticlib: include OCPP backend -- In target staticlib: include RUST backend -- In target staticlib: include WASM backend -- In target staticlib: include LLVM backend -- In target dynamiclib: include ASMJS backend -- In target dynamiclib: include C backend -- In target dynamiclib: include CPP backend -- In target dynamiclib: include FIR backend -- In target dynamiclib: include INTERP backend -- In target dynamiclib: include JAVA backend -- In target dynamiclib: include JS backend -- In target dynamiclib: include OCPP backend -- In target dynamiclib: include RUST backend -- In target dynamiclib: include WASM backend -- In target dynamiclib: include LLVM backend -- In target wasmlib: include WASM backend -- In target asmjslib: include ASMJS backend -- Found libmicrohttpd 0.9.44 -- Install location is /usr/local -- Include targets: faust;staticlib;dynamiclib osc;http

I'm still getting the typeinfo error. Should i be using a different version of the llvm?

muziker commented 6 years ago

Looking through the symbols in libfaust.so, the various llvm_dsp_factory are there: 31122: 000000000081c710 21 FUNC GLOBAL DEFAULT 12 _ZN20llvm_dsp_factory_aux 31549: 000000000081e9f0 218 FUNC GLOBAL DEFAULT 12 _ZN20llvm_dsp_factory_aux 32054: 0000000000822f60 23 FUNC WEAK DEFAULT 12 _ZN20llvm_dsp_factory_aux 32166: 000000000081c9f0 3617 FUNC GLOBAL DEFAULT 12 _ZN20llvm_dsp_factory_aux 32646: 0000000000822f00 34 FUNC WEAK DEFAULT 12 _ZN16llvm_dsp_factory16ge 33575: 0000000000823150 242 FUNC WEAK DEFAULT 12 _ZN16llvm_dsp_factory10ge 34097: 000000000081ad70 342 FUNC GLOBAL DEFAULT 12 _ZN16llvm_dsp_factory17cr 34296: 000000000081e420 6 FUNC GLOBAL DEFAULT 12 _ZN20llvm_dsp_factory_aux 35003: 00000000029a9ec0 56 OBJECT GLOBAL DEFAULT 27 _ZN20llvm_dsp_factory_aux 35146: 00000000029a9ef8 4 OBJECT GLOBAL DEFAULT 27 _ZN20llvm_dsp_factory_aux 36669: 000000000081f070 861 FUNC GLOBAL DEFAULT 12 _ZN20llvm_dsp_factory_aux 38350: 00000000029a9ea0 8 OBJECT GLOBAL DEFAULT 27 _ZN20llvm_dsp_factory_aux 38425: 000000000081a8e0 74 FUNC GLOBAL DEFAULT 12 _ZN20llvm_dsp_factory_aux 39819: 0000000000822c00 279 FUNC GLOBAL DEFAULT 12 _ZN20llvm_dsp_factory_aux 41284: 000000000081c4b0 548 FUNC GLOBAL DEFAULT 12 _ZN20llvm_dsp_factory_aux 42468: 000000000081c730 394 FUNC GLOBAL DEFAULT 12 _ZN20llvm_dsp_factory_aux 42857: 0000000000823510 124 FUNC WEAK DEFAULT 12 _ZN16llvm_dsp_factoryD2Ev 43152: 000000000081c6e0 36 FUNC GLOBAL DEFAULT 12 _ZN20llvm_dsp_factory_aux

sletz commented 6 years ago

Is it brew LLVM? Or MacPorts?

muziker commented 6 years ago

It is from the github. version 6.0.1. Maybe it is something in the makefile? I do have projucer installed.

sletz commented 6 years ago

Can you possibly try with LLVM Macport or brew version ?

muziker commented 6 years ago

I'm on linux though. Not related information but could be helpful for others. I was tinkering around with the makefile in the linux build directory, and a user has to change qm:= \<path to new qmake> ; to the new qmake path . My version is 3.1, QT 5.10.0. The SPEC variable has to be '-makefile'

muziker commented 6 years ago

readelf -sW libfaust.so.2.5.34 |c++filt |grep typeinfo | grep dsp_factory | grep llvm

I tried running this, and it did not show any information

sletz commented 6 years ago

@dfober : any idea here?

dfober commented 6 years ago

Do you mean you compiled llvm from the git repository ? Could you send the output of 'llvm-config --version' , 'llvm-config --libs' and 'llvm-config --has-rtti'?

muziker commented 6 years ago

I compiled llvm with rtti yes, though supposedly, according to many online docs, from llvm 5, it doesn't need to be either rtti or no-rtti anymore.

llvm-config --has-rtti YES llvm-config --version 6.0.1 llvm-config --libs -lLLVMLTO -lLLVMPasses -lLLVMObjCARCOpts -lLLVMMIRParser -lLLVMSymbolize -lLLVMDebugInfoPDB -lLLVMDebugInfoDWARF -lLLVMCoverage -lLLVMTableGen -lLLVMDlltoolDriver -lLLVMOrcJIT -lLLVMXCoreDisassembler -lLLVMXCoreCodeGen -lLLVMXCoreDesc -lLLVMXCoreInfo -lLLVMXCoreAsmPrinter -lLLVMSystemZDisassembler -lLLVMSystemZCodeGen -lLLVMSystemZAsmParser -lLLVMSystemZDesc -lLLVMSystemZInfo -lLLVMSystemZAsmPrinter -lLLVMSparcDisassembler -lLLVMSparcCodeGen -lLLVMSparcAsmParser -lLLVMSparcDesc -lLLVMSparcInfo -lLLVMSparcAsmPrinter -lLLVMPowerPCDisassembler -lLLVMPowerPCCodeGen -lLLVMPowerPCAsmParser -lLLVMPowerPCDesc -lLLVMPowerPCInfo -lLLVMPowerPCAsmPrinter -lLLVMNVPTXCodeGen -lLLVMNVPTXDesc -lLLVMNVPTXInfo -lLLVMNVPTXAsmPrinter -lLLVMMSP430CodeGen -lLLVMMSP430Desc -lLLVMMSP430Info -lLLVMMSP430AsmPrinter -lLLVMMipsDisassembler -lLLVMMipsCodeGen -lLLVMMipsAsmParser -lLLVMMipsDesc -lLLVMMipsInfo -lLLVMMipsAsmPrinter -lLLVMLanaiDisassembler -lLLVMLanaiCodeGen -lLLVMLanaiAsmParser -lLLVMLanaiDesc -lLLVMLanaiAsmPrinter -lLLVMLanaiInfo -lLLVMHexagonDisassembler -lLLVMHexagonCodeGen -lLLVMHexagonAsmParser -lLLVMHexagonDesc -lLLVMHexagonInfo -lLLVMBPFDisassembler -lLLVMBPFCodeGen -lLLVMBPFAsmParser -lLLVMBPFDesc -lLLVMBPFInfo -lLLVMBPFAsmPrinter -lLLVMARMDisassembler -lLLVMARMCodeGen -lLLVMARMAsmParser -lLLVMARMDesc -lLLVMARMInfo -lLLVMARMAsmPrinter -lLLVMARMUtils -lLLVMAMDGPUDisassembler -lLLVMAMDGPUCodeGen -lLLVMAMDGPUAsmParser -lLLVMAMDGPUDesc -lLLVMAMDGPUInfo -lLLVMAMDGPUAsmPrinter -lLLVMAMDGPUUtils -lLLVMAArch64Disassembler -lLLVMAArch64CodeGen -lLLVMAArch64AsmParser -lLLVMAArch64Desc -lLLVMAArch64Info -lLLVMAArch64AsmPrinter -lLLVMAArch64Utils -lLLVMObjectYAML -lLLVMLibDriver -lLLVMOption -lLLVMWindowsManifest -lLLVMFuzzMutate -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMGlobalISel -lLLVMSelectionDAG -lLLVMAsmPrinter -lLLVMDebugInfoCodeView -lLLVMDebugInfoMSF -lLLVMX86Desc -lLLVMMCDisassembler -lLLVMX86Info -lLLVMX86AsmPrinter -lLLVMX86Utils -lLLVMMCJIT -lLLVMLineEditor -lLLVMInterpreter -lLLVMExecutionEngine -lLLVMRuntimeDyld -lLLVMCodeGen -lLLVMTarget -lLLVMCoroutines -lLLVMipo -lLLVMInstrumentation -lLLVMVectorize -lLLVMScalarOpts -lLLVMLinker -lLLVMIRReader -lLLVMAsmParser -lLLVMInstCombine -lLLVMTransformUtils -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMObject -lLLVMMCParser -lLLVMMC -lLLVMBitReader -lLLVMCore -lLLVMBinaryFormat -lLLVMSupport -lLLVMDemangle

dfober commented 6 years ago

I've tried on Unbuntu 16.04 using the pre-build binaries (http://releases.llvm.org/download.html#6.0.0): it compiles and it works. Could you try on your side?

muziker commented 6 years ago

I've added the llvm binaries, and used update-alternatives to switch the llvm-config. llvm-config --has-rtti is no. Unfortunately, it is the same thing. btw do you use any of the llvm-config --cxxflags ? This is not a ubuntu 16.04 though.

muziker commented 6 years ago

Does QT need special compilation flags? It is probably something to do with the llvm debs on my end.

muziker commented 6 years ago

Ok so managed to solve this, but haven't tried out all the functionalities. The problem is a mixture of no-rtti and rtti. From llvm chatter on the web, the use of the latest llvm would solve the rtti vs no-rtti, but well that isn't the case, or rather the answers are ambiguous as to if that works with mixing rtti and no-rtti code. So in the faust/build/faustdir, which is the secondary build directory of faust, replace all occurrences of -fno-rtti with -frtti. The cmakelists.txt file in the faust/build directory has some property statements that appends this string. I might be making a mistake with the assumption that -frtti is fine in all environments, so any clarity would be helpful. In any case, faustlive builds once faust is recompiled with -frtti, which is not mentioned in the faust installation/readme documentation except in the line that says llvm needs rtti.