fc752ca1ac
genrule modules were not mutated by the apex mutator. As a result, a module that is mutated for an apex have depended on the genrule modules host_bionic_linker_{asm|flags} that are not mutated for the APEX. This in turn caused an inconsistency problem because the host_bionic_linker_* genrules use the dynamic linker that isn't mutated for APEX as an input, while the outputs of the genrules are used by modules mutated for APEX. The inconsistency caused b/135008828. Fixing this issue by correctly let genrule to be mutated by the apex mutator. Bug: 135008828 Test: checkout master-art-host ALLOW_MISSING_DEPENDENCIES=true DIST_DIR=out/dist ./art/tools/dist_linux_bionic.sh -j50 showcommands com.android.runtime.host is passing Change-Id: I92d90400c61d3951f6202d932832d0cb63c95a7d
48 lines
1.4 KiB
Go
48 lines
1.4 KiB
Go
// Copyright 2017 Google Inc. All rights reserved.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
package cc
|
|
|
|
import (
|
|
"android/soong/android"
|
|
"android/soong/genrule"
|
|
)
|
|
|
|
func init() {
|
|
android.RegisterModuleType("cc_genrule", genRuleFactory)
|
|
}
|
|
|
|
type GenruleExtraProperties struct {
|
|
Vendor_available *bool
|
|
Recovery_available *bool
|
|
|
|
// This genrule is for recovery variant
|
|
InRecovery bool `blueprint:"mutated"`
|
|
}
|
|
|
|
// cc_genrule is a genrule that can depend on other cc_* objects.
|
|
// The cmd may be run multiple times, once for each of the different arch/etc
|
|
// variations.
|
|
func genRuleFactory() android.Module {
|
|
module := genrule.NewGenRule()
|
|
|
|
module.Extra = &GenruleExtraProperties{}
|
|
module.AddProperties(module.Extra)
|
|
|
|
android.InitAndroidArchModule(module, android.HostAndDeviceSupported, android.MultilibBoth)
|
|
|
|
android.InitApexModule(module)
|
|
|
|
return module
|
|
}
|