Repository: godotengine/godot
File: modules/mono/editor/GodotTools/GodotTools/Export/AotBuilder.cs (C#)

Code before:
        private static IEnumerable<string> GetEnablediOSArchs(string[] features)
        {
            var iosArchs = new[]
            {
                "arm64"
            };

            return iosArchs.Where(features.Contains);
        }

        private static IEnumerable<string> GetEnabledAndroidAbis(string[] features)
        {
            var androidAbis = new[]
            {
                "armeabi-v7a",
                "arm64-v8a",
                "x86",
                "x86_64"
            };

            return androidAbis.Where(features.Contains);
        }

        private static string GetAndroidTriple(string abi)
        {
            var abiArchs = new Dictionary<string, string>
            {
                ["armeabi-v7a"] = "armv7",
                ["arm64-v8a"] = "aarch64-v8a",
                ["x86"] = "i686",
                ["x86_64"] = "x86_64"
            };

            string arch = abiArchs[abi];

            return $"{arch}-linux-android";
        }

        private static string GetMonoCrossDesktopDirName(string platform, string bits)
        {
            switch (platform)
            {
                case OS.Platforms.Windows:
                case OS.Platforms.UWP:
                {
                    string arch = bits == "64" ? "x86_64" : "i686";
                    return $"windows-{arch}";
                }
                case OS.Platforms.MacOS:
                {
                    Debug.Assert(bits == null || bits == "64");

Review comment (bug):
This is probably wrong. It doesn't match the changes you made in `mono_configure.py`, as you can see those were the values from the dict, not the keys.

Code after:
                    throw new Exception("Failed to start process for Mono AOT compiler");

                process.WaitForExit();

                if (process.ExitCode != 0)
                    throw new Exception($"Mono AOT compiler exited with code: {process.ExitCode}");
            }
        }

        private static IEnumerable<string> GetEnablediOSArchs(string[] features)
        {
            var iosArchs = new[]
            {
                "arm64"
            };

            return iosArchs.Where(features.Contains);
        }

        private static IEnumerable<string> GetEnabledAndroidAbis(string[] features)
        {
            var androidAbis = new[]
            {
                "arm32",
                "arm64",
                "x86_32",
                "x86_64"
            };

            return androidAbis.Where(features.Contains);
        }

        private static string GetAndroidTriple(string abi)
        {
            var abiArchs = new Dictionary<string, string>
            {
                ["arm32"] = "armv7",
                ["arm64"] = "aarch64-v8a",
                ["x86_32"] = "i686",
                ["x86_64"] = "x86_64"
            };

            string arch = abiArchs[abi];

            return $"{arch}-linux-android";
        }

        private static string GetMonoCrossDesktopDirName(string platform, string arch)
        {
            switch (platform)
            {