On Thu, 30 May 2024 15:02:38 GMT, Magnus Ihse Bursie <[email protected]> wrote:
> If the newly built JDK fails to run ("DOA"), we will get a strange error
> message about jdk.compiler-gendata errors from make. The reason is not at all
> obvious.
>
> Instead, we should make a simple check that we can actually use the new JDK
> before starting to use it for the first time, and report clearly to the user
> if this is not the case.
This doesn't look right to me. Why is the verification checking `javac`
specifically? I would have thought checking `java` would be the natural
launcher of choice. We use the buildjdk for multiple things, and the
jdk.compiler/javadoc gendata targets aren't guaranteed to be the first ones to
run. There is generate-link-opt-data, buildtools-modules as well as any jmod
target.
Looking deeper into this, it seems we introduced the target `runnable-buildjdk`
at some point, but forgot to update a bunch of other places to just use this
target so we have this pattern of checking CREATE_BUILDJDK and
CREATING_BUILDJDK repeated for multiple different targets which should probably
just be using `runnable-buildjdk` as prereq. The `runnable-buildjdk` target
would also be the right place to inject this verification, but for that to
work, we need to fix all the other targets that should be depending on it.
-------------
PR Review: https://git.openjdk.org/jdk/pull/19484#pullrequestreview-2088797438