On Tue, 25 Jan 2022 00:20:19 GMT, Yumin Qi <[email protected]> wrote:
> Please review,
> When jlink with --compress=2, zip is used to compress the files while doing
> copy. The user case failed to load zip.dll, since zip.dll is not set in PATH.
> This failure is after we get NULL from GetModuleHandle("zip.dll"), then do
> LoadLibrary("zip.dll") will have same result.
> The fix is calling load_zip_library of ClassLoader first --- if zip library
> already loaded just return the cached handle for following usage, if not,
> load zip library and cached the handle.
>
> Tests: tier1,4,7 in test
> Manually tested user case, and checked output of jimage list <modules> for
> jlinked files using --compress=2.
>
> Thanks
> Yumin
I think this looks okay but I think @JimLaskey and/or @sundararajana should
look at this because it creates a dependency on a JVM_* function. I'm trying to
think if there are any interop issues when using jrtfs. Jim/Sundar can correct
me but I think we are okay there because a tool on say JDK 8 (or 11 or 17) that
accesses a JDK 19 run-time image will use the BasicImageReader and won't use
libjimage in the target VM.
-------------
PR: https://git.openjdk.java.net/jdk/pull/7206