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

Commit 80d74920 authored by Evgenii Stepanov's avatar Evgenii Stepanov
Browse files

Introduce armv9-a arch variant.

Armv9 with mandatory PAC and BTI extensions.
Stack protector is disabled as it is irrelevant with PAC.

Bug: 263283855
Test: NFC
Change-Id: I2f298f21dade12824597e0a6920772a2bfc63afb
parent b547b65e
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ var archVariants = map[ArchType][]string{
		"armv8-a-branchprot",
		"armv8-2a",
		"armv8-2a-dotprod",
		"armv9-a",
	},
	X86: {
		"amberlake",
@@ -148,6 +149,9 @@ var androidArchFeatureMap = map[ArchType]map[string][]string{
		"armv8-2a-dotprod": {
			"dotprod",
		},
		"armv9-a": {
			"dotprod",
		},
	},
	X86: {
		"amberlake": {
+8 −0
Original line number Diff line number Diff line
@@ -41,6 +41,11 @@ var (
		"armv8-2a-dotprod": []string{
			"-march=armv8.2-a+dotprod",
		},
		"armv9-a": []string{
			"-march=armv8.2-a+dotprod",
			"-mbranch-protection=standard",
			"-fno-stack-protector",
		},
	}

	arm64Ldflags = []string{
@@ -101,6 +106,7 @@ func init() {
	exportedVars.ExportStringListStaticVariable("Arm64Armv8ABranchProtCflags", arm64ArchVariantCflags["armv8-a-branchprot"])
	exportedVars.ExportStringListStaticVariable("Arm64Armv82ACflags", arm64ArchVariantCflags["armv8-2a"])
	exportedVars.ExportStringListStaticVariable("Arm64Armv82ADotprodCflags", arm64ArchVariantCflags["armv8-2a-dotprod"])
	exportedVars.ExportStringListStaticVariable("Arm64Armv9ACflags", arm64ArchVariantCflags["armv9-a"])

	exportedVars.ExportStringListStaticVariable("Arm64CortexA53Cflags", arm64CpuVariantCflags["cortex-a53"])
	exportedVars.ExportStringListStaticVariable("Arm64CortexA55Cflags", arm64CpuVariantCflags["cortex-a55"])
@@ -117,6 +123,7 @@ var (
		"armv8-a-branchprot": "${config.Arm64Armv8ABranchProtCflags}",
		"armv8-2a":           "${config.Arm64Armv82ACflags}",
		"armv8-2a-dotprod":   "${config.Arm64Armv82ADotprodCflags}",
		"armv9-a":            "${config.Arm64Armv9ACflags}",
	}

	arm64CpuVariantCflagsVar = map[string]string{
@@ -193,6 +200,7 @@ func arm64ToolchainFactory(arch android.Arch) Toolchain {
	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))
+1 −0
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ var (
		"armv8-a-branchprot": []string{},
		"armv8-2a":           []string{},
		"armv8-2a-dotprod":   []string{},
		"armv9-a":            []string{},
	}
)