On Tue, 27 Jan 2026 20:30:32 GMT, David Beaumont <[email protected]> wrote:

> 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.

This pull request has now been integrated.

Changeset: c498cc6f
Author:    David Beaumont <[email protected]>
Committer: Roger Riggs <[email protected]>
URL:       
https://git.openjdk.org/valhalla/commit/c498cc6f48a7cee186ec6530a486f1ed5b2efd18
Stats:     44 lines in 2 files changed: 10 ins; 20 del; 14 mod

8376528: [lworld] value class creation in CompileJavaModules.gmk leaves 
unnecessary files

Reviewed-by: rriggs

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

PR: https://git.openjdk.org/valhalla/pull/1985

Reply via email to