Use the platform -std= for sdk_version.

am: 5789ca9f28

Change-Id: I0b7130226d62f7d1d9c2c5eb6bddecf546323094
This commit is contained in:
Elliott Hughes 2018-02-20 15:37:13 +00:00 committed by android-build-merger
commit 6dc655202b
2 changed files with 35 additions and 39 deletions

View file

@ -397,45 +397,42 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps
flags.GlobalFlags = append(flags.GlobalFlags, tc.ToolchainCflags())
}
if !ctx.useSdk() {
cStd := config.CStdVersion
if String(compiler.Properties.C_std) == "experimental" {
cStd = config.ExperimentalCStdVersion
} else if String(compiler.Properties.C_std) != "" {
cStd = String(compiler.Properties.C_std)
}
cppStd := String(compiler.Properties.Cpp_std)
switch String(compiler.Properties.Cpp_std) {
case "":
cppStd = config.CppStdVersion
case "experimental":
cppStd = config.ExperimentalCppStdVersion
case "c++17", "gnu++17":
// Map c++17 and gnu++17 to their 1z equivalents, until 17 is finalized.
cppStd = strings.Replace(String(compiler.Properties.Cpp_std), "17", "1z", 1)
}
if !flags.Clang {
// GCC uses an invalid C++14 ABI (emits calls to
// __cxa_throw_bad_array_length, which is not a valid C++ RT ABI).
// http://b/25022512
cppStd = config.GccCppStdVersion
} else if ctx.Host() && !flags.Clang {
// The host GCC doesn't support C++14 (and is deprecated, so likely
// never will). Build these modules with C++11.
cppStd = config.GccCppStdVersion
}
if compiler.Properties.Gnu_extensions != nil && *compiler.Properties.Gnu_extensions == false {
cStd = gnuToCReplacer.Replace(cStd)
cppStd = gnuToCReplacer.Replace(cppStd)
}
flags.ConlyFlags = append([]string{"-std=" + cStd}, flags.ConlyFlags...)
flags.CppFlags = append([]string{"-std=" + cppStd}, flags.CppFlags...)
cStd := config.CStdVersion
if String(compiler.Properties.C_std) == "experimental" {
cStd = config.ExperimentalCStdVersion
} else if String(compiler.Properties.C_std) != "" {
cStd = String(compiler.Properties.C_std)
}
cppStd := String(compiler.Properties.Cpp_std)
switch String(compiler.Properties.Cpp_std) {
case "":
cppStd = config.CppStdVersion
case "experimental":
cppStd = config.ExperimentalCppStdVersion
case "c++17", "gnu++17":
// Map c++17 and gnu++17 to their 1z equivalents, until 17 is finalized.
cppStd = strings.Replace(String(compiler.Properties.Cpp_std), "17", "1z", 1)
}
if !flags.Clang {
// GCC uses an invalid C++14 ABI (emits calls to
// __cxa_throw_bad_array_length, which is not a valid C++ RT ABI).
// http://b/25022512
// The host GCC doesn't support C++14 (and is deprecated, so likely
// never will).
// Build these modules with C++11.
cppStd = config.GccCppStdVersion
}
if compiler.Properties.Gnu_extensions != nil && *compiler.Properties.Gnu_extensions == false {
cStd = gnuToCReplacer.Replace(cStd)
cppStd = gnuToCReplacer.Replace(cppStd)
}
flags.ConlyFlags = append([]string{"-std=" + cStd}, flags.ConlyFlags...)
flags.CppFlags = append([]string{"-std=" + cppStd}, flags.CppFlags...)
if ctx.useVndk() {
flags.CFlags = append(flags.CFlags, esc(compiler.Properties.Target.Vendor.Cflags)...)
}

View file

@ -176,8 +176,7 @@ func (stl *stl) flags(ctx ModuleContext, flags Flags) Flags {
ndkSrcRoot := android.PathForSource(ctx, "prebuilts/ndk/current/sources/cxx-stl/system/include")
flags.CFlags = append(flags.CFlags, "-isystem "+ndkSrcRoot.String())
case "ndk_libc++_shared", "ndk_libc++_static":
// TODO(danalbert): This really shouldn't be here...
flags.CppFlags = append(flags.CppFlags, "-std=c++11")
// Nothing.
case "":
// None or error.
if !ctx.toolchain().Bionic() {