RFR: 8016780: (xs) README-builds.html misses crucial requirement on bootstrap JDK
david.holmes at oracle.com
Tue Jun 18 06:28:53 UTC 2013
On 18/06/2013 4:02 PM, Jonathan Gibbons wrote:
> The only problem with using N is that you don't know whether you have
> broken building with N-1. Therefore the general recommendation for most
> people should be to always use N-1. I think Stuart is just searching
> for ways to make people aware that using N-1 is "the right thing to do".
There was certainly an issue here that caused a problem because the code
used a JDK8 API that was not available when the source was compiled with
JDK7. And sure compiling with 7u boot JDK would have caught that.
But we have lots of code that only compiles with JDK8 and that is the
way we want it, else JDK8 could not take advantage of any new language
features or APIs in JDK8. The real problem here was that the code in
question is code that is not built in a way that allows it to use the
latest language features or APIs. In which case perhaps the real fix is
to use build commands that enforce this restriction ie by using -source
7 -target 7 ?
> -- Jon
> On 06/17/2013 10:04 PM, David Holmes wrote:
>> I thought the only rule was "must be buildable by N-1", not that you
>> must not try to use N!
>> Can the problem preventing a build using JDK8 as the boot JDK not be
>> corrected? I'm assuming it is one of the more unusual parts of the
>> build where we mess with bootclasspath etc?
>> On 18/06/2013 10:21 AM, Stuart Marks wrote:
>>> On 6/17/13 4:02 PM, Kelly O'Hair wrote:
>>>> Rule #1 Nobody reads the README
>>>> Rule #2 When things go wrong, blame the README
>>>> I of course have no objection to the change, however, I'm not
>>>> convinced it will
>>>> help much the next time someone runs into this. :^(
>>> Hi Kelly! You still read this stuff here? :-)
>>> Yeah, I have no illusions that changing the README will prevent many, if
>>> any, future occurrences of this problem. However, we had an internal
>>> discussion on this incident where the N-1 rule was asserted. There was
>>> no dispute about the rule, but I went off to find where it was
>>> documented, and found only the fairly weak statement in the README. So,
>>> at the very least, that ought to be fixed.
>>> A stronger step would be to modify configure to check the version of the
>>> boot JDK and to complain if it doesn't match N-1. Or perhaps even N-1
>>> and update >= 7. What do you think? I was considering filing an RFE.
>>> A restriction in configure would probably be more effective at
>>> preventing these kinds of errors.
More information about the build-dev