--- old/make/autoconf/boot-jdk.m4 2017-10-03 12:23:51.754777633 +0200 +++ new/make/autoconf/boot-jdk.m4 2017-10-03 12:23:51.510781385 +0200 @@ -325,6 +325,25 @@ fi AC_MSG_CHECKING([if Boot JDK is 32 or 64 bits]) AC_MSG_RESULT([$BOOT_JDK_BITS]) + + AC_MSG_CHECKING([for Boot JDK Class Data Sharing (CDS)]) + existing_cds_data=`$FIND $BOOT_JDK -name classes.jsa 2> /dev/null` + if test "x$existing_cds_data" != x; then + BOOTJDK_USE_CDS=true + AC_MSG_RESULT([yes, already present]) + else + # Try creating a CDS archive + "$JAVA" -Xshare:dump > /dev/null 2>&1 + if test $? -eq 0; then + BOOTJDK_USE_CDS=true + AC_MSG_RESULT([yes, created]) + else + # Generation failed (typically due to write privileges missing), don't + # use CDS. + BOOTJDK_USE_CDS=false + AC_MSG_RESULT([no, creation failed]) + fi + fi ]) AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_ARGUMENTS], @@ -346,6 +365,11 @@ # Force en-US environment ADD_JVM_ARG_IF_OK([-Duser.language=en -Duser.country=US],boot_jdk_jvmargs,[$JAVA]) + # Use CDS, if available + if test "x$BOOTJDK_USE_CDS" = xtrue; then + ADD_JVM_ARG_IF_OK([-Xshare:auto],boot_jdk_jvmargs,[$JAVA]) + fi + # Apply user provided options. ADD_JVM_ARG_IF_OK([$with_boot_jdk_jvmargs],boot_jdk_jvmargs,[$JAVA])