RFR: 8307194: Enhance static-libs-image [v6]
Jiangli Zhou
jiangli at openjdk.org
Fri May 5 16:45:35 UTC 2023
> This PR is branched from the makefile changes for https://bugs.openjdk.org/browse/JDK-8303796 and contains the following for handling the JDK/VM static libraries:
>
> - Create libjvm.a together with other JDK static libraries when building 'static-libs-image' (or 'static-libs-bundles') target, include it in 'images/static-libs/lib';
> - For libjvm.a specifically, exclude operator_new.o;
> - Filter out "external" .o files (those are the .o files included from a different JDK library and needed when creating the .so shared library only) from .a libraries; That's to avoid linker errors due to the duplicate symbols problems from the related .o files;
> - Handle long arguments case for static build in make/common/NativeCompilation.gmk;
> - Address @erikj79's comment in https://github.com/openjdk/jdk/pull/13709#discussion_r1180750185 for LIBJLI_STATIC_EXCLUDE_OBJS;
Jiangli Zhou has updated the pull request incrementally with one additional commit since the last revision:
- Separate building libjvm.a from static-libs-image target, based on input from @jerboaa and @olpaw:
- Add a new java-static-libs-image target in Main.gmk for creating the JDK .a static libraries and libjvm.a super set. The static libraries are placed in images/static-libs/lib. The existing static-libs-image target is not affected and will not include hotspot libjvm.a.
- Add java-static-libs-bundles target in Bundles.gmk. The created .tar.gz bundle contains JDK .a static libraries and hotspot libjvm.a.
- Add StaticJvmLibsImage.gmk for placing libjvm.a into images/static-libs/lib.
- Further cleanup after incorporating erikj79's suggestion to only build libjvm.a for $(JVM_VARIANT_MAIN) for now:
- Change HOTSPOT_VARIANT_STATIC_LIBS_TARGETS to HOTSPOT_VARIANT_MAIN_STATIC_LIBS_TARGETS in Main.gmk.
- Change hotspot-$v-static-libs to hotspot-$(JVM_VARIANT_MAIN)-static-libs in Main.gmk.
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/13768/files
- new: https://git.openjdk.org/jdk/pull/13768/files/84861990..e49d7b4e
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=13768&range=05
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=13768&range=04-05
Stats: 78 lines in 4 files changed: 64 ins; 8 del; 6 mod
Patch: https://git.openjdk.org/jdk/pull/13768.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/13768/head:pull/13768
PR: https://git.openjdk.org/jdk/pull/13768
More information about the build-dev
mailing list