Author: Dimitry Andric Date: 2021-08-09T23:30:45-07:00 New Revision: 06b8fb7974310f88e0fdf52b4a1db0c062075a0d
URL: https://github.com/llvm/llvm-project/commit/06b8fb7974310f88e0fdf52b4a1db0c062075a0d DIFF: https://github.com/llvm/llvm-project/commit/06b8fb7974310f88e0fdf52b4a1db0c062075a0d.diff LOG: sanitizer_common: disable thread safety annotations for googletest Recently in 0da172b1766e thread safety warnings-as-errors were enabled. However, googletest is currently not compatible with thread safety annotations. On FreeBSD, which has the pthread functions marked with such annotations, this results in errors when building the compiler-rt tests: In file included from compiler-rt/lib/interception/tests/interception_test_main.cpp:15: In file included from llvm/utils/unittest/googletest/include/gtest/gtest.h:62: In file included from llvm/utils/unittest/googletest/include/gtest/internal/gtest-internal.h:40: llvm/utils/unittest/googletest/include/gtest/internal/gtest-port.h:1636:3: error: mutex 'mutex_' is still held at the end of function [-Werror,-Wthread-safety-analysis] } ^ llvm/utils/unittest/googletest/include/gtest/internal/gtest-port.h:1633:32: note: mutex acquired here GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_lock(&mutex_)); ^ llvm/utils/unittest/googletest/include/gtest/internal/gtest-port.h:1645:32: error: releasing mutex 'mutex_' that was not held [-Werror,-Wthread-safety-analysis] GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_unlock(&mutex_)); ^ 2 errors generated. At some point googletest will hopefully be made compatible with thread safety annotations, but for now add corresponding `-Wno-thread-*` flags to `COMPILER_RT_GTEST_CFLAGS` to silence these warnings-as-errors. Reviewed By: dvyukov Differential Revision: https://reviews.llvm.org/D107491 (cherry picked from commit b260f3fdda63bbddb7834c42cfeeb2b0a8b86a23) Added: Modified: compiler-rt/CMakeLists.txt Removed: ################################################################################ diff --git a/compiler-rt/CMakeLists.txt b/compiler-rt/CMakeLists.txt index 84429052af5e4..e12d1eb1cebf6 100644 --- a/compiler-rt/CMakeLists.txt +++ b/compiler-rt/CMakeLists.txt @@ -537,6 +537,14 @@ set(COMPILER_RT_GTEST_CFLAGS -I${COMPILER_RT_GTEST_PATH}/include -I${COMPILER_RT_GTEST_PATH} ) +if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") + # FreeBSD has its pthread functions marked with thread safety annotations, but + # googletest is not compatible with such annotations. Disable the thread + # safety warnings-as-errors until googletest has been fixed. + list(APPEND NO_THREAD_SAFETY_FLAGS ${THREAD_SAFETY_FLAGS}) + list(TRANSFORM NO_THREAD_SAFETY_FLAGS REPLACE "error=" "no-") + list(APPEND COMPILER_RT_GTEST_CFLAGS ${NO_THREAD_SAFETY_FLAGS}) +endif() # Mocking support. set(COMPILER_RT_GMOCK_PATH ${LLVM_MAIN_SRC_DIR}/utils/unittest/googlemock) _______________________________________________ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
