Disable external initialization of `thread_local` variables (#7004)
authorAndres Noetzli <andres.noetzli@gmail.com>
Tue, 10 Aug 2021 20:04:21 +0000 (13:04 -0700)
committerGitHub <noreply@github.com>
Tue, 10 Aug 2021 20:04:21 +0000 (13:04 -0700)
This commit adds `-fno-extern-tls-init` to the list of compiler flags to
tell the compiler that it can assume that there is no dynamic
initialization of thread-local variables in non-defining translation
units. This option should result in better performance and works around
crashing issues with our Windows build.

CMakeLists.txt

index bb8e305b2cd9dbbb3204d18c7d555ad3d773adc3..e9484986bc29d6ae1014a28e0ae9b2fe0c179bce 100644 (file)
@@ -208,6 +208,11 @@ add_check_cxx_flag("-Wnon-virtual-dtor")
 add_check_c_cxx_flag("-Wimplicit-fallthrough")
 add_check_c_cxx_flag("-Wshadow")
 
+# Assume no dynamic initialization of thread-local variables in non-defining
+# translation units. This option should result in better performance and works
+# around crashing issues with our Windows build.
+add_check_cxx_flag("-fno-extern-tls-init")
+
 # Temporarily disable -Wclass-memaccess to suppress 'no trivial copy-assignment'
 # cdlist.h warnings. Remove when fixed.
 add_check_cxx_flag("-Wno-class-memaccess")