RFR: JDK-8200083: Bump bootjdk requirement for JDK 11 to JDK 10 (original) (raw)
Erik Joelsson erik.joelsson at oracle.com
Thu Mar 22 14:54:10 UTC 2018
- Previous message (by thread): RFR: JDK-8200083: Bump bootjdk requirement for JDK 11 to JDK 10
- Next message (by thread): RFR: JDK-8198652: Stop linking with -base:0x8000000 on Windows
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hello,
On 2018-03-21 15:07, Martin Buchholz wrote:
Now that we are releasing jdks an order of magnitude faster than before, we should reconsider the N-1 boot jdk policy.
The primary beneficiaries of this are compiler-dev, who might like to code using the very features they are implementing. Not just, we have had numerous tedious workarounds in the build for supporting different bootjdk versions (for just N and N-1) already and by adding more versions to that list, that kind of logic will balloon greatly. Maintaining a build that supports many different environments is hard, so being able to limit any variable helps. In practice there will still be the one version of boot jdk used by the automated build farms at Oracle and other places, which means any other boot jdk version is bound to break at times (as we already see for bootjdk version N often enough). It adds a complexity to the test matrix of the build that I think few OpenJDK developers are interested in keeping up with (as in, your change worked fine in your environment, but broke when building with bootjdk N-2.). But for users, being able to bootstrap with an ancient jdk is definitely convenient. There are different classes of users here. OpenJDK developers who have to build OpenJDK all day long every day. OpenJDK binary distributors who set up automated build environments for producing binaries at regular intervals. OpenJDK users who download the source to build it once for their own system. These are the ones I can think of right now.
For the developer, downloading the latest released version of the product they are developing every 6 months can hardly be such a big hassle. Most I know create their own convenience scripts to wrap the build with the configure parameters they commonly use so can easily automate setting up builds for building various versions of JDK N.
For the binary distributor, again downloading the latest released version, or using the latest version you built yourself for the previous release can't be that hard. They are (hopefully) setting up automation and this is just part of it.
Left are the users, who just wants to download and build from source to use it. I agree that we should strive for making OpenJDK as easy as possible to build for such users. However, getting any recent version of OpenJDK is pretty easy. Since JDK 9 you can even get OpenJDK binaries directly from jdk.java.net for the common main platforms.
Other people on this thread complained about building on more esoteric platforms where they only had older JDKs available and general downloads aren't available. Yes, having to build each JDK in succession would then take time, but surely this is a one time cost if you just keep the binaries around for released versions of the JDK. Also, we try to maintain reasonable cross compiling support in the build system. I recommend leveraging that.
A good compromise might be to be able to bootstrap with the most recent LTS release (jdk 8) but it might already be too late for that. Reintroducing support for bootjdk 8 when building JDK 11 will not happen. We removed all the ugly workarounds needed for using a pre 9 bootjdk for 10 long ago.
Long term though, perhaps this idea would be reasonable given the limited life time of non LTS. The required bootjdk would essentially be EOL long long before the LTS JDK N is. On the other hand, that would still be true for any bootjdk N-1 compared to JDK N. So given that, I'm still against.
/Erik
On Wed, Mar 21, 2018 at 2:51 PM, Erik Joelsson <erik.joelsson at oracle.com <mailto:erik.joelsson at oracle.com>> wrote:
Now that JDK 10 has been officially released we can update the boot jdk requirement for JDK 11. Cross posting this to jdk-dev to raise awareness of this rather disruptive change. This patch changes the requirement on boot jdk version in configure (and updates the configuration that controls what JDK to use as boot in Oracle's internal build system). Webrev: http://cr.openjdk.java.net/~erikj/8200083/webrev.01/ <http://cr.openjdk.java.net/%7Eerikj/8200083/webrev.01/> Bug: https://bugs.openjdk.java.net/browse/JDK-8200083 <https://bugs.openjdk.java.net/browse/JDK-8200083> /Erik
- Previous message (by thread): RFR: JDK-8200083: Bump bootjdk requirement for JDK 11 to JDK 10
- Next message (by thread): RFR: JDK-8198652: Stop linking with -base:0x8000000 on Windows
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]