Merge "Disable availability macros in libc++ on Darwin."
This commit is contained in:
commit
2835af801c
1 changed files with 13 additions and 0 deletions
13
cc/stl.go
13
cc/stl.go
|
@ -144,6 +144,19 @@ func (stl *stl) flags(ctx ModuleContext, flags Flags) Flags {
|
|||
switch stl.Properties.SelectedStl {
|
||||
case "libc++", "libc++_static":
|
||||
flags.CFlags = append(flags.CFlags, "-D_USING_LIBCXX")
|
||||
|
||||
if ctx.Darwin() {
|
||||
// libc++'s headers are annotated with availability macros that
|
||||
// indicate which version of Mac OS was the first to ship with a
|
||||
// libc++ feature available in its *system's* libc++.dylib. We do
|
||||
// not use the system's library, but rather ship our own. As such,
|
||||
// these availability attributes are meaningless for us but cause
|
||||
// build breaks when we try to use code that would not be available
|
||||
// in the system's dylib.
|
||||
flags.CppFlags = append(flags.CppFlags,
|
||||
"-D_LIBCPP_DISABLE_AVAILABILITY")
|
||||
}
|
||||
|
||||
if !ctx.toolchain().Bionic() {
|
||||
flags.CppFlags = append(flags.CppFlags, "-nostdinc++")
|
||||
flags.LdFlags = append(flags.LdFlags, "-nodefaultlibs")
|
||||
|
|
Loading…
Reference in a new issue