From e6a1e02a28425de8a9d9cd7ee66ebc6a8d66f48c Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Mon, 10 Feb 2025 15:54:09 -0500 Subject: [PATCH 1/2] 0_RootFS: Build LLVM with flang --- 0_RootFS/llvm_common.jl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/0_RootFS/llvm_common.jl b/0_RootFS/llvm_common.jl index b19dba38cfd..0dad9257826 100644 --- a/0_RootFS/llvm_common.jl +++ b/0_RootFS/llvm_common.jl @@ -135,7 +135,7 @@ function llvm_script(;version = v"8.0.1", llvm_build_type = "Release", kwargs... CMAKE_FLAGS+=(-DCMAKE_BUILD_TYPE=${LLVM_BUILD_TYPE}) # We want a lot of projects - CMAKE_FLAGS+=(-DLLVM_ENABLE_PROJECTS='clang;polly;lld') + CMAKE_FLAGS+=(-DLLVM_ENABLE_PROJECTS='clang;flang;lld;mlir;openmp;polly') # Build runtimes CMAKE_FLAGS+=(-DLLVM_ENABLE_RUNTIMES='compiler-rt;libcxx;libcxxabi;libunwind') @@ -144,7 +144,8 @@ function llvm_script(;version = v"8.0.1", llvm_build_type = "Release", kwargs... CMAKE_FLAGS+=(-DLLVM_BINDINGS_LIST=) # Turn off docs - CMAKE_FLAGS+=(-DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF) + # (We need examples to build flang.) + CMAKE_FLAGS+=(-DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=ON) # We want a shared library CMAKE_FLAGS+=(-DLLVM_BUILD_LLVM_DYLIB:BOOL=ON -DLLVM_LINK_LLVM_DYLIB:BOOL=ON) From e9ed882a186668b20f4713b3c7e111b07e7260e8 Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Tue, 11 Feb 2025 09:31:17 -0500 Subject: [PATCH 2/2] 0_RootFS: Build flang only for LLVM >= 18 --- 0_RootFS/llvm_common.jl | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/0_RootFS/llvm_common.jl b/0_RootFS/llvm_common.jl index 0dad9257826..7c7e716265c 100644 --- a/0_RootFS/llvm_common.jl +++ b/0_RootFS/llvm_common.jl @@ -135,7 +135,13 @@ function llvm_script(;version = v"8.0.1", llvm_build_type = "Release", kwargs... CMAKE_FLAGS+=(-DCMAKE_BUILD_TYPE=${LLVM_BUILD_TYPE}) # We want a lot of projects - CMAKE_FLAGS+=(-DLLVM_ENABLE_PROJECTS='clang;flang;lld;mlir;openmp;polly') + build_flang = version >= v"18" + if build_flang + # flang requires clang and mlir + CMAKE_FLAGS+=(-DLLVM_ENABLE_PROJECTS='clang;flang;lld;mlir;polly') + else + CMAKE_FLAGS+=(-DLLVM_ENABLE_PROJECTS='clang;lld;polly') + end # Build runtimes CMAKE_FLAGS+=(-DLLVM_ENABLE_RUNTIMES='compiler-rt;libcxx;libcxxabi;libunwind') @@ -144,8 +150,12 @@ function llvm_script(;version = v"8.0.1", llvm_build_type = "Release", kwargs... CMAKE_FLAGS+=(-DLLVM_BINDINGS_LIST=) # Turn off docs - # (We need examples to build flang.) - CMAKE_FLAGS+=(-DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=ON) + if build_flang + # (We need examples to build flang) + CMAKE_FLAGS+=(-DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=ON) + else + CMAKE_FLAGS+=(-DLLVM_INCLUDE_DOCS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF) + end # We want a shared library CMAKE_FLAGS+=(-DLLVM_BUILD_LLVM_DYLIB:BOOL=ON -DLLVM_LINK_LLVM_DYLIB:BOOL=ON)