[lworld] RFR: 8376528: [lworld] value class creation in CompileJavaModules.gmk leaves unnecessary files [v2]
David Beaumont
duke at openjdk.org
Thu Jan 29 22:10:10 UTC 2026
> Rework fix from JDK-8376088, which failed on MacOS.
>
> It solves JDK-8376088, but also simplifies the two-step process for creating the `META-INF/preview` class files.
>
> Summary of changes:
> * Remove JAR file creation (no longer needed, this is the proximal fix for JDK-8376088).
> * Stop adding the "intermediate" target for the compilation to the TARGETS list (rely on the subsequent copy).
> * Copy directories directly from the output directory to the preview directory (does not copy marker files).
> * Make the marker file appear alongside other markers for the module compilation.
> * Rename marker file to be consistent with other sibling marker files.
>
> The marker files in build/linux-x64/jdk/modules/java.base/ are now:
>
> _the.java.base_batch
> _the.java.base_batch.cmdline
> _the.java.base_batch.filelist
> _the.java.base_batch.log
> _the.java.base_batch.modfiles
> _the.java.base_batch.modfiles.fixed
> _the.java.base.config_vardeps
> _the.java.base_internalapi
> _the.java.base-javacserver.conf
> _the.java.base_pubapi
> _the.java.base.valueclasses <-- moved/renamed marker file
> _the.java.base.vardeps
>
> The difference between JDK-8376088 and this PR is the switch away from using a glob expression like `foo/*/` to attempt to match "directories immediately inside foo/". On MacOS, this results in an expansion of directory names with retains the trailing `/`, and in MacOS, that implies the contents of the directories, not just the directories themselves.
>
> For example, given directory/files:
>
> foo/x/hello.txt
> foo/y/world.txt
>
>
> The action `cp -R foo/*/ bar` expands to `cp -R foo/x/ foo/y/ bar` (with trailing `/`) and then we get:
>
> Linux/Windows:
>
> bar/x/hello.txt
> bar/y/world.txt
>
>
> MacOS:
>
> bar/hello.txt
> bar/world.txt
>
>
> This PR uses an explicit wildcard action and filtering to specify the correct directories to be copied.
David Beaumont has updated the pull request incrementally with one additional commit since the last revision:
deduplicate comments
-------------
Changes:
- all: https://git.openjdk.org/valhalla/pull/1985/files
- new: https://git.openjdk.org/valhalla/pull/1985/files/89a39121..09f19e01
Webrevs:
- full: https://webrevs.openjdk.org/?repo=valhalla&pr=1985&range=01
- incr: https://webrevs.openjdk.org/?repo=valhalla&pr=1985&range=00-01
Stats: 6 lines in 1 file changed: 0 ins; 2 del; 4 mod
Patch: https://git.openjdk.org/valhalla/pull/1985.diff
Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1985/head:pull/1985
PR: https://git.openjdk.org/valhalla/pull/1985
More information about the valhalla-dev
mailing list