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 <kush...@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 <kush...@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 "") _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits