RFR: JDK-8151653: Hotspot build does not respect --enable-openjdk-only

David Holmes david.holmes at oracle.com
Mon Mar 14 01:22:05 UTC 2016

Hi Erik,

On 12/03/2016 2:31 AM, Erik Joelsson wrote:
> Hello,
> When building hotspot with closed sources present and configuring with
> --enable-openjdk-only, various closed parts are included in the build
> anyway, at least on Windows. This needs to be fixed in preparation for
> the new hotspot build for build output comparisons to be meaningful
> between the old and new.
> The major culprit here, which applies to all platforms, is the trace
> source generation. The base trace.xml uses XInclude to explicitly and
> unconditionally include closed xml files if present. I'm fixing this by
> introducing a closed version of trace.xml which includes the open and
> closed parts, while the open trace.xml only includes the open parts.

You've also done a significant amount of refactoring of that file and 
split it into three parts. It's hard to spot the actual functional 
differences in all that.

Given we have distinct directories from which we locate files it is a 
pity to introduce something like this:

  XML_DEPS += $(TraceAltSrcDir)/traceeventsclosed.xml

where traceevents.xml is now traceeventsclosed.xml. This "alt src" 
mechanism was supposed to abstract away the details of any particular 
alternative configuration so that we didn't hardcode "closed" all over 
the place. Other community members are supposed to be able to utilize 
these mechanisms for their own customized build environments.

> The rest of the changes are just for Windows, making sure the OPENJDK
> variable is propagated into the nmake build and making all conditionals
> on including closed source also check that variable.


The combination !openjdk && !exists "closed" should be an error.

As a meta-comment I think we've lost the plot somewhat with these "alt" 
locations and how we manage them. The Oracle "closed" variants should 
only be used when not trying to build OpenJDK (even if the files exist 
in a forest), but other custom implementations may work in conjunction 
with an OpenJDK build. To that end the "do nothing if building OpenJDK" 
should be located within the "alt" files themselves, not at the point of 
inclusion/use in the open files.


> Bug: https://bugs.openjdk.java.net/browse/JDK-8151653
> Webrev:
> http://cr.openjdk.java.net/~erikj/8151653/webrev.hotspot.01/index.html
> /Erik

More information about the hotspot-dev mailing list