This patch contains a set of changes to improve static builds. They will pave 
the way for implementing a full static-only java launcher. The changes here 
will:

1) Make sure non-exported symbols are made local in the static libraries. This 
means that the risk of symbol conflict is the same for static libraries as for 
dynamic libraries (i.e. in practice zero, as long as a consistent naming scheme 
is used for exported functions).

2) Remove the work-arounds to exclude duplicated symbols.

3) Fix some code in hotspot and the JDK libraries that did not work properly 
with a static java launcher.

The latter fixes are copied from or inspired by the work done by @jianglizhou 
and her team as part of the Project Leyden [Hermetic 
Java](https://github.com/openjdk/leyden/tree/hermetic-java-runtime).

-------------

Commit messages:
 - Merge branch 'master' into static-linking-progress
 - Move the exported JVM_IsStaticallyLinked to a better location
 - Use runtime lookup of static vs dynamic instead of #ifdef STATIC_BUILD
 - Copy fix for init_system_properties_values on linux
 - Make sure we do not try to build static libraries on Windows
 - 8333268: Fixes for static build

Changes: https://git.openjdk.org/jdk/pull/19478/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=19478&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8333268
  Stats: 440 lines in 28 files changed: 203 ins; 74 del; 163 mod
  Patch: https://git.openjdk.org/jdk/pull/19478.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/19478/head:pull/19478

PR: https://git.openjdk.org/jdk/pull/19478

Reply via email to