@@ -83,19 +83,39 @@ on where and how to check out the source code.
8383 for the source code, see below for suggestions on how to keep the build
8484 artifacts on a local disk.
8585
86- * On Windows, if using [ Cygwin] ( #cygwin ) , extra care must be taken to make sure
87- the environment is consistent. It is recommended that you follow this
88- procedure:
89-
90- * Create the directory that is going to contain the top directory of the JDK
91- clone by using the ` mkdir ` command in the Cygwin bash shell. That is, do
92- * not* create it using Windows Explorer. This will ensure that it will have
93- proper Cygwin attributes, and that it's children will inherit those
94- attributes.
95-
96- * Do not put the JDK clone in a path under your Cygwin home directory. This
97- is especially important if your user name contains spaces and/or mixed
98- upper and lower case letters.
86+ * On Windows, extra care must be taken to have a smooth building experience:
87+
88+ * Make sure that all relevant paths have short names. Short names are used by
89+ the build system to create space-free alternative paths. Short name
90+ creation is enabled per volume. The default setting can be checked with the
91+ command: ` fsutil 8dot3name query ` . If short name creation was turned off
92+ when a directory was created, it will not have a short name. Whether a
93+ short name exists can be checked by running ` dir /X ` in the containing
94+ directory (in cmd.exe). If a short path is present you should see something
95+ like 'ASDF~ 1' being displayed in one of the columns of the ouput. If a
96+ directory is missing a short name, the safest way to get one is to enable
97+ short names for that particular volume with `fsutil 8dot3name set <drive
98+ letter>: 0` (note that you need to run as administrator for this), and then
99+ re-create the particular directory. A short name should be generated
100+ automatically then. Another option is to manually assign a short name to
101+ the directory using ` fsutil file setShortName <path> <short name> ` .
102+
103+ * If using [ Cygwin] ( #cygwin ) , you must make sure the file permissions and
104+ attributes between Windows and Cygwin are consistent. It is recommended
105+ that you follow this procedure:
106+
107+ * Create the directory that is going to contain the top directory of the
108+ JDK clone by using the ` mkdir ` command in the Cygwin bash shell. That is,
109+ do * not* create it using Windows Explorer. This will ensure that it will
110+ have proper Cygwin attributes, and that it's children will inherit those
111+ attributes.
112+
113+ * Do not put the JDK clone in a path under your Cygwin home directory. This
114+ is especially important if your user name contains spaces and/or mixed
115+ upper and lower case letters.
116+
117+ Failure to follow these procedures might result in hard-to-debug build
118+ problems.
99119
100120 * You need to install a git client. You have two choices, Cygwin git or Git
101121 for Windows. Unfortunately there are pros and cons with each choice.
@@ -113,9 +133,6 @@ on where and how to check out the source code.
113133 make sure you set ` core.autocrlf ` to ` false ` (this is asked during
114134 installation).
115135
116- Failure to follow this procedure might result in hard-to-debug build
117- problems.
118-
119136## Build Hardware Requirements
120137
121138The JDK is a massive project, and require machines ranging from decent to
@@ -175,7 +192,7 @@ time of writing.
175192| ----------------- | ---------------------------------- |
176193| Linux/x64 | Oracle Enterprise Linux 6.4 / 8.x |
177194| Linux/aarch64 | Oracle Enterprise Linux 7.6 / 8.x |
178- | macOS | macOS 13 .x (Ventura) |
195+ | macOS | macOS 14 .x |
179196| Windows | Windows Server 2016 |
180197
181198The double version numbers for Linux are due to the hybrid model used at
@@ -327,7 +344,7 @@ difficult for a project such as the JDK to keep pace with a continuously
327344updated machine running macOS. See the section on [ Apple Xcode] ( #apple-xcode )
328345on some strategies to deal with this.
329346
330- It is recommended that you use at least macOS 13 (Ventura) and Xcode 14 , but
347+ It is recommended that you use at least macOS 14 and Xcode 15.4 , but
331348earlier versions may also work.
332349
333350The standard macOS environment contains the basic tooling needed to build, but
@@ -393,7 +410,7 @@ issues.
393410| Operating system | Toolchain version |
394411| ------------------ | -------------------------------------------- |
395412| Linux | gcc 14.2.0 |
396- | macOS | Apple Xcode 14.3.1 (using clang 14 .0.3) |
413+ | macOS | Apple Xcode 15.4 (using clang 15 .0.0) |
397414| Windows | Microsoft Visual Studio 2022 version 17.13.2 |
398415
399416All compilers are expected to be able to handle the C11 language standard for
0 commit comments