JDK-8025705

David Holmes david.holmes at oracle.com
Thu Apr 17 04:52:53 UTC 2014


Hi Keith,

src/closed is Oracle's "custom source" location (hotspot calls it 
alt_src). If we never saw src/closed in the makefiles, only 
CUSTOM_SRC_DIR, and guarded with an existence test for a specific 
directory/file, then that should address your problem. That would be a 
first step in moving things to the custom makefiles where they belong.

I'm opposed to the ORACLEJDK variable because I want to maintain the 
pressure to get this fixed properly. If we hack around it then it will 
never get cleaned up.

I see 68 uses of src/closed across 14 files in the JDK repo. That seems 
tractable.

I think there are three things to be done here:

1. Replace all uses of src/closed with CUSTOM_SRC_DIR (similar to 
CUSTOM_MAKE_DIR) which in turn is set via configure
2. Guard all uses of CUSTOM_SRC_DIR in open makefiles with an existence 
check
3. Move all uses of CUSTOM_SRC_DIR to our closed makefiles

Steps 1 and 2 can happen now. Step 3 is long term goal.

---

The other problem I see with the OPENJDK, ORACLE_JDK, OTHER_JDK approach 
is that you actually have to deal with the permutations. Something 
currently flagged for OPENJDK really means !ORACLE_JDK - or does it? It 
actually depends on what sources a given licensee has. Even for your 
custom build you might want some OPENJDK items and not others. I'm not 
sure there is a general solution, but using OPENJDK in combination with 
CUSTOM_SRC_DIR is, I think, more flexible than trying to define discrete 
variables that represent build "targets".

David

On 17/04/2014 1:31 PM, Keith McGuigan wrote:
> On Wed, Apr 16, 2014 at 9:15 PM, David Holmes <david.holmes at oracle.com
> <mailto:david.holmes at oracle.com>> wrote:
>
>     Hi Keith,
>
>
>     On 17/04/2014 7:13 AM, Keith McGuigan wrote:
>
>         Hello,
>
>         I just added a comment to this bug -- see there for the details,
>         but in
>         short I'd like to update a number of tests in the makefiles that
>         check
>         OPENJDK and change them to check instead of the inverse
>         definition of some
>         new variable, such as ORACLEJDK.
>
>
>     Please no! It's bad enough this is implicitly in the build without
>     making it explicit!
>
>
> As I mentioned, I agree that moving all this to closed makefiles is the
> best solution (and is something that we could push for even if we took
> this partial step), but doing at least this step would be a vast
> improvement from our point of view and is much easier to implement,
> especially for someone like me who cannot do the make/closed refactoring.
>
>     Would file existence tests suffice? There should be a CUSTOM_SRC
>     variable for src/closed as there is CUSTOM_MAKE for make/closed.
>
>
> It's not really feasible for the jdk makefiles.  Almost each location
> where there is an OPENJDK test, when it is discovered that this isn't
> OpenJDK, it ends up referring to files in src/closed (which for us don't
> exist).  In Hotspot it's only a few makefiles, so not too bad there, but
> jdk is a different story.
>
> But really, there's three situations here, OpenJDK, OracleJDK, and
> OtherJDK/custom, which can't be encoded using one boolean makefile
> variable.  We really need at least one more here.  Why is ORACLEJDK so
> abhorent?
>
>         This would simply non-OpenJDK (i.e.,
>         src/closed builds), non-Oracle builds for those who are making
>         their own
>         distributions using the src/closed mechanism.  As you can guess,
>         that is
>         something we are doing here at Twitter :)
>
>
>     Hopefully you use src/custom (or whatever) not src/closed, as
>     otherwise there's no way to tell the difference between our custom
>     sources and yours.
>
>
> The makefiles are already setup to use src/closed, so really that's the
> most convenient way to add augmented sources to the build.  We'd very
> much like to avoid changing mainline code to reduce the
> maintenance/merge costs when things change.  I'm not sure it would help
> even if we did use a custom directory instead of 'closed' though --
> unless we went ahead and duplicated all of the 'closed' logic for
> 'custom' (which again, would incur maintenance costs and is not
> generally good engineering practice).
>
> --
> - Keith


More information about the build-infra-dev mailing list