aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Prichard <rprichard@google.com>2024-01-18 23:57:38 -0800
committerRyan Prichard <rprichard@google.com>2024-02-28 19:14:24 -0800
commit718cf5bf193dc409a14baf67f688fced1b6e817e (patch)
treeb977d020a1cd0fdcbcf4d4084d7605e57ce7ea9e
parent8bf30138440a97d51f4edccdd235ae53a017a9b4 (diff)
Define libc++ config macros to nothing
libc++[abi] always check whether one of these macros is defined, not the value the macro is defined to. With the new libc++, there is a Windows __config_site header that automatically defines _LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS and _LIBCPP_HAS_THREAD_API_WIN32 to nothing, so these definitions need to match to avoid a redefinition error. Bug: 175635923 Test: treehugger Test: m adb Change-Id: I1e48947c3b45e59804cdacd48776c7f3bd9a18c6
-rw-r--r--cc/stl.go12
1 files changed, 7 insertions, 5 deletions
diff --git a/cc/stl.go b/cc/stl.go
index 63c23d7d1..de2066f30 100644
--- a/cc/stl.go
+++ b/cc/stl.go
@@ -205,12 +205,14 @@ func (stl *stl) flags(ctx ModuleContext, flags Flags) Flags {
flags.extraLibFlags = append(flags.extraLibFlags, "-nostdlib++")
if ctx.Windows() {
flags.Local.CppFlags = append(flags.Local.CppFlags,
- // Disable visiblity annotations since we're using static
- // libc++.
- "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
- "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+ // These macros can also be defined by libc++'s __config
+ // or __config_site headers so define them the same way
+ // (i.e. to nothing). Disable visibility annotations since
+ // we're using static libc++.
+ "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS=",
+ "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS=",
// Use Win32 threads in libc++.
- "-D_LIBCPP_HAS_THREAD_API_WIN32")
+ "-D_LIBCPP_HAS_THREAD_API_WIN32=")
}
}
case "libstdc++":