RFR: 8346719: Add relaunchers to the static JDK image for missing executables [v3]
Erik Joelsson
erikj at openjdk.org
Fri Aug 1 17:23:56 UTC 2025
On Fri, 27 Jun 2025 16:15:57 GMT, Magnus Ihse Bursie <ihse at openjdk.org> wrote:
>> In the static JDK image, a single humongous java executable is generated, and no other launcher, such as javac. This makes it impossible to run our jtreg tests, which assume these are present.
>>
>> The solution is fortunately simply: we just need to add a bunch of trivial launchers, which are thin wrappers that execute the main java binary, with the proper arguments. This will result in the same behavior as the normal dynamic launchers, only that we will need to take the detour of launching another process instead of calling directly into the JLI library.
>
> Magnus Ihse Bursie has updated the pull request incrementally with one additional commit since the last revision:
>
> Remove problemlisting
make/ModuleWrapper.gmk line 82:
> 80: TARGETS += $(LAUNCHERS_LIST)
> 81: endif
> 82: endif
I think it would be cleaner if this could be kept in LauncherCommon.gmk and avoid having ModuleWrapper.gmk involved in this. I think it can be done relatively easily. In SetupBuildLauncherBody, instead of constructing the variable `$(MODULE)_INCLUDED_LAUNCHERS`, declare dependencies for `$(LAUNCHER_LIST)`, something like this:
$(LAUNCHER_LIST): $$($1)
TARGETS += $(LAUNCHER_LIST)
Then put the the recipe for `$(LAUNCHER_LIST)` at the end of LauncherCommon.gmk. The $(LAUNCHER_LIST) value will sometimes be added to TARGETS multiple times, but that's ok I think.
make/StaticLibs.gmk line 163:
> 161: # $2: The launcher name
> 162: define SetupRelauncher
> 163: $1_$2_LAUNCHER_ARGS_LINE := $$(shell cat $$(SUPPORT_OUTPUTDIR)/static-native/relaunchers/$1/$2-relauncher-arguments.txt)
`$(call ReadFile, ...)`
also, double space?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/24380#discussion_r2248147264
PR Review Comment: https://git.openjdk.org/jdk/pull/24380#discussion_r2248474424
More information about the core-libs-dev
mailing list