On Mon, 24 Mar 2025 20:22:55 GMT, Jiangli Zhou <jian...@openjdk.org> wrote:

>> Please review following changes, thanks.
>> 
>> - Add `static` to the vm_info for static JDK. The `-version` output now 
>> contains `static` on static JDK, e.g.:
>> 
>> 
>> $ static-jdk/bin/java -version
>> openjdk version "25-internal" 2025-09-16
>> OpenJDK Runtime Environment (fastdebug build 
>> 25-internal-adhoc.jianglizhou.jdk)
>> OpenJDK 64-Bit Server VM (fastdebug build 25-internal-adhoc.jianglizhou.jdk, 
>> mixed mode, static, sharing)
>> 
>> $ jdk/bin/java -version
>> openjdk version "25-internal" 2025-09-16
>> OpenJDK Runtime Environment (fastdebug build 
>> 25-internal-adhoc.jianglizhou.jdk)
>> OpenJDK 64-Bit Server VM (fastdebug build 25-internal-adhoc.jianglizhou.jdk, 
>> mixed mode, sharing)
>> 
>> 
>> Following changes resolve jtreg test failures on static JDK due to 
>> '-server|-client|-minimal|-zero' flag added by 
>> `CommandLineOptionTest.getVMTypeOption()` or 
>> `optionsvalidation.JVMOptionsUtils`. '-server|-client|-minimal|-zero' flags 
>> are unrecognized on static JDK (please see 
>> https://bugs.openjdk.org/browse/JDK-8350982).
>> 
>> - Add `jdk.test.lib.Platform.isStatic()`, which checks for `static` in 
>> `java.vm.info` system property to determine if current test is running on 
>> static JDK. 
>> - Change `CommandLineOptionTest` to only call `getVMTypeOption()` on regular 
>> JDK (`!Platform.isStatic()`).
>> - Change `optionsvalidation.JVMOptionsUtils` to only set VMType to 
>> '-server|-client|-minimal' on regular JDK ( `!Platform.isStatic()`.
>
> Jiangli Zhou has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Allocate memory for vm_info string using NEW_C_HEAP_ARRAY.

I was only going to handle the static part as a special case but you are right 
that also handling sharing this way makes a lot of sense and cleans up the code.

src/hotspot/share/runtime/abstract_vm_version.cpp line 169:

> 167:   jio_snprintf(vm_info, len, "%s%s%s", mode,
> 168:                is_vm_statically_linked() ? ", static" : "",
> 169:                CDSConfig::is_using_archive() ? ", sharing" : "");

I would prefer to see these parts defined as `const char * static_str = ", 
static"` so we can use `strlen` above rather than having magic numbers.

-------------

Changes requested by dholmes (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/24171#pullrequestreview-2712401528
PR Review Comment: https://git.openjdk.org/jdk/pull/24171#discussion_r2011325318

Reply via email to