Merge changes from topic 'reverse-arch-includes' am: 22eab50d45

am: fca27e357b

Change-Id: Id4c19a1a92b426fe1f19ba8b8230360fff0af43b
This commit is contained in:
Colin Cross
2017-04-27 23:35:06 +00:00
committed by android-build-merger
8 changed files with 62 additions and 25 deletions

View File

@@ -417,9 +417,11 @@ func createArchType(props reflect.Type) reflect.Type {
variants := []string{} variants := []string{}
for _, archVariant := range archVariants[arch] { for _, archVariant := range archVariants[arch] {
archVariant := variantReplacer.Replace(archVariant)
variants = append(variants, proptools.FieldNameForProperty(archVariant)) variants = append(variants, proptools.FieldNameForProperty(archVariant))
} }
for _, feature := range archFeatures[arch] { for _, feature := range archFeatures[arch] {
feature := variantReplacer.Replace(feature)
variants = append(variants, proptools.FieldNameForProperty(feature)) variants = append(variants, proptools.FieldNameForProperty(feature))
} }
@@ -876,12 +878,8 @@ func getMegaDeviceConfig() []archConfig {
{"mips", "mips32r2-fp", "", []string{"mips"}}, {"mips", "mips32r2-fp", "", []string{"mips"}},
{"mips", "mips32r2-fp-xburst", "", []string{"mips"}}, {"mips", "mips32r2-fp-xburst", "", []string{"mips"}},
//{"mips", "mips32r6", "", []string{"mips"}}, //{"mips", "mips32r6", "", []string{"mips"}},
// mips32r2dsp[r2]-fp fails in the assembler for divdf3.c in compiler-rt: {"mips", "mips32r2dsp-fp", "", []string{"mips"}},
// (same errors in make and soong) {"mips", "mips32r2dspr2-fp", "", []string{"mips"}},
// Error: invalid operands `mtlo $ac0,$11'
// Error: invalid operands `mthi $ac0,$12'
//{"mips", "mips32r2dsp-fp", "", []string{"mips"}},
//{"mips", "mips32r2dspr2-fp", "", []string{"mips"}},
// mips64r2 is mismatching 64r2 and 64r6 libraries during linking to libgcc // mips64r2 is mismatching 64r2 and 64r6 libraries during linking to libgcc
//{"mips64", "mips64r2", "", []string{"mips64"}}, //{"mips64", "mips64r2", "", []string{"mips64"}},
{"mips64", "mips64r6", "", []string{"mips64"}}, {"mips64", "mips64r6", "", []string{"mips64"}},

View File

@@ -390,7 +390,12 @@ func (c *config) DevicePrefer32BitExecutables() bool {
} }
func (c *config) SkipDeviceInstall() bool { func (c *config) SkipDeviceInstall() bool {
return c.EmbeddedInMake() || Bool(c.Mega_device) return c.EmbeddedInMake()
}
func (c *config) SkipMegaDeviceInstall(path string) bool {
return Bool(c.Mega_device) &&
strings.HasPrefix(path, filepath.Join(c.buildDir, "target", "product"))
} }
func (c *config) SanitizeHost() []string { func (c *config) SanitizeHost() []string {

View File

@@ -647,14 +647,31 @@ func (a *androidModuleContext) InstallInSanitizerDir() bool {
return a.module.InstallInSanitizerDir() return a.module.InstallInSanitizerDir()
} }
func (a *androidModuleContext) skipInstall(fullInstallPath OutputPath) bool {
if a.module.base().commonProperties.SkipInstall {
return true
}
if a.Device() {
if a.AConfig().SkipDeviceInstall() {
return true
}
if a.AConfig().SkipMegaDeviceInstall(fullInstallPath.String()) {
return true
}
}
return false
}
func (a *androidModuleContext) InstallFileName(installPath OutputPath, name string, srcPath Path, func (a *androidModuleContext) InstallFileName(installPath OutputPath, name string, srcPath Path,
deps ...Path) OutputPath { deps ...Path) OutputPath {
fullInstallPath := installPath.Join(a, name) fullInstallPath := installPath.Join(a, name)
a.module.base().hooks.runInstallHooks(a, fullInstallPath, false) a.module.base().hooks.runInstallHooks(a, fullInstallPath, false)
if !a.module.base().commonProperties.SkipInstall && if !a.skipInstall(fullInstallPath) {
(!a.Device() || !a.AConfig().SkipDeviceInstall()) {
deps = append(deps, a.installDeps...) deps = append(deps, a.installDeps...)
@@ -691,8 +708,7 @@ func (a *androidModuleContext) InstallSymlink(installPath OutputPath, name strin
fullInstallPath := installPath.Join(a, name) fullInstallPath := installPath.Join(a, name)
a.module.base().hooks.runInstallHooks(a, fullInstallPath, true) a.module.base().hooks.runInstallHooks(a, fullInstallPath, true)
if !a.module.base().commonProperties.SkipInstall && if !a.skipInstall(fullInstallPath) {
(!a.Device() || !a.AConfig().SkipDeviceInstall()) {
a.ModuleBuild(pctx, ModuleBuildParams{ a.ModuleBuild(pctx, ModuleBuildParams{
Rule: Symlink, Rule: Symlink,

View File

@@ -907,6 +907,8 @@ func (c *Module) depsToPaths(ctx android.ModuleContext) PathDeps {
} else { } else {
ctx.ModuleErrorf("module %q is not a gensrcs or genrule", name) ctx.ModuleErrorf("module %q is not a gensrcs or genrule", name)
} }
// Support exported headers from a generated_sources dependency
fallthrough
case genHeaderDepTag, genHeaderExportDepTag: case genHeaderDepTag, genHeaderExportDepTag:
if genRule, ok := m.(genrule.SourceFileGenerator); ok { if genRule, ok := m.(genrule.SourceFileGenerator); ok {
depPaths.GeneratedHeaders = append(depPaths.GeneratedHeaders, depPaths.GeneratedHeaders = append(depPaths.GeneratedHeaders,

View File

@@ -69,11 +69,11 @@ type BaseCompilerProperties struct {
// If possible, don't use this. If adding paths from the current directory use // If possible, don't use this. If adding paths from the current directory use
// local_include_dirs, if adding paths from other modules use export_include_dirs in // local_include_dirs, if adding paths from other modules use export_include_dirs in
// that module. // that module.
Include_dirs []string `android:"arch_variant"` Include_dirs []string `android:"arch_variant,variant_prepend"`
// list of directories relative to the Blueprints file that will // list of directories relative to the Blueprints file that will
// be added to the include path using -I // be added to the include path using -I
Local_include_dirs []string `android:"arch_variant"` Local_include_dirs []string `android:"arch_variant,variant_prepend",`
// list of generated sources to compile. These are the names of gensrcs or // list of generated sources to compile. These are the names of gensrcs or
// genrule modules. // genrule modules.
@@ -198,15 +198,20 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags) Flag
// Include dir cflags // Include dir cflags
localIncludeDirs := android.PathsForModuleSrc(ctx, compiler.Properties.Local_include_dirs) localIncludeDirs := android.PathsForModuleSrc(ctx, compiler.Properties.Local_include_dirs)
if len(localIncludeDirs) > 0 { if len(localIncludeDirs) > 0 {
flags.GlobalFlags = append(flags.GlobalFlags, includeDirsToFlags(localIncludeDirs)) f := includeDirsToFlags(localIncludeDirs)
flags.GlobalFlags = append(flags.GlobalFlags, f)
flags.YasmFlags = append(flags.YasmFlags, f)
} }
rootIncludeDirs := android.PathsForSource(ctx, compiler.Properties.Include_dirs) rootIncludeDirs := android.PathsForSource(ctx, compiler.Properties.Include_dirs)
if len(rootIncludeDirs) > 0 { if len(rootIncludeDirs) > 0 {
flags.GlobalFlags = append(flags.GlobalFlags, includeDirsToFlags(rootIncludeDirs)) f := includeDirsToFlags(rootIncludeDirs)
flags.GlobalFlags = append(flags.GlobalFlags, f)
flags.YasmFlags = append(flags.YasmFlags, f)
} }
if !ctx.noDefaultCompilerFlags() { if !ctx.noDefaultCompilerFlags() {
flags.GlobalFlags = append(flags.GlobalFlags, "-I"+android.PathForModuleSrc(ctx).String()) flags.GlobalFlags = append(flags.GlobalFlags, "-I"+android.PathForModuleSrc(ctx).String())
flags.YasmFlags = append(flags.YasmFlags, "-I"+android.PathForModuleSrc(ctx).String())
if !(ctx.sdk() || ctx.vndk()) || ctx.Host() { if !(ctx.sdk() || ctx.vndk()) || ctx.Host() {
flags.SystemIncludeFlags = append(flags.SystemIncludeFlags, flags.SystemIncludeFlags = append(flags.SystemIncludeFlags,

View File

@@ -156,20 +156,25 @@ const (
) )
func init() { func init() {
android.RegisterArchFeatures(android.Arm,
"neon")
android.RegisterArchVariants(android.Arm, android.RegisterArchVariants(android.Arm,
"armv5te", "armv5te",
"armv7_a", "armv7-a",
"armv7_a_neon", "armv7-a-neon",
"cortex_a7", "cortex-a7",
"cortex_a8", "cortex-a8",
"cortex_a9", "cortex-a9",
"cortex_a15", "cortex-a15",
"cortex_a53", "cortex-a53",
"cortex_a53_a57", "cortex-a53-a57",
"krait", "krait",
"kryo", "kryo",
"denver") "denver")
android.RegisterArchVariantFeatures(android.Arm, "armv7-a-neon", "neon")
// Krait and Kryo targets are not supported by GCC, but are supported by Clang, // Krait and Kryo targets are not supported by GCC, but are supported by Clang,
// so override the definitions when building modules with Clang. // so override the definitions when building modules with Clang.
replaceFirst(armClangCpuVariantCflags["krait"], "-mcpu=cortex-a15", "-mcpu=krait") replaceFirst(armClangCpuVariantCflags["krait"], "-mcpu=cortex-a15", "-mcpu=krait")

View File

@@ -133,7 +133,11 @@ func init() {
"mips32r2dsp_fp", "mips32r2dsp_fp",
"mips32r2dspr2_fp", "mips32r2dspr2_fp",
"mips32r6") "mips32r6")
android.RegisterArchFeatures(android.Mips, "rev6") android.RegisterArchFeatures(android.Mips,
"dspr2",
"rev6")
android.RegisterArchVariantFeatures(android.Mips, "mips32r2dspr2_fp",
"dspr2")
android.RegisterArchVariantFeatures(android.Mips, "mips32r6", android.RegisterArchVariantFeatures(android.Mips, "mips32r6",
"rev6") "rev6")

View File

@@ -306,7 +306,9 @@ func (library *libraryDecorator) linkerFlags(ctx ModuleContext, flags Flags) Fla
func (library *libraryDecorator) compilerFlags(ctx ModuleContext, flags Flags) Flags { func (library *libraryDecorator) compilerFlags(ctx ModuleContext, flags Flags) Flags {
exportIncludeDirs := library.flagExporter.exportedIncludes(ctx) exportIncludeDirs := library.flagExporter.exportedIncludes(ctx)
if len(exportIncludeDirs) > 0 { if len(exportIncludeDirs) > 0 {
flags.GlobalFlags = append(flags.GlobalFlags, includeDirsToFlags(exportIncludeDirs)) f := includeDirsToFlags(exportIncludeDirs)
flags.GlobalFlags = append(flags.GlobalFlags, f)
flags.YasmFlags = append(flags.YasmFlags, f)
} }
return library.baseCompiler.compilerFlags(ctx, flags) return library.baseCompiler.compilerFlags(ctx, flags)