8264224: Add macosx-aarch64 to Oracle build configurations

Reviewed-by: serb, erikj
diff --git a/make/conf/jib-profiles.js b/make/conf/jib-profiles.js
index d248c26..e6a64dd 100644
--- a/make/conf/jib-profiles.js
+++ b/make/conf/jib-profiles.js
@@ -239,7 +239,7 @@
 
     // List of the main profile names used for iteration
     common.main_profile_names = [
-        "linux-x64", "linux-x86", "macosx-x64",
+        "linux-x64", "linux-x86", "macosx-x64", "macosx-aarch64",
         "windows-x64", "windows-x86", "windows-aarch64",
         "linux-aarch64", "linux-arm32", "linux-ppc64le", "linux-s390x"
     ];
@@ -396,7 +396,7 @@
         };
     };
 
-    common.boot_jdk_version = "15";
+    common.boot_jdk_version = (input.build_os == 'macosx' && input.build_cpu == 'aarch64') ? "16" : "15";
     common.boot_jdk_build_number = "36";
     common.boot_jdk_home = input.get("boot_jdk", "install_path") + "/jdk-"
         + common.boot_jdk_version
@@ -447,6 +447,14 @@
                 "SETFILE=/usr/bin/SetFile"),
         },
 
+        "macosx-aarch64": {
+            target_os: "macosx",
+            target_cpu: "aarch64",
+            dependencies: ["devkit", "gtest"],
+            configure_args: concat(common.configure_args_64bit, "--with-zlib=system",
+                "--with-macosx-version-max=11.00.00"),
+        },
+
         "windows-x64": {
             target_os: "windows",
             target_cpu: "x64",
@@ -557,7 +565,7 @@
         });
 
     // Generate -gcov profiles
-    [ "linux-aarch64", "linux-x64", "macosx-x64" ].forEach(function (name) {
+    [ "linux-aarch64", "linux-x64", "macosx-x64", "macosx-aarch64" ].forEach(function (name) {
         var gcovName = name + "-gcov";
         profiles[gcovName] = clone(profiles[name]);
         profiles[gcovName].default_make_targets = ["product-bundles", "test-bundles"];
@@ -646,7 +654,7 @@
         });
 
     // JCov profiles build JCov-instrumented JDK image based on images provided through dependencies.
-    [ "linux-aarch64", "linux-x64", "macosx-x64", "windows-x64" ]
+    [ "linux-aarch64", "linux-x64", "macosx-x64", "macosx-aarch64", "windows-x64" ]
         .forEach(function (name) {
             var jcovName = name + "-jcov";
             profiles[jcovName] = clone(common.main_profile_base);
@@ -675,6 +683,10 @@
             platform: "osx-x64",
             jdk_subdir: "jdk-" + data.version +  ".jdk/Contents/Home",
         },
+        "macosx-aarch64": {
+            platform: "osx-aarch64",
+            jdk_subdir: "jdk-" + data.version + ".jdk/Contents/Home",
+        },
         "windows-x64": {
             platform: "windows-x64",
             jdk_suffix: "zip",
@@ -842,7 +854,7 @@
     });
 
     // Artifacts of JCov profiles
-    [ "linux-aarch64", "linux-x64", "macosx-x64", "windows-x64" ]
+    [ "linux-aarch64", "linux-x64", "macosx-x64", "macosx-aarch64", "windows-x64" ]
         .forEach(function (name) {
             var o = artifactData[name]
             var jdk_subdir = (o.jdk_subdir != null ? o.jdk_subdir : "jdk-" + data.version);
@@ -862,7 +874,7 @@
         });
 
     // Artifacts of gcov (native-code-coverage) profiles
-    [ "linux-aarch64", "linux-x64", "macosx-x64" ].forEach(function (name) {
+    [ "linux-aarch64", "linux-x64", "macosx-x64", "macosx-aarch64" ].forEach(function (name) {
         var o = artifactData[name]
         var pf = o.platform
         var jdk_subdir = (o.jdk_subdir != null ? o.jdk_subdir : "jdk-" + data.version);
@@ -1066,13 +1078,18 @@
         boot_jdk_platform = "windows-" + input.build_cpu;
         boot_jdk_ext = ".zip";
     }
-
-    var makeBinDir = (input.build_os == "windows"
-        ? input.get("gnumake", "install_path") + "/cygwin/bin"
-        : input.get("gnumake", "install_path") + "/bin");
-
-    var dependencies = {
-        boot_jdk: {
+    var boot_jdk;
+    if (boot_jdk_platform == 'osx-aarch64') {
+        boot_jdk = {
+            organization: common.organization,
+            ext: "tar.gz",
+            module: "jdk-macosx_aarch64",
+            revision: "16+1.0-beta1",
+            configure_args: "--with-boot-jdk=" + common.boot_jdk_home,
+            environment_path: common.boot_jdk_home + "/bin"
+        }
+    } else {
+        boot_jdk = {
             server: "jpg",
             product: "jdk",
             version: common.boot_jdk_version,
@@ -1081,7 +1098,15 @@
                 + boot_jdk_platform + "_bin" + boot_jdk_ext,
             configure_args: "--with-boot-jdk=" + common.boot_jdk_home,
             environment_path: common.boot_jdk_home + "/bin"
-        },
+        }
+    }
+
+    var makeBinDir = (input.build_os == "windows"
+        ? input.get("gnumake", "install_path") + "/cygwin/bin"
+        : input.get("gnumake", "install_path") + "/bin");
+
+    var dependencies = {
+        boot_jdk: boot_jdk,
 
         devkit: {
             organization: common.organization,
@@ -1103,8 +1128,8 @@
         lldb: {
             organization: common.organization,
             ext: "tar.gz",
-            module: "devkit-macosx_x64",
-            revision: "Xcode11.3.1-MacOSX10.15+1.1",
+            module: "devkit-macosx" + (input.build_cpu == "x64" ? "_x64" : ""),
+            revision: (input.build_cpu == "x64" ? "Xcode11.3.1-MacOSX10.15+1.1" : devkit_platform_revisions[devkit_platform])
         },
 
         cups: {