diff --git a/mk2rbc/mk2rbc.go b/mk2rbc/mk2rbc.go index 55835c16e..0e39c3222 100644 --- a/mk2rbc/mk2rbc.go +++ b/mk2rbc/mk2rbc.go @@ -540,6 +540,14 @@ func (ctx *parseContext) handleAssignment(a *mkparser.Assignment) { return } name := a.Name.Strings[0] + // The `override` directive + // override FOO := + // is parsed as an assignment to a variable named `override FOO`. + // There are very few places where `override` is used, just flag it. + if strings.HasPrefix(name, "override ") { + ctx.errorf(a, "cannot handle override directive") + } + // Soong configuration if strings.HasPrefix(name, soongNsPrefix) { ctx.handleSoongNsAssignment(strings.TrimPrefix(name, soongNsPrefix), a) diff --git a/mk2rbc/mk2rbc_test.go b/mk2rbc/mk2rbc_test.go index 80a482fdc..1e79552cd 100644 --- a/mk2rbc/mk2rbc_test.go +++ b/mk2rbc/mk2rbc_test.go @@ -1025,6 +1025,21 @@ load("//build/make/core:product_config.rbc", "rblf") def init(g, handle): cfg = rblf.cfg(handle) rblf.warning("product.mk", "partially successful conversion") +`, + }, + { + desc: "Flag override", + mkname: "product.mk", + in: ` +override FOO:=`, + expected: `# MK2RBC TRANSLATION ERROR: cannot handle override directive +# override FOO := +load("//build/make/core:product_config.rbc", "rblf") + +def init(g, handle): + cfg = rblf.cfg(handle) + g["override FOO"] = "" + rblf.warning("product.mk", "partially successful conversion") `, }, }