diff --git a/CMakeLists.txt b/CMakeLists.txt
index 70c25b05bcd8c6b87c56c915817c9fe0ba728242..442f22cc49ede4d452fb6642e17ce44ef8bf1343 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 16492efb160ff9a737670ba3f5aa5f6ddc30d3fd..92d3d39e5cf0e944cbcda5a81af2b94ff616712c 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 807cefcb4ce1954a38343e9fa442aabf948eb39d..c7865c7329c07a7a4fc48c3b517b3d24b0529e38 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.