RFR: JDK-8215445: Enable building for Windows in WSL

Erik Joelsson erik.joelsson at oracle.com
Fri Dec 21 09:57:27 UTC 2018


Hello,

Here is an updated webrev: 
http://cr.openjdk.java.net/~erikj/8215445/webrev.03/

I updated the build doc.

* require 1809
* Changed to say the drive must be mounted case-insensitive
* Reordered the WSL and Cygwin sections since Cygwin is still the main 
supported environment

I also changed Images.gmk to use fixpath when creating the CDS archive.

Regarding DEBUG_FIXPATH, I agree that it's rarely used, and I used the 
technique Magnus described myself, but I think it makes sense to keep it 
there by default in WSLENV. It just makes it simpler. We may add more to 
this list down the line.

/Erik

On 2018-12-20 20:05, Andrew Luo wrote:
>
> Hi Magnus,
>
> For DEBUG_FIXPATH, I added it to WSLENV so that users can set 
> DEBUG_FIXPATH when running make to get the debug output from fixpath. 
>  It doesn’t turn it on by default, only if you do, for example, 
> “DEBUG_FIXPATH=1 make”.  Otherwise, if we leave it out, that 
> environment variable won’t get propagated from WSL to Win32 so it 
> might confuse users who don’t know they have to add it to WSLENV.  But 
> if you think it should be removed anyways, I am not against it.
>
> We solved the extra output by adding code to fixpath to set Path to 
> FIXPATH_PATH.  That part of toolchain.m4 occurs before FIXPATH is even 
> built, so it does need that extra filtering still.
>
> Thanks,
>
> -Andrew
>
> *From:*Magnus Ihse Bursie <magnus.ihse.bursie at oracle.com>
> *Sent:* Thursday, December 20, 2018 10:55 AM
> *To:* Erik Joelsson <erik.joelsson at oracle.com>; build-dev 
> <build-dev at openjdk.java.net>; Andrew Luo 
> <andrewluotechnologies at outlook.com>
> *Subject:* Re: RFR: JDK-8215445: Enable building for Windows in WSL
>
> On 2018-12-20 13:47, Erik Joelsson wrote:
>
>     Hello,
>
>     Thanks to huge help from Andrew Luo, we now have a patch that adds
>     support for building OpenJDK for Windows using WSL as the Unix
>     layer instead of Cygwin. I have made some adjustments, mostly to
>     keep it working in Cygwin. I have also run it through some
>     testing, mostly to make sure there are no regressions to the
>     current Cygwin support. This includes a COMPARE run which showed
>     no regressions as well as comparing a WSL and Cygwin build, which
>     showed no unexpected differences.
>
>     I'm happy to see that on my Windows Workstation, the time to run
>     "make bundles" is considerably faster in WSL, about 8m40s compared
>     to 12m55s.
>
> That's really good news!
>
>
>     It should be noted that testing is still not fully supported. We
>     will likely need to adjust some tests to work correctly in WSL and
>     it's also possible that jtreg will also need adjustments.
>
>     (For internal Oracle developers, Jib does not support WSL yet)
>
>     Bug: https://bugs.openjdk.java.net/browse/JDK-8215445
>
>     Webrev:
>     http://cr.openjdk.java.net/~erikj/8215445/webrev.02/index.html
>
> A few remarks:
>
> * In the documentation:
>
>
> (either by setting the individual
> +directory as case insensitive using fsutil
>
> This should probably read something like "all individual directories 
> in the source code tree", since it is not enough to modify the top 
> level directory (case sensitivity flag is not inherited).
>
> * In Images.gmk, I still believe the proper solution is to use 
> FIXPATH, instead of EXE_SUFFIX.
>
> * In spec.gmk.in:
>
> +    export WSLENV:=$(WSLENV):FIXPATH_PATH:DEBUG_FIXPATH
>
>
> Maybe we don't need DEBUG_FIXPATH? Leftover from a debug session?
>
> * In toolchain.m4, I think this is a left-over from an older version 
> before the path rewriting:
>
> +    COMPILER_VERSION_OUTPUT=`"$COMPILER" 2>&1 | $GREP -v 
> 'ERROR.*UtilTranslatePathList' | $HEAD -n 1 | $TR -d '\r'`
>
> (and a similar at line ~1000).
>
>
> Apart from these minor issues, the patch looks great! Fantastic work, 
> Andrew and Erik!
>
> /Magnus
>
>
>
>     /Erik
>



More information about the build-dev mailing list