8007097: (profiles) Build needs test to ensure that profile definitions are updated

Alan Bateman Alan.Bateman at oracle.com
Tue Jan 29 10:39:18 PST 2013


One issue with the profiles build is that it's very fragile, in 
particular it's very easy for the definitions in 
profile-rtjar-include.txt to get out of sync with the code (especially 
as new features are coming new and things are moving around).

To help this, I'd like to run a simple tool in the profiles build that 
checks the dependencies to ensure that there aren't references to types 
that do not exist. This will ensure that the profiles build fails for a 
significant number of scenarios where updates to the profiles 
definitions will be needed.

The proposed changes are here:

http://cr.openjdk.java.net/~alanb/8007097/webrev/

A couple of things to note about the changes are:

1. To date we've been pushing the profiles work to jdk8/profile without 
formal review. That forest is mostly frozen now as David Holmes has 
gathered the changes into a staging forest with a view to pushing them 
to jdk8/build after they have been tested. This means these proposed 
changes might have to wait a bit until there is somewhere to push the 
changes.

2. There are a small number of references to types that do not exist, 
particularly in compact1 and compact2 because of references to Kerberos 
types in jsse.jar. The profiles build doesn't currently filter out 
classes from jsse.jar and there are implementation (not API) classes in 
jsse.jar that shouldn't really be present in compact1 and compact2. 
There are also a couple of other residual issues that will resolve 
themselves in time. To allow for these issues the tool has a 
refs.allowed file with the exceptions and the tool won't fail because of 
references that are in this file.

3. It's important that running this tool doesn't impact the build 
performance. In my local environment then it adds 4-5 seconds to the 
"profiles" build, no impact to images of course.

4. The updates to profile-rtjar-includes.txt can be ignored, they will 
need to go via a different bug ID.

5. RemoveMethods is moved in the webrev, it somehow ended up in the 
wrong directory (which is harmless as it compiled into the right 
location during the build).

That's mostly it, the main thing I need feedback on is the updates 
jdk/makefiles/*. I believe they are okay and have no impact whatsoever 
on non-profile builds.

-Alan.






More information about the build-infra-dev mailing list