[clang] [compiler-rt] Change compiler-rt lib search path for Hexagon-linux (PR #154530)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 20 06:12:39 PDT 2025
https://github.com/quic-k created https://github.com/llvm/llvm-project/pull/154530
None
>From 17f1f302073a97d5dfcf7f1df62dadc30f358ff7 Mon Sep 17 00:00:00 2001
From: Kushal Pal <kushpal at qti.qualcomm.com>
Date: Wed, 20 Aug 2025 17:03:06 +0530
Subject: [PATCH] Change compiler-rt lib search path
Signed-off-by: Kushal Pal <kushpal at qti.qualcomm.com>
---
clang/lib/Driver/ToolChains/Hexagon.cpp | 13 +++++++------
clang/test/Driver/hexagon-toolchain-linux.c | 10 +++++-----
.../cmake/caches/hexagon-linux-builtins.cmake | 2 +-
.../cmake/caches/hexagon-linux-clangrt.cmake | 3 +--
4 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/clang/lib/Driver/ToolChains/Hexagon.cpp b/clang/lib/Driver/ToolChains/Hexagon.cpp
index 9f8b676fc7dc2..b47d5e371f9c0 100644
--- a/clang/lib/Driver/ToolChains/Hexagon.cpp
+++ b/clang/lib/Driver/ToolChains/Hexagon.cpp
@@ -380,7 +380,8 @@ constructHexagonLinkArgs(Compilation &C, const JobAction &JA,
if (!Args.hasArg(options::OPT_nolibc))
CmdArgs.push_back("-lc");
- CmdArgs.push_back("-lclang_rt.builtins-hexagon");
+
+ CmdArgs.push_back("-lclang_rt.builtins");
}
if (D.CCCIsCXX()) {
if (HTC.ShouldLinkCXXStdlib(Args))
@@ -547,11 +548,8 @@ HexagonToolChain::getSmallDataThreshold(const ArgList &Args) {
}
std::string HexagonToolChain::getCompilerRTPath() const {
- SmallString<128> Dir(getDriver().SysRoot);
- llvm::sys::path::append(Dir, "usr", "lib");
- if (!SelectedMultilibs.empty()) {
- Dir += SelectedMultilibs.back().gccSuffix();
- }
+ SmallString<128> Dir(getDriver().ResourceDir);
+ llvm::sys::path::append(Dir, "lib", getDriver().getTargetTriple());
return std::string(Dir);
}
@@ -594,6 +592,9 @@ void HexagonToolChain::getHexagonLibraryPaths(const ArgList &Args,
LibPaths.push_back(LibDirCpu);
LibPaths.push_back(LibDir);
}
+ if (getTriple().isMusl()) {
+ LibPaths.push_back(getCompilerRTPath());
+ }
}
HexagonToolChain::HexagonToolChain(const Driver &D, const llvm::Triple &Triple,
diff --git a/clang/test/Driver/hexagon-toolchain-linux.c b/clang/test/Driver/hexagon-toolchain-linux.c
index e791353cca07f..c76cd4249f06f 100644
--- a/clang/test/Driver/hexagon-toolchain-linux.c
+++ b/clang/test/Driver/hexagon-toolchain-linux.c
@@ -11,7 +11,7 @@
// CHECK000-NOT: {{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crti.o
// CHECK000: "-dynamic-linker={{/|\\\\}}lib{{/|\\\\}}ld-musl-hexagon.so.1"
// CHECK000: "{{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crt1.o"
-// CHECK000: "-lc" "-lclang_rt.builtins-hexagon"
+// CHECK000: "-lc" "-lclang_rt.builtins"
// -----------------------------------------------------------------------------
// Passing --musl --shared
// -----------------------------------------------------------------------------
@@ -21,7 +21,7 @@
// RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree -shared %s 2>&1 | FileCheck -check-prefix=CHECK001 %s
// CHECK001-NOT: -dynamic-linker={{/|\\\\}}lib{{/|\\\\}}ld-musl-hexagon.so.1
// CHECK001: "{{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crti.o"
-// CHECK001: "-lc" "-lclang_rt.builtins-hexagon"
+// CHECK001: "-lc" "-lclang_rt.builtins"
// CHECK001-NOT: {{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crt1.o
// -----------------------------------------------------------------------------
// Passing --musl -nostdlib
@@ -34,7 +34,7 @@
// CHECK002-NOT: {{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crti.o
// CHECK002-NOT: {{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crt1.o
// CHECK002-NOT: "-lc"
-// CHECK002-NOT: "-lclang_rt.builtins-hexagon"
+// CHECK002-NOT: "-lclang_rt.builtins"
// -----------------------------------------------------------------------------
// Passing --musl -nostartfiles
// -----------------------------------------------------------------------------
@@ -45,7 +45,7 @@
// CHECK003: "-dynamic-linker={{/|\\\\}}lib{{/|\\\\}}ld-musl-hexagon.so.1"
// CHECK003-NOT: {{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}Scrt1.o
// CHECK003-NOT: {{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crt1.o
-// CHECK003: "-lc" "-lclang_rt.builtins-hexagon"
+// CHECK003: "-lc" "-lclang_rt.builtins"
// -----------------------------------------------------------------------------
// Passing --musl -nodefaultlibs
// -----------------------------------------------------------------------------
@@ -56,7 +56,7 @@
// CHECK004: "-dynamic-linker={{/|\\\\}}lib{{/|\\\\}}ld-musl-hexagon.so.1"
// CHECK004: "{{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crt1.o"
// CHECK004-NOT: "-lc"
-// CHECK004-NOT: "-lclang_rt.builtins-hexagon"
+// CHECK004-NOT: "-lclang_rt.builtins"
// -----------------------------------------------------------------------------
// Passing --musl -nolibc
// -----------------------------------------------------------------------------
diff --git a/compiler-rt/cmake/caches/hexagon-linux-builtins.cmake b/compiler-rt/cmake/caches/hexagon-linux-builtins.cmake
index d9c9ff2a4655e..96895da798089 100644
--- a/compiler-rt/cmake/caches/hexagon-linux-builtins.cmake
+++ b/compiler-rt/cmake/caches/hexagon-linux-builtins.cmake
@@ -1,6 +1,6 @@
set(CMAKE_ASM_FLAGS "-G0 -mlong-calls -fno-pic" CACHE STRING "")
-set(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR OFF CACHE BOOL "")
+set(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR ON CACHE BOOL "")
set(LLVM_TARGET_TRIPLE hexagon-unknown-linux-musl CACHE STRING "")
set(COMPILER_RT_DEFAULT_TARGET_TRIPLE hexagon-unknown-linux-musl CACHE STRING "")
set(COMPILER_RT_BUILD_BUILTINS ON CACHE BOOL "")
diff --git a/compiler-rt/cmake/caches/hexagon-linux-clangrt.cmake b/compiler-rt/cmake/caches/hexagon-linux-clangrt.cmake
index 4f1d67dcb38e0..2b1feaf874e63 100644
--- a/compiler-rt/cmake/caches/hexagon-linux-clangrt.cmake
+++ b/compiler-rt/cmake/caches/hexagon-linux-clangrt.cmake
@@ -1,5 +1,4 @@
-
-set(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR OFF CACHE BOOL "")
+set(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR ON CACHE BOOL "")
set(LLVM_DEFAULT_TARGET_TRIPLE hexagon-unknown-linux-musl CACHE STRING "")
set(COMPILER_RT_USE_LLVM_UNWINDER ON CACHE BOOL "")
More information about the llvm-commits
mailing list