[8u60] RFR: 8038189: Add cross-platform compact profiles support
David Holmes
david.holmes at oracle.com
Mon Dec 1 00:09:40 UTC 2014
Main bug is 8038189 but that is a closed bug, the open backport issue is:
https://bugs.openjdk.java.net/browse/JDK-8066200
Compact Profiles support was added in 8, but only for the Linux
platform. I've now generalized this support to all the other platforms.
This is an 8u only change, targetting 8u60, as soon as the jdk8u/dev
starts accepting things for 8u60.
The changes are not that extensive - mostly generalizing the lists and
accounting for different platforms putting files into different places
(jre/lib/<arch> vs jre/lib vs jre/bin). It isn't necessary to produce
detailed per-platform lists as files that don't exist simply don't get
copied; but when files are obviously platform specific then I add them
under suitable guards.
The biggest complexity comes from the debuginfo files, and in particular
unzipped debuginfo files. This accounts for the bulk of the changes in
profiles-includes.txt, as we try to identify the set of debug files that
might exist for each library (and OSX is the main complication due to
the .dSYM directory because the existing rules only copy files not
directories). Suggestions for reducing the duplicated patterns would be
appreciated.
Platform specific contents were determined in conjunction with
examination of what Jigsaw is using in JDK 9 for the base module.
I tested all the main platforms (Windows, Linux, Solaris and OSX) and
with/without zipping of debuginfo files. Note that Windows builds will
not work with unzipped debuginfo files due to 8025936, but I checked
that multiple debug info files were expanded into the right set of targets.
webrevs:
http://cr.openjdk.java.net/~dholmes/8038189/webrev.top/
make/Main.gmk:
- Remove the os-check that constrained profiles to linux
http://cr.openjdk.java.net/~dholmes/8038189/webrev.jdk/
make/CreateJars.gmk:
- Check for empty variables (Solaris doesn't like them)
- Fix # # comments
- Add explicit targets for the beanless classes with $ in them (the %
substitution doesn't work on all platforms when $ is also present)
make/Images.gmk
- Don't filter out server VM from compact profiles
make/Import.gmk
- Add Info.plist to the exported files (for unzipped debuginfo files -
this is a general fix not profiles specific so may warrant its own CR)
make/Profiles.gmk
- Remove linux-only comment
make/Tools.gmk
- Fix tool definitions to use $(PATH_SEP) and quote cp entries
make/profile-includes.txt
- Bulk of changes as described above
make/profile-rtjar-includes.txt
- Additional packages that exist on OSX only (but don't need to be
conditionally added)
- NOTE: if AIX or other platform add platform specific packages not
already included by an enclosing package, then they will also need to be
added
Thanks,
David
More information about the build-dev
mailing list