[llvm-branch-commits] [compiler-rt] ccbab59 - [compiler-rt] Fix scudo build on ARM
Leandro Lupori via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Thu Apr 27 05:02:35 PDT 2023
Author: Leandro Lupori
Date: 2023-04-27T11:10:43Z
New Revision: ccbab5979b7bd594314b50f4fc54ec57a676f391
URL: https://github.com/llvm/llvm-project/commit/ccbab5979b7bd594314b50f4fc54ec57a676f391
DIFF: https://github.com/llvm/llvm-project/commit/ccbab5979b7bd594314b50f4fc54ec57a676f391.diff
LOG: [compiler-rt] Fix scudo build on ARM
The build of scudo was failing on armv7l, with undefined references
to unwinder symbols, such as __aeabi_unwind_cpp_pr0. These are
needed by RTGwpAsan and thus, on ARM, scudo must also be linked
against an unwind library.
The cmake command that caused the build failure was:
cmake --fresh -S "$PWD/llvm/" -B "$PWD/build/" -G Ninja \
-DCMAKE_INSTALL_PREFIX="$PWD/install" \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_ENABLE_PROJECTS="clang;lld;lldb;clang-tools-extra;polly" \
-DLLVM_ENABLE_RUNTIMES="compiler-rt;libcxx;libcxxabi;libunwind" \
-DLLVM_TOOLCHAIN_TOOLS="llvm-ar;llvm-ranlib;llvm-objdump;\
llvm-rc;llvm-cvtres;llvm-nm;llvm-strings;llvm-readobj;\
llvm-dlltool;llvm-pdbutil;llvm-objcopy;llvm-strip;llvm-cov;\
llvm-profdata;llvm-addr2line;llvm-symbolizer;llvm-windres;llvm-ml;\
llvm-readelf;llvm-size" \
-DLLVM_INSTALL_BINUTILS_SYMLINKS=OFF -DLLVM_PARALLEL_LINK_JOBS=1
Fixes #60115
Reviewed By: hctim
Differential Revision: https://reviews.llvm.org/D142888
(cherry picked from commit e1e972689b9138db795885a5468a15aafbe7cb51)
Added:
Modified:
compiler-rt/lib/scudo/standalone/CMakeLists.txt
Removed:
################################################################################
diff --git a/compiler-rt/lib/scudo/standalone/CMakeLists.txt b/compiler-rt/lib/scudo/standalone/CMakeLists.txt
index 9ac3340877da1..d75b7fd235230 100644
--- a/compiler-rt/lib/scudo/standalone/CMakeLists.txt
+++ b/compiler-rt/lib/scudo/standalone/CMakeLists.txt
@@ -129,8 +129,19 @@ set(SCUDO_SOURCES_CXX_WRAPPERS
)
set(SCUDO_OBJECT_LIBS)
+set(SCUDO_LINK_LIBS)
if (COMPILER_RT_HAS_GWP_ASAN)
+ if(COMPILER_RT_USE_LLVM_UNWINDER)
+ list(APPEND SCUDO_LINK_LIBS ${COMPILER_RT_UNWINDER_LINK_LIBS} dl)
+ elseif (COMPILER_RT_HAS_GCC_S_LIB)
+ list(APPEND SCUDO_LINK_LIBS gcc_s)
+ elseif (COMPILER_RT_HAS_GCC_LIB)
+ list(APPEND SCUDO_LINK_LIBS gcc)
+ elseif (NOT COMPILER_RT_USE_BUILTINS_LIBRARY)
+ message(FATAL_ERROR "No suitable unwinder library")
+ endif()
+
add_dependencies(scudo_standalone gwp_asan)
list(APPEND SCUDO_OBJECT_LIBS
RTGwpAsan RTGwpAsanBacktraceLibc RTGwpAsanSegvHandler
@@ -143,8 +154,6 @@ if (COMPILER_RT_HAS_GWP_ASAN)
endif()
-set(SCUDO_LINK_LIBS ${COMPILER_RT_UNWINDER_LINK_LIBS})
-
if(COMPILER_RT_BUILD_SCUDO_STANDALONE_WITH_LLVM_LIBC)
include_directories(${COMPILER_RT_BINARY_DIR}/../libc/include/)
More information about the llvm-branch-commits
mailing list