diff --git a/cc/check.go b/cc/check.go index 32d1f069e..e3af3b288 100644 --- a/cc/check.go +++ b/cc/check.go @@ -45,7 +45,8 @@ func CheckBadCompilerFlags(ctx BaseModuleContext, prop string, flags []string) { ctx.PropertyErrorf(prop, "-Weverything is not allowed in Android.bp files. "+ "Build with `m ANDROID_TEMPORARILY_ALLOW_WEVERYTHING=true` to experiment locally with -Weverything.") } - } else if strings.HasPrefix(flag, "-target") || strings.HasPrefix(flag, "--target") { + } else if strings.HasPrefix(flag, "-target ") || strings.HasPrefix(flag, "--target ") || + strings.HasPrefix(flag, "-target=") || strings.HasPrefix(flag, "--target=") { ctx.PropertyErrorf(prop, "Bad flag: `%s`, use the correct target soong rule.", flag) } else if strings.Contains(flag, " ") { args := strings.Split(flag, " ") @@ -63,6 +64,10 @@ func CheckBadCompilerFlags(ctx BaseModuleContext, prop string, flags []string) { if len(args) > 2 { ctx.PropertyErrorf(prop, "`-mllvm` only takes one argument: `%s`", flag) } + } else if args[0] == "-Xclang" { + if len(args) > 2 { + ctx.PropertyErrorf(prop, "`-Xclang` only takes one argument: `%s`", flag) + } } else if strings.HasPrefix(flag, "-D") && strings.Contains(flag, "=") { // Do nothing in this case. // For now, we allow space characters in -DNAME=def form to allow use cases