Hi Anil, I will share how I set up Visual Studio 2022 (2019 is a bit old now) for building JDK. First, I go to https://visualstudio.microsoft.com to download the visual studio setup (which installs an installer) Once in the installer, go to visual studio, and select "Desktop Development with C++" which will install everything you need.
In your "C:\Program Files" (or C:\PROGRA~1) open administrator powershell (you can do it by right-clicking on win start menu icon) run: fsutil file setshortname "Microsoft Visual Studio" MICROS~3 This is the only directory that really need short path; the rest of the path to cl already has no space. And yes, I am using Windows11+cygwin to build openjdk. I think you already have 8dot3name enabled so you can see PROGRA~1, you shouldn't be far. On Mon, Jul 1, 2024 at 2:31 PM Anil <1dropafl...@gmail.com> wrote: > [Erik] " You could try enabling 8dot3name on the whole volume (C:) using > fsutil [1], " > I don't know what this means and the side effects. I don't want to try > this on the entire C: > There must be people using Windows11 and Cygwin64 who have gotten OpenJDK > to build? > > On Mon, Jul 1, 2024 at 1:59 AM <erik.joels...@oracle.com> wrote: > >> Hello Anil, >> On 6/30/24 12:50, Anil wrote: >> >> I went into the VC.../bin directory to get the actual path and tried >> again, but it failed. >> >> $ bash configure --with-boot-jdk=/c/Users/Anil/OpenJDK/jdk-22.0.1 >> --enable-debug --with-tools-dir="C:\PROGRA~2\Microsoft Visual >> Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\bin" >> >> The OpenJDK build cannot handle paths with spaces in them, and on >> Windows, where the default installation directories of things like Visual >> Studio and the SDK have spaces in the directory names, we rely on short >> paths to work around this. If you installed Visual Studio in the default >> location, you should not need to point to a tools dir, and doing so won't >> help if the paths can't be expressed without spaces in them. It's annoying >> that Windows seems to have turned off short path generation by default in >> later versions. >> >> You could try enabling 8dot3name on the whole volume (C:) using fsutil >> [1], but you probably need to reinstall Visual Studio after that to get the >> short path names generated for all the directories in the installation. >> >> /Erik >> >> [1] >> https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/fsutil-8dot3name >> >> configure: Using default toolchain microsoft (Microsoft Visual Studio) >> configure: The path given by --with-tools-dir does not contain a valid >> configure: Visual Studio installation. Please point to the VC/bin or >> VC/bin/amd64 >> configure: directory within the Visual Studio installation >> configure: error: Cannot locate a valid Visual Studio installation >> configure exiting with result code 1 >> >> >> On Sun, Jun 30, 2024 at 2:07 PM Anil <1dropafl...@gmail.com> wrote: >> >>> Thank you for your reply. >>> I tried without those flags and got the same error message >>> $ bash configure --with-boot-jdk=/c/Users/Anil/OpenJDK/jdk-22.0.1 >>> ... >>> configure: Using default toolchain microsoft (Microsoft Visual Studio) >>> configure: error: Cannot locate a valid Visual Studio installation >>> configure exiting with result code 1 >>> >>> checking the shortnames. >>> >>> C:\>dir /x >>> Directory of C:\ >>> 06/29/2024 09:43 PM <DIR> PROGRA~1 Program Files >>> 03/01/2024 06:34 PM <DIR> PROGRA~2 Program Files (x86) >>> >>> Directory of C:\PROGRA~1 >>> C:\PROGRA~1>dir /x >>> 06/29/2024 09:43 PM <DIR> Microsoft Visual >>> Studio >>> >>> Directory of C:\PROGRA~2 >>> C:\PROGRA~2>dir /x >>> 06/29/2024 09:41 PM <DIR> Microsoft Visual Studio >>> >>> I don't see any shortnames set. >>> >>> In the Visual Studio Installer, both Visual Studio Build Tools 2019 and >>> Visual Studio Community are set. >>> When I click on the Build Tools, I see the checkbox for Desktop C++ is >>> checked. >>> >>> >>> I saw that the C++ >>> >>> >>> >>> On Sun, Jun 30, 2024 at 1:24 PM Chen Liang <liangchenb...@gmail.com> >>> wrote: >>> >>>> Usually Microsoft Visual Studio c compiler (as installed by Visual >>>> Studio installer) already has short names set. It seems the short name has >>>> to be 8 characters in length and you can't set it when some process is >>>> running in that directory. You can check the short path in Windows >>>> cmd's "dir /x" command. And try configure without --with-toolchain-version >>>> and --with-tools-dir and only set these flags if it fails without those >>>> flags: you declare version is 22 but you point to MSVC 2019's directory, >>>> and you should point to the bin directory within the VC directory. >>>> >>>> On Sun, Jun 30, 2024 at 12:57 PM Anil <1dropafl...@gmail.com> wrote: >>>> >>>>> Update: >>>>> I was able to get past the error >>>>> I installed Visual Studio 2022, rebooted, but it still cannot detect >>>>> it. >>>>> >>>>> PS C:\> fsutil file setshortname "Program Files (x86)" PROGRA~1 >>>>> Error: Access is denied. >>>>> >>>>> PS C:\Program Files (x86)> fsutil file setshortname "Microsoft Visual >>>>> Studio" Microsoft_Visual_Studio_2019 >>>>> Error: The parameter is incorrect. >>>>> >>>>> $ bash configure --with-boot-jdk=/c/Users/Anil/OpenJDK/jdk-22.0.1 >>>>> --with-toolchain-version=2022 --enable-debug --with-tools-dir="C:\Program >>>>> Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC" >>>>> >>>>> configure: Using default toolchain microsoft (Microsoft Visual Studio) >>>>> configure: The path given by --with-tools-dir does not contain a valid >>>>> configure: Visual Studio installation. Please point to the VC/bin or >>>>> VC/bin/amd64 >>>>> configure: directory within the Visual Studio installation >>>>> configure: error: Cannot locate a valid Visual Studio installation >>>>> configure exiting with result code 1 >>>>> >>>>> >>>>> >>>>> On Fri, Jun 28, 2024 at 8:50 PM Anil <1dropafl...@gmail.com> wrote: >>>>> >>>>>> (changed Subject line. was: Is anyone able to build the JDK on >>>>>> Windows using VirtualBox to host Ubuntu?) >>>>>> >>>>>> I downloaded and unzipped openjdk. >>>>>> $ ls >>>>>> jdk jdk-22.0.1 openjdk-22.0.1_windows-x64_bin.zip >>>>>> >>>>>> but still I get the same error message >>>>>> >>>>>> configure: Could not find a valid Boot JDK. OpenJDK distributions are >>>>>>> available at http://jdk.java.net/. >>>>>>> configure: This might be fixed by explicitly setting --with-boot-jdk >>>>>>> configure: error: Cannot continue >>>>>>> configure exiting with result code 1 >>>>>> >>>>>> >>>>>> I am wondering if I should *not *install the Open JDK in the >>>>>> directory created by Cygwin (/c/Users/Anil/OpenJDK) but install it in the >>>>>> /cygdrive Windows folders? >>>>>> (I observe that the folder created in Cygwin is not visible outside, >>>>>> in Windows even after rebooting the laptop). >>>>>> Can someone please confirm? >>>>>> thanks, >>>>>> Anil >>>>>> >>>>>> >>>>>> On Fri, Jun 28, 2024 at 6:48 PM Anil <1dropafl...@gmail.com> wrote: >>>>>> >>>>>>> Thank you. I installed Cygwin on my Windows 11 laptop, and after >>>>>>> overcoming some minor blocks, ran 'bash configure'. >>>>>>> Am I correct in assuming that I also need to have Open JDK >>>>>>> installed, not the Oracle JDK? >>>>>>> I have Java 17 from Oracle installed. >>>>>>> >>>>>>> configure: Found potential Boot JDK using JAVA_HOME >>>>>>> configure: Potential Boot JDK found at >>>>>>> /cygdrive/c/progra~1/java/jdk-17.0.4.1 is); ignoringot(TM) 64-Bit >>>>>>> Server VM >>>>>>> (build 17.0.4.1+1-LTS-2, mixed mode, sharing) >>>>>>> configure: (Your Boot JDK version must be one of: 22 23 24) >>>>>>> checking for javac... >>>>>>> /cygdrive/c/progra~1/common~1/oracle/java/javapath/javac.exe >>>>>>> checking for java... >>>>>>> /cygdrive/c/progra~1/common~1/oracle/java/javapath/java.exe >>>>>>> configure: Found potential Boot JDK using well-known locations (in >>>>>>> /cygdrive/c/progra~1/java/jdk-17.0.4.1) >>>>>>> configure: Potential Boot JDK found at >>>>>>> /cygdrive/c/progra~1/java/jdk-17.0.4.1 is); ignoringot(TM) 64-Bit >>>>>>> Server VM >>>>>>> (build 17.0.4.1+1-LTS-2, mixed mode, sharing) >>>>>>> configure: (Your Boot JDK version must be one of: 22 23 24) >>>>>>> configure: Found potential Boot JDK using well-known locations (in >>>>>>> /cygdrive/c/progra~1/java/jdk-11.0.10) >>>>>>> configure: Potential Boot JDK found at >>>>>>> /cygdrive/c/progra~1/java/jdk-11.0.10 is ); ignoringot(TM) 64-Bit >>>>>>> Server VM >>>>>>> 18.9 (build 11.0.10+8-LTS-162, mixed mode) >>>>>>> configure: (Your Boot JDK version must be one of: 22 23 24) >>>>>>> configure: Found potential Boot JDK using well-known locations (in >>>>>>> /cygdrive/c/progra~1/java/javafx-sdk-11.0.2) >>>>>>> configure: Potential Boot JDK found at >>>>>>> /cygdrive/c/progra~1/java/javafx-sdk-11.0.2 did not contain bin/java; >>>>>>> ignoring >>>>>>> configure: Found potential Boot JDK using well-known locations (in >>>>>>> /cygdrive/c/progra~1/java/jdk-17.0.4.1) >>>>>>> configure: Potential Boot JDK found at >>>>>>> /cygdrive/c/progra~1/java/jdk-17.0.4.1 is); ignoringot(TM) 64-Bit >>>>>>> Server VM >>>>>>> (build 17.0.4.1+1-LTS-2, mixed mode, sharing) >>>>>>> configure: (Your Boot JDK version must be one of: 22 23 24) >>>>>>> configure: Found potential Boot JDK using well-known locations (in >>>>>>> /cygdrive/c/progra~1/java/jdk-11.0.10) >>>>>>> configure: Potential Boot JDK found at >>>>>>> /cygdrive/c/progra~1/java/jdk-11.0.10 is ); ignoringot(TM) 64-Bit >>>>>>> Server VM >>>>>>> 18.9 (build 11.0.10+8-LTS-162, mixed mode) >>>>>>> configure: (Your Boot JDK version must be one of: 22 23 24) >>>>>>> configure: Found potential Boot JDK using well-known locations (in >>>>>>> /cygdrive/c/progra~1/java/javafx-sdk-11.0.2) >>>>>>> configure: Potential Boot JDK found at >>>>>>> /cygdrive/c/progra~1/java/javafx-sdk-11.0.2 did not contain bin/java; >>>>>>> ignoring >>>>>>> configure: Found potential Boot JDK using well-known locations (in >>>>>>> /cygdrive/c/Program Files/Java/jdk-17.0.4.1) >>>>>>> configure: Potential Boot JDK found at /cygdrive/c/Program >>>>>>> Files/Java/jdk-17.0.4); ignoringot(TM) 64-Bit Server VM (build >>>>>>> 17.0.4.1+1-LTS-2, mixed mode, sharing) >>>>>>> configure: (Your Boot JDK version must be one of: 22 23 24) >>>>>>> configure: Found potential Boot JDK using well-known locations (in >>>>>>> /cygdrive/c/Program Files/Java/jdk-11.0.10) >>>>>>> configure: Potential Boot JDK found at /cygdrive/c/Program >>>>>>> Files/Java/jdk-11.0.1); ignoringot(TM) 64-Bit Server VM 18.9 (build >>>>>>> 11.0.10+8-LTS-162, mixed mode) >>>>>>> configure: (Your Boot JDK version must be one of: 22 23 24) >>>>>>> configure: Found potential Boot JDK using well-known locations (in >>>>>>> /cygdrive/c/Program Files/Java/javafx-sdk-11.0.2) >>>>>>> configure: Potential Boot JDK found at /cygdrive/c/Program >>>>>>> Files/Java/javafx-sdk-11.0.2 did not contain bin/java; ignoring >>>>>>> configure: Could not find a valid Boot JDK. OpenJDK distributions >>>>>>> are available at http://jdk.java.net/. >>>>>>> configure: This might be fixed by explicitly setting --with-boot-jdk >>>>>>> configure: error: Cannot continue >>>>>>> configure exiting with result code 1 >>>>>>> >>>>>>> >>>>>>> On Thu, Jun 27, 2024 at 9:06 AM <erik.joels...@oracle.com> wrote: >>>>>>> >>>>>>>> Hello Anil, >>>>>>>> >>>>>>>> Building in a VM on a laptop should be doable, but given how >>>>>>>> resource intensive the JDK build is, you could run into problems like >>>>>>>> you >>>>>>>> describe. You are most likely to get the best build performance running >>>>>>>> natively on the machine and OS you have, so my recommendation is to >>>>>>>> build >>>>>>>> for Windows in your case. If you still prefer to build for Linux, I >>>>>>>> think >>>>>>>> the best option is to use WSL. See doc/building.md for instructions on >>>>>>>> how >>>>>>>> to build for Linux in WSL. To build for Windows, I recommend installing >>>>>>>> Cygwin as the most straightforward and well tested option for a POSIX >>>>>>>> support layer on Windows. Once installed, you won't need to run any >>>>>>>> Windows >>>>>>>> commands as Cygwin emulates a Linux/Unix environment. Again see >>>>>>>> doc/building.md for instructions on how to install a build environment >>>>>>>> on >>>>>>>> Windows. >>>>>>>> >>>>>>>> /Erik >>>>>>>> On 6/27/24 04:51, Anil wrote: >>>>>>>> >>>>>>>> I want to try out a small contribution to the JDK and want to build >>>>>>>> the JDK first. >>>>>>>> I have a Windows 11 laptop. >>>>>>>> >>>>>>>> I am not comfortable with the Windows commands and someone >>>>>>>> mentioned in this forum that most of the building is done on Linux. >>>>>>>> So I installed VirtualBox 7.0.18 and Ubuntu 24.04. however I was >>>>>>>> getting black screens and freezing. I downgraded the Ubuntu to 222.04 >>>>>>>> and >>>>>>>> still got black screens. I don't know why this is happening. >>>>>>>> Any advice appreciated. >>>>>>>> Anil >>>>>>>> >>>>>>>> On Tue, Jun 18, 2024, 7:25 PM Anil <1dropafl...@gmail.com> wrote: >>>>>>>> >>>>>>>>> Hello, >>>>>>>>> I want to try out a small contribution to the JDK and wanted to >>>>>>>>> build the JDK first, >>>>>>>>> before I change the code. >>>>>>>>> I forked and cloned the jdk following the instructions at The >>>>>>>>> OpenJDK Developers' Guide – OpenJDK Developers’ Guide >>>>>>>>> <https://openjdk.org/guide/#cloning-the-jdk> >>>>>>>>> >>>>>>>>> I am on Windows 11. >>>>>>>>> These instructions are given on the page but I am unsure which of >>>>>>>>> these to execute since I have already forked and cloned the git repo >>>>>>>>> >>>>>>>>> $ wget >>>>>>>>> https://download.java.net/java/GA/jdk16/7863447f0ab643c585b9bdebf67c69db/36/GPL/openjdk-16_linux-x64_bin.tar.gz >>>>>>>>> $ tar xzf openjdk-16_linux-x64_bin.tar.gz >>>>>>>>> $ sudo apt-get install autoconf zip make gcc g++ libx11-dev >>>>>>>>> libxext-dev libxrender-dev libxrandr-dev libxtst-dev libxt-dev >>>>>>>>> libcups2-dev libfontconfig1-dev libasound2-dev >>>>>>>>> $ cd jdk >>>>>>>>> $ sh ./configure --with-boot-jdk=$HOME/jdk-16/ >>>>>>>>> $ make images >>>>>>>>> >>>>>>>>> >>>>>>>>> Do I still need to do the wget? >>>>>>>>> Also, I wondered if I should use book jdk-17 instead of jdk-16 as >>>>>>>>> in the instructions above. >>>>>>>>> thanks, >>>>>>>>> Anil >>>>>>>>> >>>>>>>>>