Disable attribute macros that conflict with Flutter's current Windows build environment
Change-Id: Ifaf0f11c074929e169e73d65c3fa01a77e04244d
Reviewed-on: https://flutter-review.googlesource.com/c/third_party/abseil-cpp/+/32240
Reviewed-by: Loïc Sharma <loicsharma@google.com>
Reviewed-by: Jason Simmons <jsimmons@google.com>
diff --git a/absl/base/attributes.h b/absl/base/attributes.h
index e4e7a3d..58b6a7c 100644
--- a/absl/base/attributes.h
+++ b/absl/base/attributes.h
@@ -136,9 +136,12 @@
// for further information.
// The MinGW compiler doesn't complain about the weak attribute until the link
// step, presumably because Windows doesn't use ELF binaries.
+//
+// Flutter: disable this on Windows due to linker errors seen in our current
+// Windows build environment.
#if (ABSL_HAVE_ATTRIBUTE(weak) || \
(defined(__GNUC__) && !defined(__clang__))) && \
- (!defined(_WIN32) || (defined(__clang__) && __clang_major__ >= 9)) && \
+ (!defined(_WIN32)) && \
!defined(__MINGW32__)
#undef ABSL_ATTRIBUTE_WEAK
#define ABSL_ATTRIBUTE_WEAK __attribute__((weak))
@@ -708,9 +711,12 @@
// just using the standard `constinit` keyword directly over this macro.
//
// Note that this attribute is redundant if the variable is declared constexpr.
+//
+// Flutter: disable this on Windows due to incompatibility with the version
+// of std::atomic that is currently used on LUCI.
#if defined(__cpp_constinit) && __cpp_constinit >= 201907L
#define ABSL_CONST_INIT constinit
-#elif ABSL_HAVE_CPP_ATTRIBUTE(clang::require_constant_initialization)
+#elif ABSL_HAVE_CPP_ATTRIBUTE(clang::require_constant_initialization) && !defined(_MSC_VER)
#define ABSL_CONST_INIT [[clang::require_constant_initialization]]
#else
#define ABSL_CONST_INIT