Title: [228134] trunk
- Revision
- 228134
- Author
- mcatanz...@igalia.com
- Date
- 2018-02-05 15:23:28 -0800 (Mon, 05 Feb 2018)
Log Message
[CMake] Add ENABLE_ADDRESS_SANITIZER to make it easier to build with asan support
https://bugs.webkit.org/show_bug.cgi?id=182400
Reviewed by Konstantin Tokarev.
* Source/cmake/OptionsGTK.cmake:
* Source/cmake/WebKitCompilerFlags.cmake:
Modified Paths
Diff
Modified: trunk/ChangeLog (228133 => 228134)
--- trunk/ChangeLog 2018-02-05 23:10:58 UTC (rev 228133)
+++ trunk/ChangeLog 2018-02-05 23:23:28 UTC (rev 228134)
@@ -1,3 +1,13 @@
+2018-02-05 Michael Catanzaro <mcatanz...@igalia.com>
+
+ [CMake] Add ENABLE_ADDRESS_SANITIZER to make it easier to build with asan support
+ https://bugs.webkit.org/show_bug.cgi?id=182400
+
+ Reviewed by Konstantin Tokarev.
+
+ * Source/cmake/OptionsGTK.cmake:
+ * Source/cmake/WebKitCompilerFlags.cmake:
+
2018-01-31 Michael Catanzaro <mcatanz...@igalia.com>
Update ReadMe.md
Modified: trunk/Source/cmake/OptionsGTK.cmake (228133 => 228134)
--- trunk/Source/cmake/OptionsGTK.cmake 2018-02-05 23:10:58 UTC (rev 228133)
+++ trunk/Source/cmake/OptionsGTK.cmake 2018-02-05 23:23:28 UTC (rev 228134)
@@ -355,6 +355,11 @@
endif ()
endif ()
+# https://bugs.webkit.org/show_bug.cgi?id=182247
+if (ENABLED_COMPILER_SANITIZERS)
+ set(ENABLE_INTROSPECTION OFF)
+endif ()
+
# Override the cached variables, gtk-doc and gobject-introspection do not really work when cross-building.
if (CMAKE_CROSSCOMPILING)
set(ENABLE_GTKDOC OFF)
Modified: trunk/Source/cmake/WebKitCompilerFlags.cmake (228133 => 228134)
--- trunk/Source/cmake/WebKitCompilerFlags.cmake 2018-02-05 23:10:58 UTC (rev 228133)
+++ trunk/Source/cmake/WebKitCompilerFlags.cmake 2018-02-05 23:23:28 UTC (rev 228134)
@@ -155,6 +155,21 @@
set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "-Wl,--no-keep-memory ${CMAKE_SHARED_LINKER_FLAGS_DEBUG}")
endif ()
+if (COMPILER_IS_GCC_OR_CLANG)
+ # Careful: this needs to be above where ENABLED_COMPILER_SANITIZERS is set.
+ # Also, it's not possible to use the normal prepend/append macros for
+ # -fsanitize=address, because check_cxx_compiler_flag will report it's
+ # unsupported, because it causes the build to fail if not used when linking.
+ option(ENABLE_ADDRESS_SANITIZER "Enable address sanitizer" OFF)
+ if (ENABLE_ADDRESS_SANITIZER)
+ WEBKIT_PREPEND_GLOBAL_COMPILER_FLAGS(-fno-omit-frame-pointer
+ -fno-optimize-sibling-calls)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address")
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_THREAD_LIBS_INIT} ${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_THREAD_LIBS_INIT} ${CMAKE_SHARED_LINKER_FLAGS} -fsanitize=address")
+ endif ()
+endif ()
if (NOT MSVC)
string(REGEX MATCHALL "-fsanitize=[^ ]*" ENABLED_COMPILER_SANITIZERS ${CMAKE_CXX_FLAGS})
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes