RFR (M): Enable OpenJDK builds on Windows with MinGW/MSYS

Kelly O'Hair kelly.ohair at oracle.com
Thu Mar 8 19:58:29 UTC 2012


On Mar 8, 2012, at 9:39 AM, Volker Simonis wrote:

> Hi,
> 
> please review the following changes which make it possible to use MinGW/MSYS as
> underlying build environment for Windows. Because the changes touch several
> repositories I prepared three webrevs, all relative to
> http://hg.openjdk.java.net/jdk8/build
> 
> For the main repository:
> http://cr.openjdk.java.net/~simonis/MinGW_MSYS.v1/

I had originally purged all mention of MKS from this README because we wanted to stop
using it in favor of CYGWIN, and only maintain one way to build on Windows.
That never happened internally, many kept using MKS because it was so much faster.
So as much as I hate seeing the MKS instructions being added, I understand why you felt
compelled to add them, and see no obvious inaccuracies 

We didn't  have any plans to continue to support MKS with the new build infrastructure work.
It creates a complication that we wanted to avoid, but at the same time we are running into
the "CYGWIN is too slow, especially on 64bit Windows" problem.
So we will need to discuss this on the build-infra-dev alias.

Since this change is just README, and I see nothing wrong with regards to your changes,
it seems ok, with the caveat that if we end up really abandoning MKS, we may need to purge
the MKS references.  I just don't know what will happen here right now.

> 
> For the HotSpot repository:
> http://cr.openjdk.java.net/~simonis/MinGW_MSYS_hotspot.v1/

Seems fine. This change could probably proceed regardless of the others I think.
But someone from the hotspot team may need to help here.... or maybe I could do it...

Was the /option to -option a style issue, or was it required somehow? Just curious, I have
no objection to making it consistent.

Also, the quotes on the paths..  any particular reason why?

> 
> For the JDK repository
> http://cr.openjdk.java.net/~simonis/MinGW_MSYS_jdk.v1/

Seems fine but unfortunately, we have other closed repos that might be impacted here.
The cpio change concerns me, not that I'm in love with cpio, I tried to get rid of it
a long time ago, but it was so much faster than tar for some reason.
So I'll need to make sure the entire Oracle JDK build process is ok with these changes
before this could go in.

Right now I'm not so concerned about using MinGW/MSYS as making sure the existing
builds are not broken. But I am looking forward to using MinGW/MSYS soon.

I may need to enlist someone to do some image comparisons and double check that the
end result has not changed too.

> 
> Please be so kind and also create three bug ids for the corresponding changes.

Created:
7152336: Enable builds on Windows with MinGW/MSYS

I think we can use the same CR for all repos. Unless you really want 3 CRs.

> 
> The changes are minimal in the sense that I did "just enough" changes to be able
> to build on Windows with either one of the three Unix emulation environments
> (MKS, Cygwin, MinGW/MSYS).
> 
> The main benefits of the new MinGW/MSYS based Windows build are:
> - no problems with make - one can simply use the make tool which comes with
>   MinGW/MSYS
> - with the current MinGW/MSYS version the build is known to succeed, while
>   the newest Cygwin 1.7.10 version is known to break the OpenJDK build (see:
>   http://old.nabble.com/Is-anyone-able-to-build-on-Win-7-td33196055.html)
> - speed - the MinGW/MSYS build times are comparable to the MKS build times
>   and is at least 50% faster than the Cygwin build times (see numbers below)

That 50% faster is great news.

> 
> The changes are intentionally against the old, "traditional" build system to fix
> the mentioned Cygwin problems and simplify the Windows build just now. I don't
> expect any problems in adapting the "new" build infrastructure to MinGW/MSYS as
> well in a follow-up step.
> 
> More information on each change can be found in the corresponding webrevs.
> 
> Timing results for the different build environments (MKS ver. 9.4, Cygwin
> ver. 1.7.9, MinGW/MSYS 1.0.17) for a full JDK 8 product build on a freshly
> booted, dual core i7 notebook with 8GB RAM, HDD and 64-bit Windows 7: </p>
> 
> MKS
> -- Build times ----------
> Target all_product_build
> Start 2012-02-29 19:19:26
> End   2012-02-29 20:07:44
> 00:03:10 corba
> 00:03:44 hotspot
> 00:00:30 jaxp
> 00:00:37 jaxws
> 00:39:39 jdk
> 00:00:36 langtools
> 00:48:18 TOTAL
> -------------------------
> 
> MinGW/MSYS
> -- Build times ----------
> Target all_product_build
> Start 2012-02-29 18:16:31
> End   2012-02-29 19:10:59
> 00:02:57 corba
> 00:03:04 hotspot
> 00:00:32 jaxp
> 00:00:40 jaxws
> 00:46:36 jdk
> 00:00:36 langtools
> 00:54:28 TOTAL
> -------------------------
> 
> Cygwin
> -- Build times ----------
> Target all_product_build
> Start 2012-02-29 14:36:50
> End   2012-02-29 16:05:50
> 00:05:47 corba
> 00:03:24 hotspot
> 00:00:33 jaxp
> 00:00:43 jaxws
> 01:17:45 jdk
> 00:00:39 langtools
> 01:29:00 TOTAL
> -------------------------
> 

Excellent details.  Thanks.

I'll definitely work with you to get these changes integrated.


-kto

> Regards,
> Volker




More information about the build-dev mailing list