Skip to content

Commit 27fc984

Browse files
morrisonleviclaude
andcommitted
fix(appsec): find fuzzer runtime lib in Debian's linux/ layout
Newer clang versions return a per-target path from -print-runtime-dir (e.g. .../lib/x86_64-pc-linux-gnu) but Debian/Ubuntu packages install compiler-rt runtime libs in a sibling "linux/" directory. Add that as a fallback search path for both find_library and target_link_directories. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent edb04ad commit 27fc984

1 file changed

Lines changed: 7 additions & 3 deletions

File tree

appsec/tests/fuzzer/CMakeLists.txt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,24 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSIO
1919
OUTPUT_VARIABLE LLVM_RUNTIME_DIR
2020
OUTPUT_STRIP_TRAILING_WHITESPACE
2121
)
22+
# Newer clang versions return a per-target path (e.g. .../lib/x86_64-pc-linux-gnu) but
23+
# Debian/Ubuntu packages install runtime libs in the sibling "linux" directory.
24+
get_filename_component(LLVM_RUNTIME_PARENT "${LLVM_RUNTIME_DIR}" DIRECTORY)
25+
set(LLVM_RUNTIME_LINUX_DIR "${LLVM_RUNTIME_PARENT}/linux")
2226

2327
execute_process(COMMAND uname -m COMMAND tr -d '\n' OUTPUT_VARIABLE ARCHITECTURE)
2428
target_compile_definitions(ddappsec_helper_fuzzer PUBLIC ZLIB_CONST=1)
25-
target_link_directories(ddappsec_helper_fuzzer PRIVATE ${LLVM_RUNTIME_DIR})
29+
target_link_directories(ddappsec_helper_fuzzer PRIVATE ${LLVM_RUNTIME_DIR} ${LLVM_RUNTIME_LINUX_DIR})
2630
target_link_libraries(ddappsec_helper_fuzzer PRIVATE
2731
libddwaf_objects pthread spdlog cpp-base64 msgpack_c rapidjson_appsec
2832
boost_system zlibstatic)
2933

3034
set(FUZZER_LIB_NAME "libclang_rt.fuzzer_no_main-${ARCHITECTURE}.a")
31-
find_library(FUZZER_LIB ${FUZZER_LIB_NAME} PATHS ${LLVM_RUNTIME_DIR})
35+
find_library(FUZZER_LIB ${FUZZER_LIB_NAME} PATHS ${LLVM_RUNTIME_DIR} ${LLVM_RUNTIME_LINUX_DIR})
3236

3337
if(NOT FUZZER_LIB)
3438
set(FUZZER_LIB_NAME_FALLBACK "libclang_rt.fuzzer_no_main.a")
35-
find_library(FUZZER_LIB ${FUZZER_LIB_NAME_FALLBACK} PATHS ${LLVM_RUNTIME_DIR})
39+
find_library(FUZZER_LIB ${FUZZER_LIB_NAME_FALLBACK} PATHS ${LLVM_RUNTIME_DIR} ${LLVM_RUNTIME_LINUX_DIR})
3640
endif()
3741

3842
if(NOT FUZZER_LIB)

0 commit comments

Comments
 (0)