Index: llvm-toolchain-19_19.1.2~++20241011093632+6c1fd539e43e/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp =================================================================== --- llvm-toolchain-19_19.1.2~++20241011093632+6c1fd539e43e.orig/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp +++ llvm-toolchain-19_19.1.2~++20241011093632+6c1fd539e43e/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp @@ -34,6 +34,11 @@ # include "sanitizer_symbolizer_libbacktrace.h" # include "sanitizer_symbolizer_mac.h" +#include "llvm/Config/llvm-config.h" // for LLVM_VERSION_MAJOR + +#define TOSTR2(X) #X +#define TOSTR(X) TOSTR2(X) + // C++ demangling function, as required by Itanium C++ ABI. This is weak, // because we do not require a C++ ABI library to be linked to a program // using sanitizers; if it's not present, we'll just use the mangled name. @@ -450,7 +455,7 @@ static SymbolizerTool *ChooseExternalSym return new(*allocator) AtosSymbolizer(found_path, allocator); } #endif // SANITIZER_APPLE - if (const char *found_path = FindPathToBinary("llvm-symbolizer")) { + if (const char *found_path = "/usr/bin/llvm-symbolizer-" TOSTR(LLVM_VERSION_MAJOR)) { VReport(2, "Using llvm-symbolizer found at: %s\n", found_path); return new(*allocator) LLVMSymbolizer(found_path, allocator); } Index: llvm-toolchain-19_19.1.2~++20241011093632+6c1fd539e43e/compiler-rt/lib/sanitizer_common/CMakeLists.txt =================================================================== --- llvm-toolchain-19_19.1.2~++20241011093632+6c1fd539e43e.orig/compiler-rt/lib/sanitizer_common/CMakeLists.txt +++ llvm-toolchain-19_19.1.2~++20241011093632+6c1fd539e43e/compiler-rt/lib/sanitizer_common/CMakeLists.txt @@ -211,6 +211,7 @@ set(SANITIZER_IMPL_HEADERS ) include_directories(..) +include_directories(${LLVM_INCLUDE_DIR}) set(SANITIZER_COMMON_DEFINITIONS HAVE_RPC_XDR_H=${HAVE_RPC_XDR_H})