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

Christian Thalinger christian.thalinger at oracle.com
Thu Oct 15 22:30:08 UTC 2015

Copy-pasting the comment I made earlier (internally):

>> make/bsd/makefiles/gcc.make:
>> + ifeq ($(BUILD_STATIC),true)
>> Can we use the same name everywhere?
> We were trying to differentiate Makefile options from compile time conditionals.
> In one case it’s set to true and the other it’s defined.
> Are there no other cases where this is done?

I’m not sure but looking at make/excludeSrc.make all of them use the same name.

> On Oct 15, 2015, at 8:10 AM, Bob Vandette <bob.vandette at oracle.com> 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.
> Bob.

More information about the core-libs-dev mailing list