Index: compiler-rt/trunk/cmake/config-ix.cmake =================================================================== --- compiler-rt/trunk/cmake/config-ix.cmake +++ compiler-rt/trunk/cmake/config-ix.cmake @@ -687,8 +687,10 @@ # Note: Fuchsia and Windows are not currently supported by GWP-ASan. Support # is planned for these platforms. Darwin is also not supported due to TLS # calling malloc on first use. +# TODO(hctim): Enable this on Android again. Looks like it's causing a SIGSEGV +# for Scudo and GWP-ASan, further testing needed. if (COMPILER_RT_HAS_SANITIZER_COMMON AND GWP_ASAN_SUPPORTED_ARCH AND - OS_NAME MATCHES "Android|Linux") + OS_NAME MATCHES "Linux") set(COMPILER_RT_HAS_GWP_ASAN TRUE) else() set(COMPILER_RT_HAS_GWP_ASAN FALSE) Index: compiler-rt/trunk/lib/gwp_asan/CMakeLists.txt =================================================================== --- compiler-rt/trunk/lib/gwp_asan/CMakeLists.txt +++ compiler-rt/trunk/lib/gwp_asan/CMakeLists.txt @@ -21,7 +21,8 @@ # Ensure that GWP-ASan meets the delegated requirements of some supporting # allocators. Some supporting allocators (e.g. scudo standalone) cannot use any # parts of the C++ standard library. -set(GWP_ASAN_CFLAGS -fno-rtti -fno-exceptions -fPIC -nostdinc++ -pthread) +set(GWP_ASAN_CFLAGS -fno-rtti -fno-exceptions -nostdinc++ -pthread) +append_list_if(COMPILER_RT_HAS_FPIC_FLAG -fPIC GWP_ASAN_CFLAGS) # Remove -stdlib= which is unused when passing -nostdinc++. string(REGEX REPLACE "-stdlib=[a-zA-Z+]*" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})