Add noOverride64GlobalCflags support to Soong
Bug: b/261642850 Test: Build and check warnings. Add two xfail tests in bionic and see the results locally. Change-Id: I68fca0084787c329b6c49ce4dff6fd132f820735
This commit is contained in:
parent
6cf5e0d9cb
commit
933e38093d
4 changed files with 58 additions and 1 deletions
|
@ -519,6 +519,13 @@ func transformSourceToObj(ctx ModuleContext, subdir string, srcFiles, noTidySrcs
|
||||||
cppflags += " ${config.NoOverrideGlobalCflags}"
|
cppflags += " ${config.NoOverrideGlobalCflags}"
|
||||||
toolingCppflags += " ${config.NoOverrideGlobalCflags}"
|
toolingCppflags += " ${config.NoOverrideGlobalCflags}"
|
||||||
|
|
||||||
|
if flags.toolchain.Is64Bit() {
|
||||||
|
cflags += " ${config.NoOverride64GlobalCflags}"
|
||||||
|
toolingCflags += " ${config.NoOverride64GlobalCflags}"
|
||||||
|
cppflags += " ${config.NoOverride64GlobalCflags}"
|
||||||
|
toolingCppflags += " ${config.NoOverride64GlobalCflags}"
|
||||||
|
}
|
||||||
|
|
||||||
modulePath := android.PathForModuleSrc(ctx).String()
|
modulePath := android.PathForModuleSrc(ctx).String()
|
||||||
if android.IsThirdPartyPath(modulePath) {
|
if android.IsThirdPartyPath(modulePath) {
|
||||||
cflags += " ${config.NoOverrideExternalGlobalCflags}"
|
cflags += " ${config.NoOverrideExternalGlobalCflags}"
|
||||||
|
|
|
@ -4483,6 +4483,39 @@ func TestIncludeDirectoryOrdering(t *testing.T) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestAddnoOverride64GlobalCflags(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
ctx := testCc(t, `
|
||||||
|
cc_library_shared {
|
||||||
|
name: "libclient",
|
||||||
|
srcs: ["foo.c"],
|
||||||
|
shared_libs: ["libfoo#1"],
|
||||||
|
}
|
||||||
|
|
||||||
|
cc_library_shared {
|
||||||
|
name: "libfoo",
|
||||||
|
srcs: ["foo.c"],
|
||||||
|
shared_libs: ["libbar"],
|
||||||
|
export_shared_lib_headers: ["libbar"],
|
||||||
|
stubs: {
|
||||||
|
symbol_file: "foo.map.txt",
|
||||||
|
versions: ["1", "2", "3"],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
cc_library_shared {
|
||||||
|
name: "libbar",
|
||||||
|
export_include_dirs: ["include/libbar"],
|
||||||
|
srcs: ["foo.c"],
|
||||||
|
}`)
|
||||||
|
|
||||||
|
cFlags := ctx.ModuleForTests("libclient", "android_arm64_armv8-a_shared").Rule("cc").Args["cFlags"]
|
||||||
|
|
||||||
|
if !strings.Contains(cFlags, "${config.NoOverride64GlobalCflags}") {
|
||||||
|
t.Errorf("expected %q in cflags, got %q", "${config.NoOverride64GlobalCflags}", cFlags)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestCcBuildBrokenClangProperty(t *testing.T) {
|
func TestCcBuildBrokenClangProperty(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
|
|
|
@ -247,6 +247,8 @@ var (
|
||||||
"-Wno-error=enum-constexpr-conversion", // http://b/243964282
|
"-Wno-error=enum-constexpr-conversion", // http://b/243964282
|
||||||
}
|
}
|
||||||
|
|
||||||
|
noOverride64GlobalCflags = []string{}
|
||||||
|
|
||||||
noOverrideExternalGlobalCflags = []string{
|
noOverrideExternalGlobalCflags = []string{
|
||||||
// http://b/148815709
|
// http://b/148815709
|
||||||
"-Wno-sizeof-array-div",
|
"-Wno-sizeof-array-div",
|
||||||
|
@ -384,12 +386,26 @@ func init() {
|
||||||
return strings.Join(deviceGlobalCflags, " ")
|
return strings.Join(deviceGlobalCflags, " ")
|
||||||
})
|
})
|
||||||
|
|
||||||
// Export the static default NoOverrideGlobalCflags to Bazel.
|
// Export the static default NoOverrideGlobalCflags and NoOverride64GlobalCflags to Bazel.
|
||||||
exportedVars.ExportStringList("NoOverrideGlobalCflags", noOverrideGlobalCflags)
|
exportedVars.ExportStringList("NoOverrideGlobalCflags", noOverrideGlobalCflags)
|
||||||
|
exportedVars.ExportStringList("NoOverride64GlobalCflags", noOverride64GlobalCflags)
|
||||||
pctx.VariableFunc("NoOverrideGlobalCflags", func(ctx android.PackageVarContext) string {
|
pctx.VariableFunc("NoOverrideGlobalCflags", func(ctx android.PackageVarContext) string {
|
||||||
flags := noOverrideGlobalCflags
|
flags := noOverrideGlobalCflags
|
||||||
if ctx.Config().IsEnvTrue("LLVM_NEXT") {
|
if ctx.Config().IsEnvTrue("LLVM_NEXT") {
|
||||||
flags = append(noOverrideGlobalCflags, llvmNextExtraCommonGlobalCflags...)
|
flags = append(noOverrideGlobalCflags, llvmNextExtraCommonGlobalCflags...)
|
||||||
|
if ctx.Config().Android64() {
|
||||||
|
flags = append(noOverride64GlobalCflags)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return strings.Join(flags, " ")
|
||||||
|
})
|
||||||
|
|
||||||
|
// Export the static default NoOverride64GlobalCflags to Bazel.
|
||||||
|
exportedVars.ExportStringList("NoOverride64GlobalCflags", noOverride64GlobalCflags)
|
||||||
|
pctx.VariableFunc("NoOverride64GlobalCflags", func(ctx android.PackageVarContext) string {
|
||||||
|
flags := noOverride64GlobalCflags
|
||||||
|
if ctx.Config().IsEnvTrue("LLVM_NEXT") && ctx.Config().Android64() {
|
||||||
|
flags = append(noOverride64GlobalCflags, llvmNextExtraCommonGlobalCflags...)
|
||||||
}
|
}
|
||||||
return strings.Join(flags, " ")
|
return strings.Join(flags, " ")
|
||||||
})
|
})
|
||||||
|
|
|
@ -93,6 +93,7 @@ func makeVarsProvider(ctx android.MakeVarsContext) {
|
||||||
|
|
||||||
ctx.Strict("CLANG_EXTERNAL_CFLAGS", "${config.ExternalCflags}")
|
ctx.Strict("CLANG_EXTERNAL_CFLAGS", "${config.ExternalCflags}")
|
||||||
ctx.Strict("GLOBAL_CLANG_CFLAGS_NO_OVERRIDE", "${config.NoOverrideGlobalCflags}")
|
ctx.Strict("GLOBAL_CLANG_CFLAGS_NO_OVERRIDE", "${config.NoOverrideGlobalCflags}")
|
||||||
|
ctx.Strict("GLOBAL_CLANG_CFLAGS_64_NO_OVERRIDE", "${config.NoOverride64GlobalCflags}")
|
||||||
ctx.Strict("GLOBAL_CLANG_CPPFLAGS_NO_OVERRIDE", "")
|
ctx.Strict("GLOBAL_CLANG_CPPFLAGS_NO_OVERRIDE", "")
|
||||||
ctx.Strict("GLOBAL_CLANG_EXTERNAL_CFLAGS_NO_OVERRIDE", "${config.NoOverrideExternalGlobalCflags}")
|
ctx.Strict("GLOBAL_CLANG_EXTERNAL_CFLAGS_NO_OVERRIDE", "${config.NoOverrideExternalGlobalCflags}")
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue