Closed muziker closed 6 years ago
Do you have a more precise log ? Thanks.
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 to
typeinfo for llvm_dsp_factory'
FLSessionManager.cpp:(.text._ZN16FLSessionManager15getDependenciesEP11dsp_factory+0x72): undefined reference to getDSPFactoryLibraryList[abi:cxx11](llvm_dsp_factory*)' ../../src/objectsFolder/FLSessionManager.o: In function
FLSessionManager::deleteDSPandFactory(dsp)':
FLSessionManager.cpp:(.text._ZN16FLSessionManager19deleteDSPandFactoryEP3dsp+0xfe): undefined reference to typeinfo for llvm_dsp_factory' FLSessionManager.cpp:(.text._ZN16FLSessionManager19deleteDSPandFactoryEP3dsp+0x114): undefined reference to
deleteDSPFactory(llvm_dsp_factory)'
../../src/objectsFolder/FLSessionManager.o: In function FLSessionManager::createFactory(QString const&, FLWinSettings*, QString&)': FLSessionManager.cpp:(.text._ZN16FLSessionManager13createFactoryERK7QStringP13FLWinSettingsRS0_+0xfc4): undefined reference to
readDSPFactoryFromBitcodeFile(std::cxx11::basic_string<char, std::char_traitstypeinfo for llvm_dsp_factory' FLSessionManager.cpp:(.text._ZN16FLSessionManager13createFactoryERK7QStringP13FLWinSettingsRS0_+0x115d): undefined reference to
writeDSPFactoryToBitcodeFile(llvm_dsp_factorytypeinfo for llvm_dsp_factory' FLHelpWindow.cpp:(.text._ZN12FLHelpWindow9parseLibsERSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorISt4pairIS6_S6_ESaIS9_EESt4lessIS6_ESaIS8_IKS6_SB_EEE+0x757): undefined reference to
deleteDSPFactory(llvm_dsp_factory*)'
collect2: error: ld returned 1 exit status
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)
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.
LLVM backend has to be built also.
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?
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
Is it brew LLVM? Or MacPorts?
It is from the github. version 6.0.1. Maybe it is something in the makefile? I do have projucer installed.
Can you possibly try with LLVM Macport or brew version ?
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'
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
@dfober : any idea here?
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'?
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
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?
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.
Does QT need special compilation flags? It is probably something to do with the llvm debs on my end.
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.
I'm getting this during compilation of faustlive. I'm using llvm 6.0.1 with rtti, QT5. Faust itself is working.