From 97bd023b1a6ee5ff7907b67777ae404f9baa9847 Mon Sep 17 00:00:00 2001 From: Tee KOBAYASHI Date: Wed, 19 Apr 2023 21:55:59 +0900 Subject: [PATCH] lfortran: Fix build against LLVM 16 --- packages/lfortran/build.sh | 2 +- packages/lfortran/llvm16.patch | 59 ++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 packages/lfortran/llvm16.patch diff --git a/packages/lfortran/build.sh b/packages/lfortran/build.sh index 448e40ac24..4432aa5b94 100644 --- a/packages/lfortran/build.sh +++ b/packages/lfortran/build.sh @@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="A modern open-source interactive Fortran compiler" TERMUX_PKG_LICENSE="BSD 3-Clause" TERMUX_PKG_MAINTAINER="@termux" TERMUX_PKG_VERSION=0.18.0 -TERMUX_PKG_REVISION=1 +TERMUX_PKG_REVISION=2 TERMUX_PKG_SRCURL=git+https://github.com/lfortran/lfortran TERMUX_PKG_DEPENDS="clang, libandroid-complex-math, libc++, ncurses, zlib, zstd" TERMUX_PKG_BUILD_DEPENDS="libllvm-static" diff --git a/packages/lfortran/llvm16.patch b/packages/lfortran/llvm16.patch new file mode 100644 index 0000000000..5a36fde9ea --- /dev/null +++ b/packages/lfortran/llvm16.patch @@ -0,0 +1,59 @@ +--- a/src/libasr/codegen/KaleidoscopeJIT.h ++++ b/src/libasr/codegen/KaleidoscopeJIT.h +@@ -25,6 +25,7 @@ + #include "llvm/IR/DataLayout.h" + #include "llvm/IR/LLVMContext.h" + #include ++#include + + namespace llvm { + namespace orc { +@@ -71,7 +72,7 @@ + auto CPU = "generic"; + auto Features = ""; + TargetOptions opt; +- auto RM = Optional(); ++ auto RM = std::optional(); + TM = Target->createTargetMachine(TargetTriple, CPU, Features, opt, RM); + } + +--- a/src/libasr/codegen/asr_to_llvm.cpp ++++ b/src/libasr/codegen/asr_to_llvm.cpp +@@ -276,7 +276,7 @@ + // to our new block + builder->CreateBr(bb); + } +- fn->getBasicBlockList().push_back(bb); ++ fn->insert(fn->end(), bb); + builder->SetInsertPoint(bb); + } + +--- a/src/libasr/codegen/evaluator.cpp ++++ b/src/libasr/codegen/evaluator.cpp +@@ -1,5 +1,6 @@ + #include + #include ++#include + + #include + #include +@@ -178,7 +179,7 @@ + std::string CPU = "generic"; + std::string features = ""; + llvm::TargetOptions opt; +- llvm::Optional RM = llvm::Reloc::Model::PIC_; ++ std::optional RM = llvm::Reloc::Model::PIC_; + TM = target->createTargetMachine(target_triple, CPU, features, opt, RM); + + // For some reason the JIT requires a different TargetMachine +--- a/src/libasr/codegen/llvm_utils.cpp ++++ b/src/libasr/codegen/llvm_utils.cpp +@@ -189,7 +189,7 @@ + // to our new block + builder->CreateBr(bb); + } +- fn->getBasicBlockList().push_back(bb); ++ fn->insert(fn->end(), bb); + builder->SetInsertPoint(bb); + } +