RFR: 8136556 - Add the ability to perform static builds of MacOSX x64 binaries

Bob Vandette bob.vandette at oracle.com
Fri Oct 16 15:11:23 UTC 2015

> On Oct 16, 2015, at 2:28 AM, Alan Bateman <Alan.Bateman at oracle.com> wrote:
> 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.
Ok, I’ll take care of that.
> 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.
The implementation falls back to the getPosixLocale function when the Framework doesn’t exist.
> 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.

I will be setting up a period build on a Mac I’ve got running a Hudson server in our lab until we can 
get JPRT support for this configuration.


> -Alan

More information about the core-libs-dev mailing list