[Bf-blender-cvs] [ec57ff28005] master: Fix building with asan option and OSL.

Bastien Montagne noreply at git.blender.org
Tue Apr 23 21:00:55 CEST 2019


Commit: ec57ff28005469c5985037e3bf9122762d354d2b
Author: Bastien Montagne
Date:   Tue Apr 23 20:59:10 2019 +0200
Branches: master
https://developer.blender.org/rBec57ff28005469c5985037e3bf9122762d354d2b

Fix building with asan option and OSL.

When OSL is enabled, Cycles disables RTTI in some of its modules, which
then breaks vptr sanitizer (part of the 'undefined' sanitizer).

thanks to @brecht for helping tracking down the issue.

===================================================================

M	CMakeLists.txt

===================================================================

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 052222b36b4..1cb20142281 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -811,6 +811,12 @@ if (NOT CMAKE_BUILD_TYPE MATCHES "Release")
 
     set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${COMPILER_ASAN_CXXFLAGS}")
     set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${COMPILER_ASAN_CXXFLAGS}")
+    if(WITH_CYCLES_OSL)
+      # With OSL, Cycles disables rtti in some modules, wich then breaks at linking
+      # when trying to use vptr sanitizer (included into 'undefined' general option).
+      set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fno-sanitize=vptr")
+      set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -fno-sanitize=vptr")
+    endif()
     if(MSVC)
       set(COMPILER_ASAN_LINKER_FLAGS "/FUNCTIONPADMIN:6")
     endif()



More information about the Bf-blender-cvs mailing list