On 2015-04-16 11:05, Magnus Ihse Bursie wrote:
On 2015-04-15 09:41, Erik Joelsson wrote:
Please review this change to README-builds.html. I have updated all references to the GNU make version to specify that we recommend 4.0 or later on Windows. Cygwin has been shipping with 4.x for a long time now and we have been using it internally since the source code layout change. Using older versions of make, particularly 3.81 version commonly used for JDK 7, has been known to cause trouble with the JDK 9 (post src reshuffle) build. While 3.82.x versions probably still works in many cases, I would rather have us move to 4.x since there are features there we would eventually like to be able to use.
Am I just a backwards old-timer if I think we should still support 3.81? It's one thing to recommend 4.x to users, I'll agree with that anytime, but should we require 4.0 by a check in configure, or a warning?

The "job server", which we rely heavily on in the post source-shuffle JDK 9 build, was not implemented in gnu make on Windows until 4.0, at least according to the NEWS file in the gnu make source distribution. I think I have seen Cygwin versions of gnu make 3.82.x sort of working with the job server, but I wouldn't trust that. There have also been multiple issues reported with the build that have simply been solved by using a newer (4.x) gnu make. Internally at Oracle, we have been using a special build of gnu make 3.81 for a long time and that version specifically crashed/misbehaved consistently in the new JDK 9 build.

Given all this, I find very little motivation to spend time trying to work around apparent issues in certain versions of gnu make on Cygwin, when the simple solution is to just upgrade. Especially given how simple it is to upgrade (Cygwin practically forces you to do it anyway). If someone else would like to spend this time, I won't object, but taking https://bugs.openjdk.java.net/browse/JDK-8071651 as an example of inconsistencies between versions, that person would also need to dedicate time to keep verifying that it's working.

I certainly agree that we shouldn't force gnu make 4.0 on all platforms as many linux distributions, Solaris etc are still shipping with 3.81 so keeping compatibility there is convenient. However, for Cygwin, that case cannot be made.

This all applies to Cygwin since that's the UNIX emulation environment we use. In msys things may be different. I would only propose this configure check when running on Cygwin for now.

/Erik

Reply via email to