RFR: 8136556 - Add the ability to perform static builds of MacOSX x64 binaries
Alan.Bateman at oracle.com
Fri Oct 16 06:28:43 UTC 2015
On 15/10/2015 19:07, Bob Vandette wrote:
> Please review this JDK 9 enhancement which allows a completely static build of the JDK for MacOSX x64 platforms.
> https://bugs.openjdk.java.net/browse/JDK-8136556 <https://bugs.openjdk.java.net/browse/JDK-8136556>
> The change involves:
> 1. Producing “.a” archives for each native libraries.
> 2. Ensuring that all symbols across the JDK native libraries are unique.
> 3. Changing the JNI_OnLoad and JNI_OnUnload (and the Agent equivalents) to have the each library name appended per
> the JNI specification.
> 4. Modifications to the launcher and launcher Makefiles to allow them to be linked with the java.base and jdk.jdwp.agent libraries
> and function.
> http://cr.openjdk.java.net/~bobv/8136556/webrev.00/ <http://cr.openjdk.java.net/~bobv/8136556/webrev.00/>
> http://cr.openjdk.java.net/~bobv/8136556/hotspot/webrev.00/ <http://cr.openjdk.java.net/~bobv/8136556/hotspot/webrev.00/>
> http://cr.openjdk.java.net/~bobv/8136556/jdk/webrev.00/ <http://cr.openjdk.java.net/~bobv/8136556/jdk/webrev.00/>
> Note: This change does not link every possible static library with the launchers. It is currently limited to
> the java.base and jdk.jdwp.agent libraries in order to allow for the TCK validation of the base module only.
I've skimmed through the patches and the DEF_* macros look okay. The
only one that doesn't look right is jawt.h/jawt.c. As jawt.h is shipped
by the JDK then I think the include of jni_util.h needs to move from
jawt.h to jawt.c.
If I read the changes correctly then not loading the
JavaRuntimeSupport.framework on Mac means the locale might not be right,
is that correct? Brent might remember this issue as we've often pondered
the implications of this disappearing in an Mac update.
Will there be continuous or at least regular builds setup so that build
breakages will be reported in a timely manner? It would be easy to
change something that breaks the static library build.
More information about the core-libs-dev