Bug 2397183 - lfortran: FTBFS in Fedora Rawhide/F44
Summary: lfortran: FTBFS in Fedora Rawhide/F44
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: lfortran
Version: rawhide
Hardware: Unspecified
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Benson Muite
QA Contact:
URL: https://koschei.fedoraproject.org/pac...
Whiteboard:
Depends On:
Blocks: 2349512
TreeView+ depends on / blocked
 
Reported: 2025-09-21 19:55 UTC by Elliott Sales de Andrade
Modified: 2025-10-02 01:20 UTC (History)
3 users (show)

Fixed In Version: lfortran-0.56.0-2.fc43
Clone Of:
Environment:
Last Closed: 2025-10-02 01:20:19 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github lfortran lfortran issues 8557 0 None open Support LLVM 21 2025-09-21 21:52:15 UTC

Description Elliott Sales de Andrade 2025-09-21 19:55:38 UTC
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

Comment 1 Elliott Sales de Andrade 2025-09-21 20:28:23 UTC
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

Comment 2 Fedora Update System 2025-09-23 19:43:54 UTC
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

Comment 3 Fedora Update System 2025-09-23 19:47:21 UTC
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.

Comment 4 Fedora Update System 2025-09-23 22:37:19 UTC
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

Comment 5 Fedora Update System 2025-09-24 15:53:23 UTC
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.

Comment 6 Fedora Update System 2025-10-02 01:20:19 UTC
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.


Note You need to log in before you can comment on or make changes to this bug.