8 # particular file as subject to the "Classpath" exception as provided
9 # by Oracle in the LICENSE file that accompanied this code.
10 #
11 # This code is distributed in the hope that it will be useful, but WITHOUT
12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 # version 2 for more details (a copy is included in the LICENSE file that
15 # accompanied this code).
16 #
17 # You should have received a copy of the GNU General Public License version
18 # 2 along with this work; if not, write to the Free Software Foundation,
19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 #
21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 # or visit www.oracle.com if you need additional information or have any
23 # questions.
24 #
25
26 # All valid JVM features, regardless of platform
27 VALID_JVM_FEATURES="compiler1 compiler2 zero minimal dtrace jvmti jvmci \
28 graal vm-structs jni-check services management cmsgc epsilongc g1gc parallelgc serialgc zgc nmt cds \
29 static-build link-time-opt aot jfr"
30
31 # Deprecated JVM features (these are ignored, but with a warning)
32 DEPRECATED_JVM_FEATURES="trace"
33
34 # All valid JVM variants
35 VALID_JVM_VARIANTS="server client minimal core zero custom"
36
37 ###############################################################################
38 # Check if the specified JVM variant should be built. To be used in shell if
39 # constructs, like this:
40 # if HOTSPOT_CHECK_JVM_VARIANT(server); then
41 #
42 # Only valid to use after HOTSPOT_SETUP_JVM_VARIANTS has setup variants.
43
44 # Definition kept in one line to allow inlining in if statements.
45 # Additional [] needed to keep m4 from mangling shell constructs.
46 AC_DEFUN([HOTSPOT_CHECK_JVM_VARIANT],
47 [ [ [[ " $JVM_VARIANTS " =~ " $1 " ]] ] ])
48
308 AC_MSG_ERROR([Specified JVM feature 'management' requires feature 'nmt'])
309 fi
310
311 if HOTSPOT_CHECK_JVM_FEATURE(jvmci) && ! (HOTSPOT_CHECK_JVM_FEATURE(compiler1) || HOTSPOT_CHECK_JVM_FEATURE(compiler2)); then
312 AC_MSG_ERROR([Specified JVM feature 'jvmci' requires feature 'compiler2' or 'compiler1'])
313 fi
314
315 if HOTSPOT_CHECK_JVM_FEATURE(cmsgc) && ! HOTSPOT_CHECK_JVM_FEATURE(serialgc); then
316 AC_MSG_ERROR([Specified JVM feature 'cmsgc' requires feature 'serialgc'])
317 fi
318
319 # Enable JFR by default, except for Zero, linux-sparcv9 and on minimal.
320 if ! HOTSPOT_CHECK_JVM_VARIANT(zero); then
321 if test "x$OPENJDK_TARGET_OS" != xaix; then
322 if test "x$OPENJDK_TARGET_OS" != xlinux || test "x$OPENJDK_TARGET_CPU" != xsparcv9; then
323 NON_MINIMAL_FEATURES="$NON_MINIMAL_FEATURES jfr"
324 fi
325 fi
326 fi
327
328 # Only enable ZGC on Linux x86_64
329 AC_MSG_CHECKING([if zgc should be built])
330 if HOTSPOT_CHECK_JVM_FEATURE(zgc); then
331 if test "x$OPENJDK_TARGET_OS" = "xlinux" && test "x$OPENJDK_TARGET_CPU" = "xx86_64"; then
332 AC_MSG_RESULT([yes])
333 else
334 DISABLED_JVM_FEATURES="$DISABLED_JVM_FEATURES zgc"
335 AC_MSG_RESULT([no, platform not supported])
336 fi
337 else
338 AC_MSG_RESULT([no])
339 fi
340
341 # Disable unsupported GCs for Zero
342 if HOTSPOT_CHECK_JVM_VARIANT(zero); then
343 DISABLED_JVM_FEATURES="$DISABLED_JVM_FEATURES epsilongc g1gc zgc"
344 fi
345
346 # Turn on additional features based on other parts of configure
347 if test "x$INCLUDE_DTRACE" = "xtrue"; then
457 AC_MSG_RESULT([no, forced])
458 else
459 AC_MSG_RESULT([no])
460 fi
461 JVM_FEATURES_aot=""
462 if HOTSPOT_CHECK_JVM_FEATURE(aot); then
463 AC_MSG_ERROR([To enable aot, you must use --enable-aot])
464 fi
465 fi
466
467 AC_SUBST(ENABLE_AOT)
468
469 if test "x$OPENJDK_TARGET_CPU" = xarm ; then
470 # Default to use link time optimizations on minimal on arm
471 JVM_FEATURES_link_time_opt="link-time-opt"
472 else
473 JVM_FEATURES_link_time_opt=""
474 fi
475
476 # All variants but minimal (and custom) get these features
477 NON_MINIMAL_FEATURES="$NON_MINIMAL_FEATURES cmsgc g1gc parallelgc serialgc epsilongc jni-check jvmti management nmt services vm-structs"
478
479 # Disable CDS on AIX.
480 if test "x$OPENJDK_TARGET_OS" = "xaix"; then
481 ENABLE_CDS="false"
482 if test "x$enable_cds" = "xyes"; then
483 AC_MSG_ERROR([CDS is currently not supported on AIX. Remove --enable-cds.])
484 fi
485 fi
486
487 # Disable CDS if user requested it with --with-jvm-features=-cds.
488 DISABLE_CDS=`$ECHO $DISABLED_JVM_FEATURES | $GREP cds`
489 if test "x$DISABLE_CDS" = "xcds"; then
490 ENABLE_CDS="false"
491 if test "x$enable_cds" = "xyes"; then
492 AC_MSG_ERROR([CDS was disabled by --with-jvm-features=-cds. Remove --enable-cds.])
493 fi
494 fi
495
496 # Disable CDS for zero, minimal, core..
497 if HOTSPOT_CHECK_JVM_VARIANT(zero) || HOTSPOT_CHECK_JVM_VARIANT(minimal) || HOTSPOT_CHECK_JVM_VARIANT(core); then
|
8 # particular file as subject to the "Classpath" exception as provided
9 # by Oracle in the LICENSE file that accompanied this code.
10 #
11 # This code is distributed in the hope that it will be useful, but WITHOUT
12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 # version 2 for more details (a copy is included in the LICENSE file that
15 # accompanied this code).
16 #
17 # You should have received a copy of the GNU General Public License version
18 # 2 along with this work; if not, write to the Free Software Foundation,
19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 #
21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 # or visit www.oracle.com if you need additional information or have any
23 # questions.
24 #
25
26 # All valid JVM features, regardless of platform
27 VALID_JVM_FEATURES="compiler1 compiler2 zero minimal dtrace jvmti jvmci \
28 graal vm-structs jni-check services management cmsgc epsilongc g1gc parallelgc serialgc shenandoahgc zgc nmt cds \
29 static-build link-time-opt aot jfr"
30
31 # Deprecated JVM features (these are ignored, but with a warning)
32 DEPRECATED_JVM_FEATURES="trace"
33
34 # All valid JVM variants
35 VALID_JVM_VARIANTS="server client minimal core zero custom"
36
37 ###############################################################################
38 # Check if the specified JVM variant should be built. To be used in shell if
39 # constructs, like this:
40 # if HOTSPOT_CHECK_JVM_VARIANT(server); then
41 #
42 # Only valid to use after HOTSPOT_SETUP_JVM_VARIANTS has setup variants.
43
44 # Definition kept in one line to allow inlining in if statements.
45 # Additional [] needed to keep m4 from mangling shell constructs.
46 AC_DEFUN([HOTSPOT_CHECK_JVM_VARIANT],
47 [ [ [[ " $JVM_VARIANTS " =~ " $1 " ]] ] ])
48
308 AC_MSG_ERROR([Specified JVM feature 'management' requires feature 'nmt'])
309 fi
310
311 if HOTSPOT_CHECK_JVM_FEATURE(jvmci) && ! (HOTSPOT_CHECK_JVM_FEATURE(compiler1) || HOTSPOT_CHECK_JVM_FEATURE(compiler2)); then
312 AC_MSG_ERROR([Specified JVM feature 'jvmci' requires feature 'compiler2' or 'compiler1'])
313 fi
314
315 if HOTSPOT_CHECK_JVM_FEATURE(cmsgc) && ! HOTSPOT_CHECK_JVM_FEATURE(serialgc); then
316 AC_MSG_ERROR([Specified JVM feature 'cmsgc' requires feature 'serialgc'])
317 fi
318
319 # Enable JFR by default, except for Zero, linux-sparcv9 and on minimal.
320 if ! HOTSPOT_CHECK_JVM_VARIANT(zero); then
321 if test "x$OPENJDK_TARGET_OS" != xaix; then
322 if test "x$OPENJDK_TARGET_OS" != xlinux || test "x$OPENJDK_TARGET_CPU" != xsparcv9; then
323 NON_MINIMAL_FEATURES="$NON_MINIMAL_FEATURES jfr"
324 fi
325 fi
326 fi
327
328 # Only enable Shenandoah on supported arches
329 AC_MSG_CHECKING([if shenandoah can be built])
330 if HOTSPOT_CHECK_JVM_VARIANT(zero); then
331 DISABLED_JVM_FEATURES="$DISABLED_JVM_FEATURES shenandoahgc"
332 AC_MSG_RESULT([no, this JVM variant not supported])
333 else
334 if test "x$OPENJDK_TARGET_CPU" = "xx86_64" || test "x$OPENJDK_TARGET_CPU" = "xaarch64" || test "x$OPENJDK_TARGET_CPU" == "xx86"; then
335 AC_MSG_RESULT([yes])
336 else
337 DISABLED_JVM_FEATURES="$DISABLED_JVM_FEATURES shenandoahgc"
338 AC_MSG_RESULT([no, platform not supported])
339 fi
340 fi
341
342 # Only enable ZGC on Linux x86_64
343 AC_MSG_CHECKING([if zgc should be built])
344 if HOTSPOT_CHECK_JVM_FEATURE(zgc); then
345 if test "x$OPENJDK_TARGET_OS" = "xlinux" && test "x$OPENJDK_TARGET_CPU" = "xx86_64"; then
346 AC_MSG_RESULT([yes])
347 else
348 DISABLED_JVM_FEATURES="$DISABLED_JVM_FEATURES zgc"
349 AC_MSG_RESULT([no, platform not supported])
350 fi
351 else
352 AC_MSG_RESULT([no])
353 fi
354
355 # Disable unsupported GCs for Zero
356 if HOTSPOT_CHECK_JVM_VARIANT(zero); then
357 DISABLED_JVM_FEATURES="$DISABLED_JVM_FEATURES epsilongc g1gc zgc"
358 fi
359
360 # Turn on additional features based on other parts of configure
361 if test "x$INCLUDE_DTRACE" = "xtrue"; then
471 AC_MSG_RESULT([no, forced])
472 else
473 AC_MSG_RESULT([no])
474 fi
475 JVM_FEATURES_aot=""
476 if HOTSPOT_CHECK_JVM_FEATURE(aot); then
477 AC_MSG_ERROR([To enable aot, you must use --enable-aot])
478 fi
479 fi
480
481 AC_SUBST(ENABLE_AOT)
482
483 if test "x$OPENJDK_TARGET_CPU" = xarm ; then
484 # Default to use link time optimizations on minimal on arm
485 JVM_FEATURES_link_time_opt="link-time-opt"
486 else
487 JVM_FEATURES_link_time_opt=""
488 fi
489
490 # All variants but minimal (and custom) get these features
491 NON_MINIMAL_FEATURES="$NON_MINIMAL_FEATURES cmsgc g1gc parallelgc serialgc epsilongc shenandoahgc jni-check jvmti management nmt services vm-structs"
492
493 # Disable CDS on AIX.
494 if test "x$OPENJDK_TARGET_OS" = "xaix"; then
495 ENABLE_CDS="false"
496 if test "x$enable_cds" = "xyes"; then
497 AC_MSG_ERROR([CDS is currently not supported on AIX. Remove --enable-cds.])
498 fi
499 fi
500
501 # Disable CDS if user requested it with --with-jvm-features=-cds.
502 DISABLE_CDS=`$ECHO $DISABLED_JVM_FEATURES | $GREP cds`
503 if test "x$DISABLE_CDS" = "xcds"; then
504 ENABLE_CDS="false"
505 if test "x$enable_cds" = "xyes"; then
506 AC_MSG_ERROR([CDS was disabled by --with-jvm-features=-cds. Remove --enable-cds.])
507 fi
508 fi
509
510 # Disable CDS for zero, minimal, core..
511 if HOTSPOT_CHECK_JVM_VARIANT(zero) || HOTSPOT_CHECK_JVM_VARIANT(minimal) || HOTSPOT_CHECK_JVM_VARIANT(core); then
|