222 data.dependencies = getJibProfilesDependencies(input, common, data);
223
224 return data;
225 };
226
227 /**
228 * Generates some common values
229 *
230 * @param input External data to use for generating the configuration
231 * @returns Common values
232 */
233 var getJibProfilesCommon = function (input, data) {
234 var common = {};
235
236 common.organization = "jpg.infra.builddeps";
237 common.build_id = getBuildId(input);
238 common.build_number = input.build_number != null ? input.build_number : "0";
239
240 // List of the main profile names used for iteration
241 common.main_profile_names = [
242 "linux-x64", "linux-x86", "macosx-x64", "solaris-x64",
243 "solaris-sparcv9", "windows-x64", "windows-x86",
244 "linux-aarch64", "linux-arm32", "linux-ppc64le", "linux-s390x"
245 ];
246
247 // These are the base setttings for all the main build profiles.
248 common.main_profile_base = {
249 dependencies: ["boot_jdk", "gnumake", "jtreg", "jib", "autoconf", "jmh", "jcov"],
250 default_make_targets: ["product-bundles", "test-bundles", "static-libs-bundles"],
251 configure_args: concat("--enable-jtreg-failure-handler",
252 "--with-exclude-translations=de,es,fr,it,ko,pt_BR,sv,ca,tr,cs,sk,ja_JP_A,ja_JP_HA,ja_JP_HI,ja_JP_I,zh_TW,zh_HK",
253 "--disable-manpages",
254 "--disable-jvm-feature-shenandoahgc",
255 versionArgs(input, common))
256 };
257 // Extra settings for debug profiles
258 common.debug_suffix = "-debug";
259 common.debug_profile_base = {
260 configure_args: ["--enable-debug"],
261 labels: "debug"
262 };
263 // Extra settings for slowdebug profiles
412 default_make_targets: ["docs-bundles"],
413 },
414
415 "linux-x86": {
416 target_os: "linux",
417 target_cpu: "x86",
418 build_cpu: "x64",
419 dependencies: ["devkit"],
420 configure_args: concat(common.configure_args_32bit,
421 "--with-jvm-variants=minimal,server", "--with-zlib=system"),
422 },
423
424 "macosx-x64": {
425 target_os: "macosx",
426 target_cpu: "x64",
427 dependencies: ["devkit", "pandoc", "graalunit_lib"],
428 configure_args: concat(common.configure_args_64bit, "--with-zlib=system",
429 "--with-macosx-version-max=10.9.0"),
430 },
431
432 "solaris-x64": {
433 target_os: "solaris",
434 target_cpu: "x64",
435 dependencies: ["devkit", "cups"],
436 configure_args: concat(common.configure_args_64bit,
437 "--with-zlib=system", "--enable-dtrace", "--enable-deprecated-ports=yes"),
438 },
439
440 "solaris-sparcv9": {
441 target_os: "solaris",
442 target_cpu: "sparcv9",
443 dependencies: ["devkit", "cups"],
444 configure_args: concat(common.configure_args_64bit,
445 "--with-zlib=system", "--enable-dtrace", "--enable-deprecated-ports=yes"),
446 },
447
448 "windows-x64": {
449 target_os: "windows",
450 target_cpu: "x64",
451 dependencies: ["devkit", "pandoc", "graalunit_lib"],
452 configure_args: concat(common.configure_args_64bit),
453 },
454
455 "windows-x86": {
456 target_os: "windows",
457 target_cpu: "x86",
458 build_cpu: "x64",
459 dependencies: ["devkit"],
460 configure_args: concat(common.configure_args_32bit),
461 },
462
463 "linux-aarch64": {
464 target_os: "linux",
465 target_cpu: "aarch64",
466 build_cpu: "x64",
467 dependencies: ["devkit", "build_devkit", "pandoc"],
516 common.main_profile_names.forEach(function (name) {
517 var debugName = name + common.debug_suffix;
518 profiles[debugName] = concatObjects(profiles[name],
519 common.debug_profile_base);
520 });
521 // Generate slowdebug versions of all the main profiles
522 common.main_profile_names.forEach(function (name) {
523 var debugName = name + common.slowdebug_suffix;
524 profiles[debugName] = concatObjects(profiles[name],
525 common.slowdebug_profile_base);
526 });
527 // Generate testmake profiles for the main profile of each build host
528 // platform. This profile only runs the makefile tests.
529 // Ant is needed to run the idea project generator test.
530 var testmakeBase = {
531 dependencies: [ "ant" ],
532 environment: {
533 "ANT_HOME": input.get("ant", "home_path")
534 }
535 };
536 [ "linux-x64", "macosx-x64", "solaris-sparcv9", "solaris-x64", "windows-x64"]
537 .forEach(function (name) {
538 var maketestName = name + "-testmake";
539 profiles[maketestName] = concatObjects(profiles[name], testmakeBase);
540 profiles[maketestName].default_make_targets = [ "test-make" ];
541 });
542
543 // Generate -gcov profiles
544 [ "linux-aarch64", "linux-x64", "macosx-x64" ].forEach(function (name) {
545 var gcovName = name + "-gcov";
546 profiles[gcovName] = clone(profiles[name]);
547 profiles[gcovName].default_make_targets = ["product-bundles", "test-bundles"];
548 profiles[gcovName].configure_args = concat(profiles[gcovName].configure_args,
549 ["--enable-native-coverage", "--disable-warnings-as-errors"]);
550 });
551
552 // Profiles for building the zero jvm variant. These are used for verification.
553 var zeroProfiles = {
554 "linux-x64-zero": {
555 target_os: "linux",
556 target_cpu: "x64",
590 target_os: "linux",
591 target_cpu: "x64",
592 dependencies: ["devkit"],
593 configure_args: concat(common.configure_args_64bit,
594 "--with-zlib=system", "--disable-precompiled-headers"),
595 },
596 };
597 profiles = concatObjects(profiles, noPchProfiles);
598 // Add base settings to noPch profiles
599 Object.keys(noPchProfiles).forEach(function (name) {
600 profiles[name] = concatObjects(common.main_profile_base, profiles[name]);
601 profiles[name] = concatObjects(common.debug_profile_base, profiles[name]);
602 // Override default make target with hotspot as that's the only part of
603 // the build using precompiled headers.
604 profiles[name].default_make_targets = ["hotspot"];
605 });
606
607 // Bootcycle profiles runs the build with itself as the boot jdk. This can
608 // be done in two ways. Either using the builtin bootcycle target in the
609 // build system. Or by supplying the main jdk build as bootjdk to configure.
610 [ "linux-x64", "macosx-x64", "solaris-sparcv9", "windows-x64"]
611 .forEach(function (name) {
612 var bootcycleName = name + "-bootcycle";
613 var bootcyclePrebuiltName = name + "-bootcycle-prebuilt";
614 // The base bootcycle profile just changes the default target
615 // compared to the base profile
616 profiles[bootcycleName] = clone(profiles[name]);
617 profiles[bootcycleName].default_make_targets = [ "bootcycle-images" ];
618 // The prebuilt bootcycle variant modifies the boot jdk argument
619 var bootcyclePrebuiltBase = {
620 dependencies: [ name + ".jdk" ],
621 configure_args: [
622 "--with-boot-jdk=" + input.get(name + ".jdk", "home_path"),
623 // Full docs do not currently work with bootcycle build
624 // since Nashorn was removed. This negates the
625 // --enable-full-docs from the main profile.
626 "--enable-full-docs=auto",
627 ]
628 }
629 profiles[bootcyclePrebuiltName] = concatObjects(profiles[name],
630 bootcyclePrebuiltBase);
631 var bootJdkIndex = profiles[bootcyclePrebuiltName].dependencies.indexOf("boot_jdk");
632 delete profiles[bootcyclePrebuiltName].dependencies[bootJdkIndex];
633 profiles[bootcyclePrebuiltName].default_make_targets = [ "product-images" ];
634 });
635
636 // JCov profiles build JCov-instrumented JDK image based on images provided through dependencies.
637 [ "linux-aarch64", "linux-x64", "macosx-x64", "solaris-sparcv9", "windows-x64"]
638 .forEach(function (name) {
639 var jcovName = name + "-jcov";
640 profiles[jcovName] = clone(common.main_profile_base);
641 profiles[jcovName].target_os = profiles[name].target_os
642 profiles[jcovName].target_cpu = profiles[name].target_cpu
643 profiles[jcovName].default_make_targets = [ "jcov-bundles" ];
644 profiles[jcovName].dependencies = concat(profiles[jcovName].dependencies,
645 [ name + ".jdk", "devkit" ]);
646 profiles[jcovName].configure_args = concat(profiles[jcovName].configure_args,
647 ["--with-jcov-input-jdk=" + input.get(name + ".jdk", "home_path")]);
648 });
649
650 //
651 // Define artifacts for profiles
652 //
653 // Macosx bundles are named osx
654 // tar.gz.
655 var artifactData = {
656 "linux-x64": {
657 platform: "linux-x64",
658 },
659 "linux-x86": {
660 platform: "linux-x86",
661 },
662 "macosx-x64": {
663 platform: "osx-x64",
664 jdk_subdir: "jdk-" + data.version + ".jdk/Contents/Home",
665 },
666 "solaris-x64": {
667 platform: "solaris-x64",
668 },
669 "solaris-sparcv9": {
670 platform: "solaris-sparcv9",
671 },
672 "windows-x64": {
673 platform: "windows-x64",
674 jdk_suffix: "zip",
675 },
676 "windows-x86": {
677 platform: "windows-x86",
678 jdk_suffix: "zip",
679 },
680 "linux-aarch64": {
681 platform: "linux-aarch64",
682 },
683 "linux-arm32": {
684 platform: "linux-arm32",
685 },
686 "linux-ppc64le": {
687 platform: "linux-ppc64le",
688 },
689 "linux-s390x": {
690 platform: "linux-s390x",
691 }
778 var cmpBaselineName = name + suffix + "-cmp-baseline";
779 profiles[cmpBaselineName] = clone(profiles[name + suffix]);
780 // Only compare the images target. This should pressumably be expanded
781 // to include more build targets when possible.
782 profiles[cmpBaselineName].default_make_targets = [ "images", "test-image" ];
783 if (name == "linux-x64") {
784 profiles[cmpBaselineName].default_make_targets
785 = concat(profiles[cmpBaselineName].default_make_targets, "docs");
786 }
787 profiles[cmpBaselineName].make_args = [ "COMPARE_BUILD=CONF=" ];
788 profiles[cmpBaselineName].configure_args = concat(
789 profiles[cmpBaselineName].configure_args,
790 "--with-hotspot-build-time=n/a",
791 "--disable-precompiled-headers");
792 // Do not inherit artifact definitions from base profile
793 delete profiles[cmpBaselineName].artifacts;
794 });
795 });
796
797 // Artifacts of JCov profiles
798 [ "linux-aarch64", "linux-x64", "macosx-x64", "solaris-sparcv9", "windows-x64"]
799 .forEach(function (name) {
800 var o = artifactData[name]
801 var jdk_subdir = (o.jdk_subdir != null ? o.jdk_subdir : "jdk-" + data.version);
802 var jdk_suffix = (o.jdk_suffix != null ? o.jdk_suffix : "tar.gz");
803 var pf = o.platform
804 var jcovName = name + "-jcov";
805 profiles[jcovName].artifacts = {
806 jdk: {
807 local: "bundles/\\(jdk-jcov.*bin." + jdk_suffix + "\\)",
808 remote: [
809 "bundles/" + pf + "/jdk-jcov-" + data.version + "_" + pf + "_bin." + jdk_suffix
810 ],
811 subdir: jdk_subdir,
812 exploded: "images/jdk-jcov"
813 }
814 };
815 });
816
817 // Artifacts of gcov (native-code-coverage) profiles
818 [ "linux-aarch64", "linux-x64", "macosx-x64" ].forEach(function (name) {
967 }
968
969 // Generate the missing platform attributes
970 profiles = generatePlatformAttributes(profiles);
971 profiles = generateDefaultMakeTargetsConfigureArg(common, profiles);
972 return profiles;
973 };
974
975 /**
976 * Generate the dependencies part of the configuration
977 *
978 * @param input External data to use for generating the configuration
979 * @param common The common values
980 * @returns {{}} Dependencies part of configuration
981 */
982 var getJibProfilesDependencies = function (input, common) {
983
984 var devkit_platform_revisions = {
985 linux_x64: "gcc9.2.0-OL6.4+1.0",
986 macosx_x64: "Xcode10.1-MacOSX10.14+1.0",
987 solaris_x64: "SS12u4-Solaris11u1+1.0",
988 solaris_sparcv9: "SS12u6-Solaris11u3+1.0",
989 windows_x64: "VS2017-15.9.16+1.0",
990 linux_aarch64: "gcc9.2.0-OL7.6+1.0",
991 linux_arm: "gcc8.2.0-Fedora27+1.0",
992 linux_ppc64le: "gcc8.2.0-Fedora27+1.0",
993 linux_s390x: "gcc8.2.0-Fedora27+1.0"
994 };
995
996 var devkit_platform = (input.target_cpu == "x86"
997 ? input.target_os + "_x64"
998 : input.target_platform);
999
1000 var devkit_cross_prefix = "";
1001 if (input.build_platform != input.target_platform
1002 && input.build_platform != devkit_platform) {
1003 devkit_cross_prefix = input.build_platform + "-to-";
1004 }
1005
1006 var boot_jdk_platform = (input.build_os == "macosx" ? "osx" : input.build_os)
1007 + "-" + input.build_cpu;
1008 var boot_jdk_ext = (input.build_os == "windows" ? ".zip" : ".tar.gz")
1020 if (input.build_cpu == 'aarch64') {
1021 boot_jdk = {
1022 organization: common.organization,
1023 ext: "tar.gz",
1024 module: "jdk-linux_aarch64",
1025 revision: "14+1.0",
1026 configure_args: "--with-boot-jdk=" + common.boot_jdk_home,
1027 environment_path: common.boot_jdk_home + "/bin"
1028 }
1029 } else {
1030 boot_jdk = {
1031 server: "jpg",
1032 product: "jdk",
1033 version: common.boot_jdk_version,
1034 build_number: common.boot_jdk_build_number,
1035 file: "bundles/" + boot_jdk_platform + "/jdk-" + common.boot_jdk_version + "_"
1036 + boot_jdk_platform + "_bin" + boot_jdk_ext,
1037 configure_args: "--with-boot-jdk=" + common.boot_jdk_home,
1038 environment_path: common.boot_jdk_home + "/bin"
1039 }
1040 }
1041 if (input.build_cpu == 'sparcv9') {
1042 boot_jdk.file = "bundles/openjdk/GPL/" + boot_jdk_platform
1043 + "/openjdk-" + common.boot_jdk_version + "_"
1044 + boot_jdk_platform + "_bin" + boot_jdk_ext;
1045 }
1046
1047 var dependencies = {
1048 boot_jdk: boot_jdk,
1049
1050 devkit: {
1051 organization: common.organization,
1052 ext: "tar.gz",
1053 module: "devkit-" + devkit_cross_prefix + devkit_platform,
1054 revision: devkit_platform_revisions[devkit_platform],
1055 environment: {
1056 "DEVKIT_HOME": input.get("devkit", "home_path"),
1057 }
1058 },
1059
1060 build_devkit: {
1061 organization: common.organization,
1062 ext: "tar.gz",
1063 module: "devkit-" + input.build_platform,
1064 revision: devkit_platform_revisions[input.build_platform]
|
222 data.dependencies = getJibProfilesDependencies(input, common, data);
223
224 return data;
225 };
226
227 /**
228 * Generates some common values
229 *
230 * @param input External data to use for generating the configuration
231 * @returns Common values
232 */
233 var getJibProfilesCommon = function (input, data) {
234 var common = {};
235
236 common.organization = "jpg.infra.builddeps";
237 common.build_id = getBuildId(input);
238 common.build_number = input.build_number != null ? input.build_number : "0";
239
240 // List of the main profile names used for iteration
241 common.main_profile_names = [
242 "linux-x64", "linux-x86", "macosx-x64",
243 "windows-x64", "windows-x86",
244 "linux-aarch64", "linux-arm32", "linux-ppc64le", "linux-s390x"
245 ];
246
247 // These are the base setttings for all the main build profiles.
248 common.main_profile_base = {
249 dependencies: ["boot_jdk", "gnumake", "jtreg", "jib", "autoconf", "jmh", "jcov"],
250 default_make_targets: ["product-bundles", "test-bundles", "static-libs-bundles"],
251 configure_args: concat("--enable-jtreg-failure-handler",
252 "--with-exclude-translations=de,es,fr,it,ko,pt_BR,sv,ca,tr,cs,sk,ja_JP_A,ja_JP_HA,ja_JP_HI,ja_JP_I,zh_TW,zh_HK",
253 "--disable-manpages",
254 "--disable-jvm-feature-shenandoahgc",
255 versionArgs(input, common))
256 };
257 // Extra settings for debug profiles
258 common.debug_suffix = "-debug";
259 common.debug_profile_base = {
260 configure_args: ["--enable-debug"],
261 labels: "debug"
262 };
263 // Extra settings for slowdebug profiles
412 default_make_targets: ["docs-bundles"],
413 },
414
415 "linux-x86": {
416 target_os: "linux",
417 target_cpu: "x86",
418 build_cpu: "x64",
419 dependencies: ["devkit"],
420 configure_args: concat(common.configure_args_32bit,
421 "--with-jvm-variants=minimal,server", "--with-zlib=system"),
422 },
423
424 "macosx-x64": {
425 target_os: "macosx",
426 target_cpu: "x64",
427 dependencies: ["devkit", "pandoc", "graalunit_lib"],
428 configure_args: concat(common.configure_args_64bit, "--with-zlib=system",
429 "--with-macosx-version-max=10.9.0"),
430 },
431
432 "windows-x64": {
433 target_os: "windows",
434 target_cpu: "x64",
435 dependencies: ["devkit", "pandoc", "graalunit_lib"],
436 configure_args: concat(common.configure_args_64bit),
437 },
438
439 "windows-x86": {
440 target_os: "windows",
441 target_cpu: "x86",
442 build_cpu: "x64",
443 dependencies: ["devkit"],
444 configure_args: concat(common.configure_args_32bit),
445 },
446
447 "linux-aarch64": {
448 target_os: "linux",
449 target_cpu: "aarch64",
450 build_cpu: "x64",
451 dependencies: ["devkit", "build_devkit", "pandoc"],
500 common.main_profile_names.forEach(function (name) {
501 var debugName = name + common.debug_suffix;
502 profiles[debugName] = concatObjects(profiles[name],
503 common.debug_profile_base);
504 });
505 // Generate slowdebug versions of all the main profiles
506 common.main_profile_names.forEach(function (name) {
507 var debugName = name + common.slowdebug_suffix;
508 profiles[debugName] = concatObjects(profiles[name],
509 common.slowdebug_profile_base);
510 });
511 // Generate testmake profiles for the main profile of each build host
512 // platform. This profile only runs the makefile tests.
513 // Ant is needed to run the idea project generator test.
514 var testmakeBase = {
515 dependencies: [ "ant" ],
516 environment: {
517 "ANT_HOME": input.get("ant", "home_path")
518 }
519 };
520 [ "linux-x64", "macosx-x64", "windows-x64"]
521 .forEach(function (name) {
522 var maketestName = name + "-testmake";
523 profiles[maketestName] = concatObjects(profiles[name], testmakeBase);
524 profiles[maketestName].default_make_targets = [ "test-make" ];
525 });
526
527 // Generate -gcov profiles
528 [ "linux-aarch64", "linux-x64", "macosx-x64" ].forEach(function (name) {
529 var gcovName = name + "-gcov";
530 profiles[gcovName] = clone(profiles[name]);
531 profiles[gcovName].default_make_targets = ["product-bundles", "test-bundles"];
532 profiles[gcovName].configure_args = concat(profiles[gcovName].configure_args,
533 ["--enable-native-coverage", "--disable-warnings-as-errors"]);
534 });
535
536 // Profiles for building the zero jvm variant. These are used for verification.
537 var zeroProfiles = {
538 "linux-x64-zero": {
539 target_os: "linux",
540 target_cpu: "x64",
574 target_os: "linux",
575 target_cpu: "x64",
576 dependencies: ["devkit"],
577 configure_args: concat(common.configure_args_64bit,
578 "--with-zlib=system", "--disable-precompiled-headers"),
579 },
580 };
581 profiles = concatObjects(profiles, noPchProfiles);
582 // Add base settings to noPch profiles
583 Object.keys(noPchProfiles).forEach(function (name) {
584 profiles[name] = concatObjects(common.main_profile_base, profiles[name]);
585 profiles[name] = concatObjects(common.debug_profile_base, profiles[name]);
586 // Override default make target with hotspot as that's the only part of
587 // the build using precompiled headers.
588 profiles[name].default_make_targets = ["hotspot"];
589 });
590
591 // Bootcycle profiles runs the build with itself as the boot jdk. This can
592 // be done in two ways. Either using the builtin bootcycle target in the
593 // build system. Or by supplying the main jdk build as bootjdk to configure.
594 [ "linux-x64", "macosx-x64", "windows-x64" ]
595 .forEach(function (name) {
596 var bootcycleName = name + "-bootcycle";
597 var bootcyclePrebuiltName = name + "-bootcycle-prebuilt";
598 // The base bootcycle profile just changes the default target
599 // compared to the base profile
600 profiles[bootcycleName] = clone(profiles[name]);
601 profiles[bootcycleName].default_make_targets = [ "bootcycle-images" ];
602 // The prebuilt bootcycle variant modifies the boot jdk argument
603 var bootcyclePrebuiltBase = {
604 dependencies: [ name + ".jdk" ],
605 configure_args: [
606 "--with-boot-jdk=" + input.get(name + ".jdk", "home_path"),
607 // Full docs do not currently work with bootcycle build
608 // since Nashorn was removed. This negates the
609 // --enable-full-docs from the main profile.
610 "--enable-full-docs=auto",
611 ]
612 }
613 profiles[bootcyclePrebuiltName] = concatObjects(profiles[name],
614 bootcyclePrebuiltBase);
615 var bootJdkIndex = profiles[bootcyclePrebuiltName].dependencies.indexOf("boot_jdk");
616 delete profiles[bootcyclePrebuiltName].dependencies[bootJdkIndex];
617 profiles[bootcyclePrebuiltName].default_make_targets = [ "product-images" ];
618 });
619
620 // JCov profiles build JCov-instrumented JDK image based on images provided through dependencies.
621 [ "linux-aarch64", "linux-x64", "macosx-x64", "windows-x64" ]
622 .forEach(function (name) {
623 var jcovName = name + "-jcov";
624 profiles[jcovName] = clone(common.main_profile_base);
625 profiles[jcovName].target_os = profiles[name].target_os
626 profiles[jcovName].target_cpu = profiles[name].target_cpu
627 profiles[jcovName].default_make_targets = [ "jcov-bundles" ];
628 profiles[jcovName].dependencies = concat(profiles[jcovName].dependencies,
629 [ name + ".jdk", "devkit" ]);
630 profiles[jcovName].configure_args = concat(profiles[jcovName].configure_args,
631 ["--with-jcov-input-jdk=" + input.get(name + ".jdk", "home_path")]);
632 });
633
634 //
635 // Define artifacts for profiles
636 //
637 // Macosx bundles are named osx
638 // tar.gz.
639 var artifactData = {
640 "linux-x64": {
641 platform: "linux-x64",
642 },
643 "linux-x86": {
644 platform: "linux-x86",
645 },
646 "macosx-x64": {
647 platform: "osx-x64",
648 jdk_subdir: "jdk-" + data.version + ".jdk/Contents/Home",
649 },
650 "windows-x64": {
651 platform: "windows-x64",
652 jdk_suffix: "zip",
653 },
654 "windows-x86": {
655 platform: "windows-x86",
656 jdk_suffix: "zip",
657 },
658 "linux-aarch64": {
659 platform: "linux-aarch64",
660 },
661 "linux-arm32": {
662 platform: "linux-arm32",
663 },
664 "linux-ppc64le": {
665 platform: "linux-ppc64le",
666 },
667 "linux-s390x": {
668 platform: "linux-s390x",
669 }
756 var cmpBaselineName = name + suffix + "-cmp-baseline";
757 profiles[cmpBaselineName] = clone(profiles[name + suffix]);
758 // Only compare the images target. This should pressumably be expanded
759 // to include more build targets when possible.
760 profiles[cmpBaselineName].default_make_targets = [ "images", "test-image" ];
761 if (name == "linux-x64") {
762 profiles[cmpBaselineName].default_make_targets
763 = concat(profiles[cmpBaselineName].default_make_targets, "docs");
764 }
765 profiles[cmpBaselineName].make_args = [ "COMPARE_BUILD=CONF=" ];
766 profiles[cmpBaselineName].configure_args = concat(
767 profiles[cmpBaselineName].configure_args,
768 "--with-hotspot-build-time=n/a",
769 "--disable-precompiled-headers");
770 // Do not inherit artifact definitions from base profile
771 delete profiles[cmpBaselineName].artifacts;
772 });
773 });
774
775 // Artifacts of JCov profiles
776 [ "linux-aarch64", "linux-x64", "macosx-x64", "windows-x64" ]
777 .forEach(function (name) {
778 var o = artifactData[name]
779 var jdk_subdir = (o.jdk_subdir != null ? o.jdk_subdir : "jdk-" + data.version);
780 var jdk_suffix = (o.jdk_suffix != null ? o.jdk_suffix : "tar.gz");
781 var pf = o.platform
782 var jcovName = name + "-jcov";
783 profiles[jcovName].artifacts = {
784 jdk: {
785 local: "bundles/\\(jdk-jcov.*bin." + jdk_suffix + "\\)",
786 remote: [
787 "bundles/" + pf + "/jdk-jcov-" + data.version + "_" + pf + "_bin." + jdk_suffix
788 ],
789 subdir: jdk_subdir,
790 exploded: "images/jdk-jcov"
791 }
792 };
793 });
794
795 // Artifacts of gcov (native-code-coverage) profiles
796 [ "linux-aarch64", "linux-x64", "macosx-x64" ].forEach(function (name) {
945 }
946
947 // Generate the missing platform attributes
948 profiles = generatePlatformAttributes(profiles);
949 profiles = generateDefaultMakeTargetsConfigureArg(common, profiles);
950 return profiles;
951 };
952
953 /**
954 * Generate the dependencies part of the configuration
955 *
956 * @param input External data to use for generating the configuration
957 * @param common The common values
958 * @returns {{}} Dependencies part of configuration
959 */
960 var getJibProfilesDependencies = function (input, common) {
961
962 var devkit_platform_revisions = {
963 linux_x64: "gcc9.2.0-OL6.4+1.0",
964 macosx_x64: "Xcode10.1-MacOSX10.14+1.0",
965 windows_x64: "VS2017-15.9.16+1.0",
966 linux_aarch64: "gcc9.2.0-OL7.6+1.0",
967 linux_arm: "gcc8.2.0-Fedora27+1.0",
968 linux_ppc64le: "gcc8.2.0-Fedora27+1.0",
969 linux_s390x: "gcc8.2.0-Fedora27+1.0"
970 };
971
972 var devkit_platform = (input.target_cpu == "x86"
973 ? input.target_os + "_x64"
974 : input.target_platform);
975
976 var devkit_cross_prefix = "";
977 if (input.build_platform != input.target_platform
978 && input.build_platform != devkit_platform) {
979 devkit_cross_prefix = input.build_platform + "-to-";
980 }
981
982 var boot_jdk_platform = (input.build_os == "macosx" ? "osx" : input.build_os)
983 + "-" + input.build_cpu;
984 var boot_jdk_ext = (input.build_os == "windows" ? ".zip" : ".tar.gz")
996 if (input.build_cpu == 'aarch64') {
997 boot_jdk = {
998 organization: common.organization,
999 ext: "tar.gz",
1000 module: "jdk-linux_aarch64",
1001 revision: "14+1.0",
1002 configure_args: "--with-boot-jdk=" + common.boot_jdk_home,
1003 environment_path: common.boot_jdk_home + "/bin"
1004 }
1005 } else {
1006 boot_jdk = {
1007 server: "jpg",
1008 product: "jdk",
1009 version: common.boot_jdk_version,
1010 build_number: common.boot_jdk_build_number,
1011 file: "bundles/" + boot_jdk_platform + "/jdk-" + common.boot_jdk_version + "_"
1012 + boot_jdk_platform + "_bin" + boot_jdk_ext,
1013 configure_args: "--with-boot-jdk=" + common.boot_jdk_home,
1014 environment_path: common.boot_jdk_home + "/bin"
1015 }
1016 }
1017
1018 var dependencies = {
1019 boot_jdk: boot_jdk,
1020
1021 devkit: {
1022 organization: common.organization,
1023 ext: "tar.gz",
1024 module: "devkit-" + devkit_cross_prefix + devkit_platform,
1025 revision: devkit_platform_revisions[devkit_platform],
1026 environment: {
1027 "DEVKIT_HOME": input.get("devkit", "home_path"),
1028 }
1029 },
1030
1031 build_devkit: {
1032 organization: common.organization,
1033 ext: "tar.gz",
1034 module: "devkit-" + input.build_platform,
1035 revision: devkit_platform_revisions[input.build_platform]
|