Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 28b806c9 authored by Krzysztof Kosiński's avatar Krzysztof Kosiński Committed by Gerrit Code Review
Browse files

Merge "Add missing pieces of ARMv9.2-A support." into main

parents f1d63b8b b8c5e95e
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ var archVariants = map[ArchType][]string{
		"armv8-2a",
		"armv8-2a-dotprod",
		"armv9-a",
		"armv9-2a",
	},
	X86: {
		"amberlake",
+7 −23
Original line number Diff line number Diff line
@@ -118,11 +118,9 @@ func init() {

	pctx.StaticVariable("Arm64Cppflags", strings.Join(arm64Cppflags, " "))

	pctx.StaticVariable("Arm64Armv8ACflags", strings.Join(arm64ArchVariantCflags["armv8-a"], " "))
	pctx.StaticVariable("Arm64Armv8ABranchProtCflags", strings.Join(arm64ArchVariantCflags["armv8-a-branchprot"], " "))
	pctx.StaticVariable("Arm64Armv82ACflags", strings.Join(arm64ArchVariantCflags["armv8-2a"], " "))
	pctx.StaticVariable("Arm64Armv82ADotprodCflags", strings.Join(arm64ArchVariantCflags["armv8-2a-dotprod"], " "))
	pctx.StaticVariable("Arm64Armv9ACflags", strings.Join(arm64ArchVariantCflags["armv9-a"], " "))
	for variant, cflags := range arm64ArchVariantCflags {
		pctx.StaticVariable("Arm64"+variant+"VariantCflags", strings.Join(cflags, " "))
	}

	pctx.StaticVariable("Arm64CortexA53Cflags", strings.Join(arm64CpuVariantCflags["cortex-a53"], " "))
	pctx.StaticVariable("Arm64CortexA55Cflags", strings.Join(arm64CpuVariantCflags["cortex-a55"], " "))
@@ -134,14 +132,6 @@ func init() {
}

var (
	arm64ArchVariantCflagsVar = map[string]string{
		"armv8-a":            "${config.Arm64Armv8ACflags}",
		"armv8-a-branchprot": "${config.Arm64Armv8ABranchProtCflags}",
		"armv8-2a":           "${config.Arm64Armv82ACflags}",
		"armv8-2a-dotprod":   "${config.Arm64Armv82ADotprodCflags}",
		"armv9-a":            "${config.Arm64Armv9ACflags}",
	}

	arm64CpuVariantCflagsVar = map[string]string{
		"cortex-a53": "${config.Arm64CortexA53Cflags}",
		"cortex-a55": "${config.Arm64CortexA55Cflags}",
@@ -211,18 +201,12 @@ func (toolchainArm64) LibclangRuntimeLibraryArch() string {
}

func arm64ToolchainFactory(arch android.Arch) Toolchain {
	switch arch.ArchVariant {
	case "armv8-a":
	case "armv8-a-branchprot":
	case "armv8-2a":
	case "armv8-2a-dotprod":
	case "armv9-a":
		// Nothing extra for armv8-a/armv8-2a
	default:
		panic(fmt.Sprintf("Unknown ARM architecture version: %q", arch.ArchVariant))
	}

	toolchainCflags := []string{arm64ArchVariantCflagsVar[arch.ArchVariant]}
	// Error now rather than having a confusing Ninja error
	if _, ok := arm64ArchVariantCflags[arch.ArchVariant]; !ok {
		panic(fmt.Sprintf("Unknown ARM64 architecture version: %q", arch.ArchVariant))
	}

	toolchainCflags := []string{"${config.Arm64" + arch.ArchVariant + "VariantCflags}"}
	toolchainCflags = append(toolchainCflags,
		variantOrDefault(arm64CpuVariantCflagsVar, arch.CpuVariant))

+2 −2
Original line number Diff line number Diff line
@@ -87,8 +87,8 @@ func (toolchainLinuxBionicArm64) CrtBeginSharedBinary() []string {
}

func linuxBionicArm64ToolchainFactory(arch android.Arch) Toolchain {
	archVariant := "armv8-a" // for host, default to armv8-a
	toolchainCflags := []string{arm64ArchVariantCflagsVar[archVariant]}
	// for host, default to armv8-a
	toolchainCflags := []string{"-march=armv8-a"}

	// We don't specify CPU architecture for host. Conservatively assume
	// the host CPU needs the fix