From f5f04d17f83e96c2ecac07d393ae7dea2c374b32 Mon Sep 17 00:00:00 2001 From: Sergey Bronnikov <sergeyb@tarantool.org> Date: Fri, 31 Mar 2023 21:04:09 +0300 Subject: [PATCH] build: introduce an option for fuzzing-friendly mode Patch introduce a macro FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION. It is a common build macro recommended in libFuzzer's documentation [1]. 1. https://llvm.org/docs/LibFuzzer.html#fuzzer-friendly-build-mode Needed for #4826 NO_CHANGELOG=build NO_DOC=build NO_TEST=build --- CMakeLists.txt | 1 + cmake/profile.cmake | 1 + src/trivia/config.h.cmake | 4 ++++ 3 files changed, 6 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 70c25b05bc..442f22cc49 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -778,6 +778,7 @@ set(options PACKAGE VERSION BUILD C_COMPILER CXX_COMPILER C_FLAGS CXX_FLAGS ENABLE_GCOV ENABLE_GPROF ENABLE_VALGRIND ENABLE_ASAN ENABLE_UB_SANITIZER ENABLE_FUZZER ENABLE_BACKTRACE ABORT_ON_LEAK + FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION ENABLE_HARDENING ENABLE_DOC ENABLE_DIST diff --git a/cmake/profile.cmake b/cmake/profile.cmake index 16492efb16..92d3d39e5c 100644 --- a/cmake/profile.cmake +++ b/cmake/profile.cmake @@ -51,6 +51,7 @@ endif() option(OSS_FUZZ "Set this option to use flags by oss-fuzz" OFF) option(ENABLE_FUZZER "Enable fuzzing testing" OFF) +option(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION "Enable fuzzing-friendly mode" ${ENABLE_FUZZER}) if(ENABLE_FUZZER) if (CMAKE_COMPILER_IS_GNUCC) message(FATAL_ERROR diff --git a/src/trivia/config.h.cmake b/src/trivia/config.h.cmake index 807cefcb4c..c7865c7329 100644 --- a/src/trivia/config.h.cmake +++ b/src/trivia/config.h.cmake @@ -79,6 +79,10 @@ * Defined if configured with JIT engine turned on. */ #cmakedefine LUAJIT_JIT_STATUS 1 +/* + * Defined if configured with FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION. + */ +#cmakedefine FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION 1 /* * Set if the system has bfd.h header and GNU bfd library. -- GitLab