Description of problem: Package lfortran fails to build from source in Fedora Rawhide. This has been the case since about a week after the last build: https://koschei.fedoraproject.org/build/21260216 Version-Release number of selected component (if applicable): 0.56.0-1.fc44 Steps to Reproduce: koji build --scratch f44 lfortran-0.56.0-1.fc44.src.rpm Additional info: This package is tracked by Koschei. See: https://koschei.fedoraproject.org/package/lfortran Reproducible: Always
OK, something else changed at that point. The latest build in koschei is complaining about something in xeus' CMake setup. The bump of xeus to 5.2.4 does fix that, but there is a new problem caused by LLVM 21, I think: https://copr.fedorainfracloud.org/coprs/qulogic/xeus523/build/9587866/ In file included from /builddir/build/BUILD/lfortran-0.56.0-build/lfortran-0.56.0/src/libasr/codegen/evaluator.cpp:66: /builddir/build/BUILD/lfortran-0.56.0-build/lfortran-0.56.0/src/libasr/../libasr/codegen/KaleidoscopeJIT.h: In constructor ‘llvm::orc::KaleidoscopeJIT::KaleidoscopeJIT(std::unique_ptr<llvm::orc::ExecutionSession>, llvm::orc::JITTargetMachineBuilder, llvm::DataLayout)’: /builddir/build/BUILD/lfortran-0.56.0-build/lfortran-0.56.0/src/libasr/../libasr/codegen/KaleidoscopeJIT.h:56:9: error: no matching function for call to ‘llvm::orc::RTDyldObjectLinkingLayer::RTDyldObjectLinkingLayer(llvm::orc::ExecutionSession&, llvm::orc::KaleidoscopeJIT::KaleidoscopeJIT(std::unique_ptr<llvm::orc::ExecutionSession>, llvm::orc::JITTargetMachineBuilder, llvm::DataLayout)::<lambda()>)’ 56 | ObjectLayer(*this->ES, | ^~~~~~~~~~~~~~~~~~~~~~ 57 | []() { return std::make_unique<SectionMemoryManager>(); }), | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/lfortran-0.56.0-build/lfortran-0.56.0/src/libasr/../libasr/codegen/KaleidoscopeJIT.h:56:9: note: there is 1 candidate In file included from /builddir/build/BUILD/lfortran-0.56.0-build/lfortran-0.56.0/src/libasr/../libasr/codegen/KaleidoscopeJIT.h:23: /usr/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h:58:3: note: candidate 1: ‘llvm::orc::RTDyldObjectLinkingLayer::RTDyldObjectLinkingLayer(llvm::orc::ExecutionSession&, GetMemoryManagerFunction)’ 58 | RTDyldObjectLinkingLayer(ExecutionSession &ES, | ^~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h:59:53: note: no known conversion for argument 2 from ‘llvm::orc::KaleidoscopeJIT::KaleidoscopeJIT(std::unique_ptr<llvm::orc::ExecutionSession>, llvm::orc::JITTargetMachineBuilder, llvm::DataLayout)::<lambda()>’ to ‘llvm::orc::RTDyldObjectLinkingLayer::GetMemoryManagerFunction’ {aka ‘llvm::unique_function<std::unique_ptr<llvm::RuntimeDyld::MemoryManager>(const llvm::MemoryBuffer&)>’} 59 | GetMemoryManagerFunction GetMemoryManager); | ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ /builddir/build/BUILD/lfortran-0.56.0-build/lfortran-0.56.0/src/libasr/../libasr/codegen/KaleidoscopeJIT.h: In static member function ‘static llvm::Expected<std::unique_ptr<llvm::orc::KaleidoscopeJIT> > llvm::orc::KaleidoscopeJIT::Create()’: /builddir/build/BUILD/lfortran-0.56.0-build/lfortran-0.56.0/src/libasr/../libasr/codegen/KaleidoscopeJIT.h:76:16: error: ‘SelfExecutorProcessControl’ has not been declared; did you mean ‘ExecutorProcessControl’? 76 | auto EPC = SelfExecutorProcessControl::Create(); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | ExecutorProcessControl /builddir/build/BUILD/lfortran-0.56.0-build/lfortran-0.56.0/src/libasr/codegen/evaluator.cpp: In member function ‘std::unique_ptr<llvm::Module> LCompilers::LLVMEvaluator::parse_module(const std::string&, const std::string&)’: /builddir/build/BUILD/lfortran-0.56.0-build/lfortran-0.56.0/src/libasr/codegen/evaluator.cpp:275:29: error: cannot convert ‘std::string’ {aka ‘std::__cxx11::basic_string<char>’} to ‘llvm::Triple’ 275 | module->setTargetTriple(target_triple); | ^~~~~~~~~~~~~ | | | std::string {aka std::__cxx11::basic_string<char>} In file included from /usr/include/llvm/Analysis/TargetLibraryInfo.h:15, from /builddir/build/BUILD/lfortran-0.56.0-build/lfortran-0.56.0/src/libasr/codegen/evaluator.cpp:8: /usr/include/llvm/IR/Module.h:324:31: note: initializing argument 1 of ‘void llvm::Module::setTargetTriple(llvm::Triple)’ 324 | void setTargetTriple(Triple T) { TargetTriple = std::move(T); } | ~~~~~~~^ /builddir/build/BUILD/lfortran-0.56.0-build/lfortran-0.56.0/src/libasr/codegen/evaluator.cpp: In member function ‘void LCompilers::LLVMEvaluator::add_module(std::unique_ptr<llvm::Module>)’: /builddir/build/BUILD/lfortran-0.56.0-build/lfortran-0.56.0/src/libasr/codegen/evaluator.cpp:300:26: error: cannot convert ‘std::string’ {aka ‘std::__cxx11::basic_string<char>’} to ‘llvm::Triple’ 300 | mod->setTargetTriple(target_triple); | ^~~~~~~~~~~~~ | | | std::string {aka std::__cxx11::basic_string<char>} /usr/include/llvm/IR/Module.h:324:31: note: initializing argument 1 of ‘void llvm::Module::setTargetTriple(llvm::Triple)’ 324 | void setTargetTriple(Triple T) { TargetTriple = std::move(T); } | ~~~~~~~^ /builddir/build/BUILD/lfortran-0.56.0-build/lfortran-0.56.0/src/libasr/codegen/evaluator.cpp: In member function ‘void LCompilers::LLVMEvaluator::save_object_file(llvm::Module&, const std::string&)’: /builddir/build/BUILD/lfortran-0.56.0-build/lfortran-0.56.0/src/libasr/codegen/evaluator.cpp:382:23: error: cannot convert ‘std::string’ {aka ‘std::__cxx11::basic_string<char>’} to ‘llvm::Triple’ 382 | m.setTargetTriple(target_triple); | ^~~~~~~~~~~~~ | | | std::string {aka std::__cxx11::basic_string<char>} /usr/include/llvm/IR/Module.h:324:31: note: initializing argument 1 of ‘void llvm::Module::setTargetTriple(llvm::Triple)’ 324 | void setTargetTriple(Triple T) { TargetTriple = std::move(T); } | ~~~~~~~^ /builddir/build/BUILD/lfortran-0.56.0-build/lfortran-0.56.0/src/libasr/codegen/evaluator.cpp: In member function ‘void LCompilers::LLVMEvaluator::opt(llvm::Module&)’: /builddir/build/BUILD/lfortran-0.56.0-build/lfortran-0.56.0/src/libasr/codegen/evaluator.cpp:410:23: error: cannot convert ‘std::string’ {aka ‘std::__cxx11::basic_string<char>’} to ‘llvm::Triple’ 410 | m.setTargetTriple(target_triple); | ^~~~~~~~~~~~~ | | | std::string {aka std::__cxx11::basic_string<char>} /usr/include/llvm/IR/Module.h:324:31: note: initializing argument 1 of ‘void llvm::Module::setTargetTriple(llvm::Triple)’ 324 | void setTargetTriple(Triple T) { TargetTriple = std::move(T); } | ~~~~~~~^ gmake[2]: *** [src/libasr/CMakeFiles/asr.dir/build.make:964: src/libasr/CMakeFiles/asr.dir/codegen/evaluator.cpp.o] Error 1
FEDORA-2025-9d2475a293 (lfortran-0.56.0-2.fc44, xeus-5.2.4-1.fc44, and 1 more) has been submitted as an update to Fedora 44. https://bodhi.fedoraproject.org/updates/FEDORA-2025-9d2475a293
FEDORA-2025-9d2475a293 (lfortran-0.56.0-2.fc44, xeus-5.2.4-1.fc44, and 1 more) has been pushed to the Fedora 44 stable repository. If problem still persists, please make note of it in this bug report.
FEDORA-2025-61c842371f (lfortran-0.56.0-2.fc43, xeus-5.2.4-1.fc43, and 1 more) has been submitted as an update to Fedora 43. https://bodhi.fedoraproject.org/updates/FEDORA-2025-61c842371f
FEDORA-2025-61c842371f has been pushed to the Fedora 43 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2025-61c842371f` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2025-61c842371f See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.
FEDORA-2025-61c842371f (lfortran-0.56.0-2.fc43, xeus-5.2.4-1.fc43, and 1 more) has been pushed to the Fedora 43 stable repository. If problem still persists, please make note of it in this bug report.