]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Fix clang plugin with asan
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 28 May 2020 21:08:45 +0000 (22:08 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 28 May 2020 21:08:45 +0000 (22:08 +0100)
clang-plugin/CMakeLists.txt
cmake/Sanitizer.cmake

index dc5de47178752d5e4f8472ce7ae3817c6157e2e6..80fa54eed2cd46961edb78067f6ac05e4d502658 100644 (file)
@@ -1,7 +1,7 @@
 
 IF (ENABLE_CLANG_PLUGIN MATCHES "ON")
     # Clang plugin for static analysis
-    PROJECT(RspamdClangPlugin)
+    PROJECT(RspamdClangPlugin CXX)
     if (NOT "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang")
         MESSAGE(FATAL_ERROR "Cannot build clang plugin when compiler is not clang")
     endif ()
@@ -25,16 +25,16 @@ IF (ENABLE_CLANG_PLUGIN MATCHES "ON")
     SET(CLANGPLUGINSRC plugin.cc printf_check.cc)
 
     ADD_LIBRARY(rspamd-clang SHARED ${CLANGPLUGINSRC})
-    SET_TARGET_PROPERTIES(rspamd-clang PROPERTIES
-            COMPILE_FLAGS "-O2 -Wall -Wextra -Wno-unused-parameter -Werror"
-            LINKER_LANGUAGE CXX)
-    IF(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
-           set_property(TARGET rspamd-clang APPEND_STRING PROPERTY LINK_FLAGS " -Wl,--no-undefined -Wl,--as-needed")
+    IF (SANITIZE)
+        set (CMAKE_C_FLAGS "")
+        set (CMAKE_CXX_FLAGS "")
+        set (CMAKE_EXE_LINKER_FLAGS "")
     ENDIF()
 
+
     find_library(found_LLVM LLVM HINTS ${LLVM_LIBRARY_DIRS})
     if(found_LLVM)
-        target_link_libraries(rspamd-clang PRIVATE LLVM)
+        target_link_libraries(rspamd-clang PRIVATE ${LLVM})
     else()
         # XXX not tested yet
         llvm_map_components_to_libnames(llvm_libs support core)
index f955024e691f9ccdea703bc3c5b58a0ed0ea1921..4b4df9fae1eb0fd5627222d4ecd4386da87b1fed 100644 (file)
@@ -16,10 +16,10 @@ if (SANITIZE)
     if (SANITIZE STREQUAL "address")
         set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SAN_FLAGS} -fsanitize=address -fsanitize-address-use-after-scope")
         set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SAN_FLAGS} -fsanitize=address -fsanitize-address-use-after-scope")
+        set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address -fsanitize-address-use-after-scope")
         if (COMPILER_GCC)
             set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static-libasan")
             set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libasan")
-            set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address -fsanitize-address-use-after-scope")
             set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libasan")
         endif ()
 
@@ -28,21 +28,22 @@ if (SANITIZE)
 
         set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SAN_FLAGS} ${MSAN_FLAGS}")
         set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SAN_FLAGS} ${MSAN_FLAGS}")
+        set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=memory")
 
         if (COMPILER_GCC)
             set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static-libmsan")
             set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libmsan")
-            set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=memory")
             set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libmsan")
         endif ()
 
     elseif (SANITIZE STREQUAL "undefined")
         set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SAN_FLAGS} -fsanitize=undefined -fno-sanitize-recover=all")
         set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SAN_FLAGS} -fsanitize=undefined -fno-sanitize-recover=all")
+        set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=undefined")
+
         if (COMPILER_GCC)
             set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static-libubsan")
             set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libubsan")
-            set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=undefined")
             set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libubsan")
         endif ()