302 * globals.hpp, globals_<cpu>.hpp, globals_<os>.hpp, <compiler>_globals.hpp, or <gc>_globals.hpp.
303 * -XX arguments are parsed in parse_argument().
304 * -XX argument bounds checking is done in check_vm_args_consistency().
305 *
306 * Over time -XX arguments may change. There are mechanisms to handle common cases:
307 *
308 * ALIASED: An option that is simply another name for another option. This is often
309 * part of the process of deprecating a flag, but not all aliases need
310 * to be deprecated.
311 *
312 * Create an alias for an option by adding the old and new option names to the
313 * "aliased_jvm_flags" table. Delete the old variable from globals.hpp (etc).
314 *
315 * DEPRECATED: An option that is supported, but a warning is printed to let the user know that
316 * support may be removed in the future. Both regular and aliased options may be
317 * deprecated.
318 *
319 * Add a deprecation warning for an option (or alias) by adding an entry in the
320 * "special_jvm_flags" table and setting the "deprecated_in" field.
321 * Often an option "deprecated" in one major release will
322 * be made "obsolete" in the next. In this case the entry should also have it's
323 * "obsolete_in" field set.
324 *
325 * OBSOLETE: An option that has been removed (and deleted from globals.hpp), but is still accepted
326 * on the command line. A warning is printed to let the user know that option might not
327 * be accepted in the future.
328 *
329 * Add an obsolete warning for an option by adding an entry in the "special_jvm_flags"
330 * table and setting the "obsolete_in" field.
331 *
332 * EXPIRED: A deprecated or obsolete option that has an "accept_until" version less than or equal
333 * to the current JDK version. The system will flatly refuse to admit the existence of
334 * the flag. This allows a flag to die automatically over JDK releases.
335 *
336 * Note that manual cleanup of expired options should be done at major JDK version upgrades:
337 * - Newly expired options should be removed from the special_jvm_flags and aliased_jvm_flags tables.
338 * - Newly obsolete or expired deprecated options should have their global variable
339 * definitions removed (from globals.hpp, etc) and related implementations removed.
340 *
341 * Recommended approach for removing options:
342 *
365 // Once the JDK version reaches 'expired_in' limit, the JVM will flatly refuse to admit the
366 // existence of the flag.
367 //
368 // MANUAL CLEANUP ON JDK VERSION UPDATES:
369 // This table ensures that the handling of options will update automatically when the JDK
370 // version is incremented, but the source code needs to be cleanup up manually:
371 // - As "deprecated" options age into "obsolete" or "expired" options, the associated "globals"
372 // variable should be removed, as well as users of the variable.
373 // - As "deprecated" options age into "obsolete" options, move the entry into the
374 // "Obsolete Flags" section of the table.
375 // - All expired options should be removed from the table.
376 static SpecialFlag const special_jvm_flags[] = {
377 // -------------- Deprecated Flags --------------
378 // --- Non-alias flags - sorted by obsolete_in then expired_in:
379 { "MaxGCMinorPauseMillis", JDK_Version::jdk(8), JDK_Version::undefined(), JDK_Version::undefined() },
380 { "UseConcMarkSweepGC", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::undefined() },
381
382 // --- Deprecated alias flags (see also aliased_jvm_flags) - sorted by obsolete_in then expired_in:
383 { "DefaultMaxRAMFraction", JDK_Version::jdk(8), JDK_Version::undefined(), JDK_Version::undefined() },
384 { "CreateMinidumpOnCrash", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::undefined() },
385
386 // -------------- Obsolete Flags - sorted by expired_in --------------
387 { "ConvertSleepToYield", JDK_Version::jdk(9), JDK_Version::jdk(10), JDK_Version::jdk(11) },
388 { "ConvertYieldToSleep", JDK_Version::jdk(9), JDK_Version::jdk(10), JDK_Version::jdk(11) },
389 { "MinSleepInterval", JDK_Version::jdk(9), JDK_Version::jdk(10), JDK_Version::jdk(11) },
390 { "PermSize", JDK_Version::undefined(), JDK_Version::jdk(8), JDK_Version::undefined() },
391 { "MaxPermSize", JDK_Version::undefined(), JDK_Version::jdk(8), JDK_Version::undefined() },
392
393 #ifdef TEST_VERIFY_SPECIAL_JVM_FLAGS
394 { "dep > obs", JDK_Version::jdk(9), JDK_Version::jdk(8), JDK_Version::undefined() },
395 { "dep > exp ", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::jdk(8) },
396 { "obs > exp ", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(8) },
397 { "not deprecated or obsolete", JDK_Version::undefined(), JDK_Version::undefined(), JDK_Version::jdk(9) },
398 { "dup option", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::undefined() },
399 { "dup option", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::undefined() },
400 { "BytecodeVerificationRemote", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::undefined() },
401 #endif
402
403 { NULL, JDK_Version(0), JDK_Version(0) }
404 };
|
302 * globals.hpp, globals_<cpu>.hpp, globals_<os>.hpp, <compiler>_globals.hpp, or <gc>_globals.hpp.
303 * -XX arguments are parsed in parse_argument().
304 * -XX argument bounds checking is done in check_vm_args_consistency().
305 *
306 * Over time -XX arguments may change. There are mechanisms to handle common cases:
307 *
308 * ALIASED: An option that is simply another name for another option. This is often
309 * part of the process of deprecating a flag, but not all aliases need
310 * to be deprecated.
311 *
312 * Create an alias for an option by adding the old and new option names to the
313 * "aliased_jvm_flags" table. Delete the old variable from globals.hpp (etc).
314 *
315 * DEPRECATED: An option that is supported, but a warning is printed to let the user know that
316 * support may be removed in the future. Both regular and aliased options may be
317 * deprecated.
318 *
319 * Add a deprecation warning for an option (or alias) by adding an entry in the
320 * "special_jvm_flags" table and setting the "deprecated_in" field.
321 * Often an option "deprecated" in one major release will
322 * be made "obsolete" in the next. In this case the entry should also have its
323 * "obsolete_in" field set.
324 *
325 * OBSOLETE: An option that has been removed (and deleted from globals.hpp), but is still accepted
326 * on the command line. A warning is printed to let the user know that option might not
327 * be accepted in the future.
328 *
329 * Add an obsolete warning for an option by adding an entry in the "special_jvm_flags"
330 * table and setting the "obsolete_in" field.
331 *
332 * EXPIRED: A deprecated or obsolete option that has an "accept_until" version less than or equal
333 * to the current JDK version. The system will flatly refuse to admit the existence of
334 * the flag. This allows a flag to die automatically over JDK releases.
335 *
336 * Note that manual cleanup of expired options should be done at major JDK version upgrades:
337 * - Newly expired options should be removed from the special_jvm_flags and aliased_jvm_flags tables.
338 * - Newly obsolete or expired deprecated options should have their global variable
339 * definitions removed (from globals.hpp, etc) and related implementations removed.
340 *
341 * Recommended approach for removing options:
342 *
365 // Once the JDK version reaches 'expired_in' limit, the JVM will flatly refuse to admit the
366 // existence of the flag.
367 //
368 // MANUAL CLEANUP ON JDK VERSION UPDATES:
369 // This table ensures that the handling of options will update automatically when the JDK
370 // version is incremented, but the source code needs to be cleanup up manually:
371 // - As "deprecated" options age into "obsolete" or "expired" options, the associated "globals"
372 // variable should be removed, as well as users of the variable.
373 // - As "deprecated" options age into "obsolete" options, move the entry into the
374 // "Obsolete Flags" section of the table.
375 // - All expired options should be removed from the table.
376 static SpecialFlag const special_jvm_flags[] = {
377 // -------------- Deprecated Flags --------------
378 // --- Non-alias flags - sorted by obsolete_in then expired_in:
379 { "MaxGCMinorPauseMillis", JDK_Version::jdk(8), JDK_Version::undefined(), JDK_Version::undefined() },
380 { "UseConcMarkSweepGC", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::undefined() },
381
382 // --- Deprecated alias flags (see also aliased_jvm_flags) - sorted by obsolete_in then expired_in:
383 { "DefaultMaxRAMFraction", JDK_Version::jdk(8), JDK_Version::undefined(), JDK_Version::undefined() },
384 { "CreateMinidumpOnCrash", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::undefined() },
385 { "MustCallLoadClassInternal", JDK_Version::jdk(10), JDK_Version::undefined(), JDK_Version::undefined() },
386 { "UnsyncloadClass", JDK_Version::jdk(10), JDK_Version::undefined(), JDK_Version::undefined() },
387
388 // -------------- Obsolete Flags - sorted by expired_in --------------
389 { "ConvertSleepToYield", JDK_Version::jdk(9), JDK_Version::jdk(10), JDK_Version::jdk(11) },
390 { "ConvertYieldToSleep", JDK_Version::jdk(9), JDK_Version::jdk(10), JDK_Version::jdk(11) },
391 { "MinSleepInterval", JDK_Version::jdk(9), JDK_Version::jdk(10), JDK_Version::jdk(11) },
392 { "PermSize", JDK_Version::undefined(), JDK_Version::jdk(8), JDK_Version::undefined() },
393 { "MaxPermSize", JDK_Version::undefined(), JDK_Version::jdk(8), JDK_Version::undefined() },
394
395 #ifdef TEST_VERIFY_SPECIAL_JVM_FLAGS
396 { "dep > obs", JDK_Version::jdk(9), JDK_Version::jdk(8), JDK_Version::undefined() },
397 { "dep > exp ", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::jdk(8) },
398 { "obs > exp ", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(8) },
399 { "not deprecated or obsolete", JDK_Version::undefined(), JDK_Version::undefined(), JDK_Version::jdk(9) },
400 { "dup option", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::undefined() },
401 { "dup option", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::undefined() },
402 { "BytecodeVerificationRemote", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::undefined() },
403 #endif
404
405 { NULL, JDK_Version(0), JDK_Version(0) }
406 };
|