Use the platform -std= for sdk_version.
Bug: http://b/72571399 Test: builds Change-Id: I294cfadb7de54b1ae648e02ac9af34ed7a7405d8
This commit is contained in:
@@ -397,45 +397,42 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps
|
|||||||
flags.GlobalFlags = append(flags.GlobalFlags, tc.ToolchainCflags())
|
flags.GlobalFlags = append(flags.GlobalFlags, tc.ToolchainCflags())
|
||||||
}
|
}
|
||||||
|
|
||||||
if !ctx.useSdk() {
|
cStd := config.CStdVersion
|
||||||
cStd := config.CStdVersion
|
if String(compiler.Properties.C_std) == "experimental" {
|
||||||
if String(compiler.Properties.C_std) == "experimental" {
|
cStd = config.ExperimentalCStdVersion
|
||||||
cStd = config.ExperimentalCStdVersion
|
} else if String(compiler.Properties.C_std) != "" {
|
||||||
} else if String(compiler.Properties.C_std) != "" {
|
cStd = 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...)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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() {
|
if ctx.useVndk() {
|
||||||
flags.CFlags = append(flags.CFlags, esc(compiler.Properties.Target.Vendor.Cflags)...)
|
flags.CFlags = append(flags.CFlags, esc(compiler.Properties.Target.Vendor.Cflags)...)
|
||||||
}
|
}
|
||||||
|
@@ -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")
|
ndkSrcRoot := android.PathForSource(ctx, "prebuilts/ndk/current/sources/cxx-stl/system/include")
|
||||||
flags.CFlags = append(flags.CFlags, "-isystem "+ndkSrcRoot.String())
|
flags.CFlags = append(flags.CFlags, "-isystem "+ndkSrcRoot.String())
|
||||||
case "ndk_libc++_shared", "ndk_libc++_static":
|
case "ndk_libc++_shared", "ndk_libc++_static":
|
||||||
// TODO(danalbert): This really shouldn't be here...
|
// Nothing.
|
||||||
flags.CppFlags = append(flags.CppFlags, "-std=c++11")
|
|
||||||
case "":
|
case "":
|
||||||
// None or error.
|
// None or error.
|
||||||
if !ctx.toolchain().Bionic() {
|
if !ctx.toolchain().Bionic() {
|
||||||
|
Reference in New Issue
Block a user