Bug#850150: freemat ftbfs with LLVM 3.9
Hi Graham, thanks a lot for the patch! The FreeMat with disabled JIT has just landed to stretch and it was the only possible non-breaking opportunity not to drop the package from the stretch. I will test your patch and if everything OK, will provide fixed version through backports. Best regards Anton 2017-06-05 14:13 GMT+02:00 Graham Inggs: > The attached patch fixes the build with LLVM 4.0. > However, JIT still needs to be re-enabled and properly tested, see #863794. > > -- > debian-science-maintainers mailing list > debian-science-maintainers@lists.alioth.debian.org > http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-science-maintainers -- debian-science-maintainers mailing list debian-science-maintainers@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-science-maintainers
Bug#850150: freemat ftbfs with LLVM 3.9
The attached patch fixes the build with LLVM 4.0. However, JIT still needs to be re-enabled and properly tested, see #863794. Description: Fix build failure with default LLVM 4.0 Author: Graham InggsLast-Update: 2017-06-03 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -258,7 +258,7 @@ link_directories(${LLVM_LIBRARY_DIRS}) llvm_map_components_to_libnames(REQ_LLVM_LIBRARIES executionengine option IRReader lto interpreter nativecodegen asmparser bitreader bitwriter codegen ipo linker selectiondag instrumentation) - set(OPTIONAL_LIBS ${OPTIONAL_LIBS} ${CLANG_LIBRARIES};clang;clangAnalysis;clangApplyReplacements;clangARCMigrate;clangAST;clangASTMatchers;clangBasic;clangCodeGen;clangDriver;clangDynamicASTMatchers;clangEdit;clangFormat;clangFrontend;clangFrontendTool;clangIndex;clangLex;clangParse;clangQuery;clangRename;clangRewrite;clangRewriteFrontend;clangSema;clangSerialization;clangStaticAnalyzerCheckers;clangStaticAnalyzerCore;clangStaticAnalyzerFrontend;clangTidy;clangTidyGoogleModule;clangTidyLLVMModule;clangTidyMiscModule;clangTidyReadability;clangTidyUtils;clang ${CLANG_LIBS} ${REQ_LLVM_LIBRARIES}) + set(OPTIONAL_LIBS ${OPTIONAL_LIBS} ${CLANG_LIBRARIES};clang;clangAnalysis;clangApplyReplacements;clangARCMigrate;clangAST;clangASTMatchers;clangBasic;clangCodeGen;LLVMCoverage;LLVMCoroutines;clangDriver;clangDynamicASTMatchers;clangEdit;clangFormat;clangFrontend;clangFrontendTool;clangIndex;clangLex;clangParse;clangQuery;clangRename;clangRewrite;clangRewriteFrontend;clangSema;clangSerialization;clangStaticAnalyzerCheckers;clangStaticAnalyzerCore;clangStaticAnalyzerFrontend;clangTidy;clangTidyGoogleModule;clangTidyLLVMModule;clangTidyMiscModule;clangTidyReadabilityModule;clangTidyUtils;clang ${CLANG_LIBS} ${REQ_LLVM_LIBRARIES}) ENDIF() ## --- a/libs/libMatC/CJitFuncClang.cpp +++ b/libs/libMatC/CJitFuncClang.cpp @@ -17,9 +17,8 @@ #include "llvm/IR/LLVMContext.h" #include "llvm/IR/Module.h" -#include "llvm/Config/config.h" +#include "llvm/Config/llvm-config.h" #include "llvm/ADT/SmallString.h" -#include "llvm/Config/config.h" #include "llvm/ExecutionEngine/ExecutionEngine.h" #include "llvm/ExecutionEngine/GenericValue.h" #include "llvm/Support/ManagedStatic.h" @@ -110,7 +109,7 @@ // FIXME: This is copied from cc1_main.cpp; simplify and eliminate. // Create a compiler instance to handle the actual work. comp = new clang::CompilerInstance; - comp->setInvocation(CI.get()); + comp->setInvocation(std::move(CI)); // Create the compilers actual diagnostics engine. DiagnosticConsumer ClientDia; comp->createDiagnostics(); -- debian-science-maintainers mailing list debian-science-maintainers@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-science-maintainers
Processed: Re: Bug#850150: freemat ftbfs with LLVM 3.9
Processing control commands: > tags -1 patch Bug #850150 [src:freemat] freemat ftbfs with LLVM 3.9 Added tag(s) patch. -- 850150: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=850150 Debian Bug Tracking System Contact ow...@bugs.debian.org with problems -- debian-science-maintainers mailing list debian-science-maintainers@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-science-maintainers
Bug#850150: freemat ftbfs with LLVM 3.9
control: clone -1 -2 control: block -1 by -2 control: retitle -2 llvm-toolchain-3.9 make some reverse-dependencies FTBFS on i386 control: reassign -2 src:llvm-toolchain-3.9 control: found -2 1:3.9.1-1 control: tags -2 patch On Wed, 4 Jan 2017 16:14:03 +0200 Graham Inggswrote: > Hi > > The attached updated fix-llvm-build.patch fixes the build almost > everywhere by adding LLVMCoverage to OPTIONAL_LIBS. > > The build now fails on i386 with the following: > > In file included from > /usr/lib/llvm-3.9/include/llvm/Target/TargetOptions.h:20:0, > from > /usr/lib/llvm-3.9/include/llvm/Target/TargetMachine.h:22, > from > /usr/lib/llvm-3.9/include/llvm/ExecutionEngine/ExecutionEngine.h:28, > from > /<>/freemat-4.2+dfsg1/libs/libMatC/CJitFuncClang.hpp:8, > from > /<>/freemat-4.2+dfsg1/libs/libMatC/JITFactory.cpp:2: > /usr/lib/llvm-3.9/include/llvm/MC/MCAsmInfo.h:39:6: error: expected > identifier before â,â token > X86, /// Windows x86, uses no CFI, just EH tables >^ > /usr/lib/llvm-3.9/include/llvm/MC/MCAsmInfo.h: In member function âbool > llvm::MCAsmInfo::usesWindowsCFI() constâ: > /usr/lib/llvm-3.9/include/llvm/MC/MCAsmInfo.h:555:58: error: expected > unqualified-id before â)â token > WinEHEncodingType != WinEH::EncodingType::X86); >^ > > Regards > Graham > as already said, this seems to be a regression in llvm-toolchain-3.9, somewhere that X86 is already defined and clashing with the definition. s/X86/x86 works, even if I don't know exactly the implications of that code (seems to be some windows-only define FWICS) the patch is here: -- llvm-toolchain-3.9-3.9.1.orig/include/llvm/MC/MCAsmInfo.h +++ llvm-toolchain-3.9-3.9.1/include/llvm/MC/MCAsmInfo.h @@ -36,7 +36,7 @@ enum class EncodingType { ARM, /// Windows NT (Windows on ARM) CE, /// Windows CE ARM, PowerPC, SH3, SH4 Itanium, /// Windows x64, Windows Itanium (IA-64) - X86, /// Windows x86, uses no CFI, just EH tables + x86, /// Windows x86, uses no CFI, just EH tables MIPS = Alpha, }; } @@ -552,7 +552,7 @@ public: bool usesWindowsCFI() const { return ExceptionsType == ExceptionHandling::WinEH && (WinEHEncodingType != WinEH::EncodingType::Invalid && -WinEHEncodingType != WinEH::EncodingType::X86); +WinEHEncodingType != WinEH::EncodingType::x86); } bool doesDwarfUseRelocationsAcrossSections() const { --- llvm-toolchain-3.9-3.9.1.orig/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ llvm-toolchain-3.9-3.9.1/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -278,7 +278,7 @@ bool AsmPrinter::doInitialization(Module default: llvm_unreachable("unsupported unwinding information encoding"); case WinEH::EncodingType::Invalid: break; -case WinEH::EncodingType::X86: +case WinEH::EncodingType::x86: case WinEH::EncodingType::Itanium: ES = new WinException(this); break; --- llvm-toolchain-3.9-3.9.1.orig/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp +++ llvm-toolchain-3.9-3.9.1/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp @@ -136,7 +136,7 @@ X86MCAsmInfoMicrosoft::X86MCAsmInfoMicro // 32-bit X86 doesn't use CFI, so this isn't a real encoding type. It's just // a place holder that the Windows EHStreamer looks for to suppress CFI // output. In particular, usesWindowsCFI() returns false. -WinEHEncodingType = WinEH::EncodingType::X86; +WinEHEncodingType = WinEH::EncodingType::x86; } ExceptionsType = ExceptionHandling::WinEH; G. signature.asc Description: OpenPGP digital signature -- debian-science-maintainers mailing list debian-science-maintainers@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-science-maintainers
Bug#850150: freemat ftbfs with LLVM 3.9
Package: src:freemat Version: Severity: important Tags: sid stretch [100%] Linking CXX executable FreeMat cd /home/packages/tmp/freemat-4.2+dfsg1/debian/build/src && /usr/bin/cmake -E cmake_link_script CMakeFiles/FreeMat.dir/link.txt --verbose=1 /usr/bin/x86_64-linux-gnu-g++ -g -O2 -fdebug-prefix-map=/home/packages/tmp/freemat-4.2+dfsg1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time - D_FORTIFY_SOURCE=2 -O3 -DNDEBUG -Wl,-Bsymbolic-functions -Wl,-z,relro CMakeFiles/FreeMat.dir/application.moc.cpp.o CMakeFiles/FreeMat.dir/application.cpp.o CMakeFiles/FreeMat.dir/FuncMode.moc.cpp.o CMakeFiles/FreeMat.dir/ScriptMode.moc.cpp.o CMakeFiles/FreeMat.dir/FuncMode.cpp.o CMakeFiles/FreeMat.dir/ScriptMode.cpp.o CMakeFiles/FreeMat.dir/FuncTerminal.cpp.o CMakeFiles/FreeMat.dir/MainApp.moc.cpp.o CMakeFiles/FreeMat.dir/MainApp.cpp.o CMakeFiles/FreeMat.dir/main.cpp.o CMakeFiles/FreeMat.dir/DumbTerminal.moc.cpp.o CMakeFiles/FreeMat.dir/DumbTerminal.cpp.o CMakeFiles/FreeMat.dir/Terminal.moc.cpp.o CMakeFiles/FreeMat.dir/Loader.cpp.o CMakeFiles/FreeMat.dir/Terminal.cpp.o CMakeFiles/FreeMat.dir/qrc_FreeMat.cxx.o CMakeFiles/FreeMat.dir/dummy.f.o -o FreeMat -L/usr/lib/llvm-3.9/lib -rdynamic ../libs/libCore/libCore.a ../libs/libFN/libFN.a ../libs/libGraphics/libGraphics.a ../libs/libFreeMat/libFreeMatlib.a ../libs/libXP/libXP.a ../libs/libMex/libMex.a ../libs/libMatC/libMatC.a ../libs/libFN/levmar-2.3/liblevmar.a ../libs/libMath/libLAPACK_C/liblapack_c.a ../libs/libMath/libDynBlas/libdynblas.a ../libs/libMath/libBLAS_C/libblasref.a -lQtCore -lQtGui -lQtNetwork -lQtOpenGL -lQtXml -lQtSvg -lGLU -lGL -lncurses -lpcre -lfftw3 -lfftw3f -lz -larpack ../libs/libMath/libLAPACK_C/liblapack_c.a -lffi -lportaudio -lboost_math_c99 -lclang -lclangAnalysis -lclangApplyReplacements -lclangARCMigrate -lclangAST -lclangASTMatchers -lclangBasic -lclangCodeGen -lclangDriver -lclangDynamicASTMatchers -lclangEdit -lclangFormat -lclangFrontend -lclangFrontendTool -lclangIndex -lclangLex -lclangParse -lclangQuery -lclangRename -lclangRewrite -lclangRewriteFrontend -lclangSema -lclangSerialization -lclangStaticAnalyzerCheckers -lclangStaticAnalyzerCore -lclangStaticAnalyzerFrontend -lclangTidy -lclangTidyGoogleModule -lclangTidyLLVMModule -lclangTidyMiscModule -lclangTidyReadabilityModule -lclangTidyUtils -lclang /usr/lib/llvm-3.9/lib/libLLVMExecutionEngine.a /usr/lib/llvm-3.9/lib/libLLVMOption.a /usr/lib/llvm-3.9/lib/libLLVMIRReader.a /usr/lib/llvm-3.9/lib/libLLVMLTO.a /usr/lib/llvm-3.9/lib/libLLVMInterpreter.a /usr/lib/llvm-3.9/lib/libLLVMX86CodeGen.a /usr/lib/llvm-3.9/lib/libLLVMX86Desc.a /usr/lib/llvm-3.9/lib/libLLVMX86Info.a /usr/lib/llvm-3.9/lib/libLLVMAsmParser.a /usr/lib/llvm-3.9/lib/libLLVMBitReader.a /usr/lib/llvm-3.9/lib/libLLVMBitWriter.a /usr/lib/llvm-3.9/lib/libLLVMCodeGen.a /usr/lib/llvm-3.9/lib/libLLVMipo.a /usr/lib/llvm-3.9/lib/libLLVMLinker.a /usr/lib/llvm-3.9/lib/libLLVMSelectionDAG.a /usr/lib/llvm-3.9/lib/libLLVMInstrumentation.a -lclangAnalysis -lclangApplyReplacements -lclangARCMigrate -lclangAST -lclangASTMatchers -lclangBasic -lclangCodeGen -lclangDriver -lclangDynamicASTMatchers -lclangEdit -lclangFormat -lclangFrontend -lclangFrontendTool -lclangIndex -lclangLex -lclangParse -lclangQuery -lclangRename -lclangRewrite -lclangRewriteFrontend -lclangSema -lclangSerialization -lclangStaticAnalyzerCheckers -lclangStaticAnalyzerCore -lclangStaticAnalyzerFrontend -lclangTidy -lclangTidyGoogleModule -lclangTidyLLVMModule -lclangTidyMiscModule -lclangTidyReadabilityModule -lclangTidyUtils /usr/lib/llvm-3.9/lib/libLLVMIRReader.a /usr/lib/llvm-3.9/lib/libLLVMAsmParser.a /usr/lib/llvm-3.9/lib/libLLVMVectorize.a /usr/lib/llvm-3.9/lib/libLLVMObjCARCOpts.a /usr/lib/llvm-3.9/lib/libLLVMExecutionEngine.a /usr/lib/llvm-3.9/lib/libLLVMRuntimeDyld.a -lffi /usr/lib/llvm-3.9/lib/libLLVMObject.a /usr/lib/llvm-3.9/lib/libLLVMMCDisassembler.a /usr/lib/llvm-3.9/lib/libLLVMAsmPrinter.a /usr/lib/llvm-3.9/lib/libLLVMCodeGen.a /usr/lib/llvm-3.9/lib/libLLVMBitReader.a /usr/lib/llvm-3.9/lib/libLLVMBitWriter.a /usr/lib/llvm-3.9/lib/libLLVMInstrumentation.a /usr/lib/llvm-3.9/lib/libLLVMScalarOpts.a /usr/lib/llvm-3.9/lib/libLLVMInstCombine.a /usr/lib/llvm-3.9/lib/libLLVMTarget.a /usr/lib/llvm-3.9/lib/libLLVMTransformUtils.a /usr/lib/llvm-3.9/lib/libLLVMAnalysis.a /usr/lib/llvm-3.9/lib/libLLVMProfileData.a /usr/lib/llvm-3.9/lib/libLLVMMCParser.a /usr/lib/llvm-3.9/lib/libLLVMDebugInfoCodeView.a /usr/lib/llvm-3.9/lib/libLLVMX86AsmPrinter.a /usr/lib/llvm-3.9/lib/libLLVMMC.a /usr/lib/llvm-3.9/lib/libLLVMX86Utils.a /usr/lib/llvm-3.9/lib/libLLVMCore.a /usr/lib/llvm-3.9/lib/libLLVMSupport.a -lrt -ldl -ltinfo -lpthread -lz -lm -lgfortran -lquadmath /usr/lib/llvm-3.9/lib/libclangCodeGen.a(CoverageMappingGen.cpp.o): In function `(anonymous namespace)::CounterCoverageMappingBuilder::addCounters(llvm::coverage::Counter, llvm::coverage::Counter, llvm::coverage::Counter)':