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

Bob Vandette bob.vandette at oracle.com
Mon Oct 19 18:09:21 UTC 2015

Here’s the updated set of webrev’s that address two issues:

1. Move jni_util.h out of jawt.h
2. Christians concern over using a single variable name for Makefile and C/C++ logic.

http://cr.openjdk.java.net/~bobv/8136556/webrev.01 <http://cr.openjdk.java.net/~bobv/8136556/webrev.01>
http://cr.openjdk.java.net/~bobv/8136556/hotspot/webrev.01 <http://cr.openjdk.java.net/~bobv/8136556/hotspot/webrev.01>
http://cr.openjdk.java.net/~bobv/8136556/jdk/webrev.01 <http://cr.openjdk.java.net/~bobv/8136556/jdk/webrev.01>


> 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.
> 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.
> -Alan

More information about the core-libs-dev mailing list