rocm llvm-amdgpu package - Build libcxx and libcxxabi thru LLVM_ENABLE_RUNTIMES flag. (#33610)
* changes to enable LLVM_ENABLE_RUNTIMES for libcxx and libcxxabi * remove version update for 5.3.0 as it is done thru PR #33320 to enable ci and reviews
This commit is contained in:
parent
358cc5ed1a
commit
7740b37923
1 changed files with 19 additions and 10 deletions
|
@ -17,6 +17,7 @@ class LlvmAmdgpu(CMakePackage):
|
||||||
git = "https://github.com/RadeonOpenCompute/llvm-project.git"
|
git = "https://github.com/RadeonOpenCompute/llvm-project.git"
|
||||||
url = "https://github.com/RadeonOpenCompute/llvm-project/archive/rocm-5.4.0.tar.gz"
|
url = "https://github.com/RadeonOpenCompute/llvm-project/archive/rocm-5.4.0.tar.gz"
|
||||||
tags = ["rocm"]
|
tags = ["rocm"]
|
||||||
|
generator = "Ninja"
|
||||||
|
|
||||||
maintainers("srekolam", "renjithravindrankannath", "haampie")
|
maintainers("srekolam", "renjithravindrankannath", "haampie")
|
||||||
|
|
||||||
|
@ -140,6 +141,8 @@ class LlvmAmdgpu(CMakePackage):
|
||||||
depends_on("z3", type="link")
|
depends_on("z3", type="link")
|
||||||
depends_on("zlib", type="link")
|
depends_on("zlib", type="link")
|
||||||
depends_on("ncurses+termlib", type="link")
|
depends_on("ncurses+termlib", type="link")
|
||||||
|
depends_on("ninja", type="build")
|
||||||
|
depends_on("pkgconfig", type="build")
|
||||||
|
|
||||||
# openmp dependencies
|
# openmp dependencies
|
||||||
depends_on("perl-data-dumper", type=("build"), when="+openmp")
|
depends_on("perl-data-dumper", type=("build"), when="+openmp")
|
||||||
|
@ -210,24 +213,30 @@ class LlvmAmdgpu(CMakePackage):
|
||||||
|
|
||||||
def cmake_args(self):
|
def cmake_args(self):
|
||||||
llvm_projects = ["clang", "lld", "clang-tools-extra", "compiler-rt"]
|
llvm_projects = ["clang", "lld", "clang-tools-extra", "compiler-rt"]
|
||||||
|
llvm_runtimes = []
|
||||||
args = []
|
args = []
|
||||||
if self.spec.satisfies("@4.3.0:"):
|
if self.spec.satisfies("@4.3.0:"):
|
||||||
args = [
|
args = [
|
||||||
self.define("LLVM_ENABLE_Z3_SOLVER", "OFF"),
|
self.define("LLVM_ENABLE_Z3_SOLVER", "OFF"),
|
||||||
self.define("LLLVM_ENABLE_ZLIB", "ON"),
|
self.define("LLLVM_ENABLE_ZLIB", "ON"),
|
||||||
self.define("CLANG_DEFAULT_LINKER", "lld"),
|
self.define("CLANG_DEFAULT_LINKER", "lld"),
|
||||||
|
self.define("LIBCXX_ENABLE_SHARED", "OFF"),
|
||||||
|
self.define("LIBCXX_ENABLE_STATIC", "ON"),
|
||||||
|
self.define("LIBCXX_INSTALL_LIBRARY", "OFF"),
|
||||||
|
self.define("LIBCXX_INSTALL_HEADERS", "OFF"),
|
||||||
|
self.define("LIBCXXABI_ENABLE_SHARED", "OFF"),
|
||||||
|
self.define("LIBCXXABI_ENABLE_STATIC", "ON"),
|
||||||
|
self.define("LIBCXXABI_INSTALL_STATIC_LIBRARY", "OFF"),
|
||||||
]
|
]
|
||||||
if self.spec.satisfies("@4.3.0:4.5.2"):
|
if self.spec.satisfies("@4.3.0:4.5.2"):
|
||||||
llvm_projects.append("libcxx")
|
llvm_projects.append("libcxx")
|
||||||
llvm_projects.append("libcxxabi")
|
llvm_projects.append("libcxxabi")
|
||||||
args.append(self.define("LIBCXX_ENABLE_SHARED", "OFF"))
|
if self.spec.satisfies("@5.0.0:"):
|
||||||
args.append(self.define("LIBCXX_ENABLE_STATIC", "ON"))
|
llvm_runtimes.append("libcxx")
|
||||||
args.append(self.define("LIBCXX_INSTALL_LIBRARY", "OFF"))
|
llvm_runtimes.append("libcxxabi")
|
||||||
args.append(self.define("LIBCXX_INSTALL_HEADERS", "OFF"))
|
args.append(self.define("LLVM_TARGETS_TO_BUILD", "AMDGPU;X86"))
|
||||||
args.append(self.define("LIBCXXABI_ENABLE_SHARED", "OFF"))
|
args.append(self.define("LLVM_AMDGPU_ALLOW_NPI_TARGETS", "ON"))
|
||||||
args.append(self.define("LIBCXXABI_ENABLE_STATIC", "ON"))
|
args.extend([self.define("LLVM_ENABLE_RUNTIMES", ";".join(llvm_runtimes))])
|
||||||
args.append(self.define("LIBCXXABI_INSTALL_STATIC_LIBRARY", "OFF"))
|
|
||||||
|
|
||||||
if "+openmp" in self.spec:
|
if "+openmp" in self.spec:
|
||||||
llvm_projects.append("openmp")
|
llvm_projects.append("openmp")
|
||||||
|
|
||||||
|
@ -256,7 +265,7 @@ def cmake_args(self):
|
||||||
|
|
||||||
if "+link_llvm_dylib" in self.spec:
|
if "+link_llvm_dylib" in self.spec:
|
||||||
args.append("-DLLVM_LINK_LLVM_DYLIB:Bool=ON")
|
args.append("-DLLVM_LINK_LLVM_DYLIB:Bool=ON")
|
||||||
args.append("-DDCLANG_LINK_CLANG_DYLIB:Bool=ON")
|
args.append("-DCLANG_LINK_CLANG_DYLIB:Bool=ON")
|
||||||
|
|
||||||
# Get the GCC prefix for LLVM.
|
# Get the GCC prefix for LLVM.
|
||||||
if self.compiler.name == "gcc":
|
if self.compiler.name == "gcc":
|
||||||
|
@ -268,7 +277,7 @@ def cmake_args(self):
|
||||||
def post_install(self):
|
def post_install(self):
|
||||||
# TODO:Enabling LLVM_ENABLE_RUNTIMES for libcxx,libcxxabi did not build.
|
# TODO:Enabling LLVM_ENABLE_RUNTIMES for libcxx,libcxxabi did not build.
|
||||||
# bootstraping the libcxx with the just built clang
|
# bootstraping the libcxx with the just built clang
|
||||||
if self.spec.satisfies("@4.5.0:5.2"):
|
if self.spec.satisfies("@4.5.0:4.5.2"):
|
||||||
spec = self.spec
|
spec = self.spec
|
||||||
define = self.define
|
define = self.define
|
||||||
libcxxdir = "build-bootstrapped-libcxx"
|
libcxxdir = "build-bootstrapped-libcxx"
|
||||||
|
|
Loading…
Reference in a new issue