[RFR] [11u] JDK-8232748: "Build static versions of certain JDK libraries"

Severin Gehwolf sgehwolf at redhat.com
Thu Feb 27 14:43:34 UTC 2020


Hi Andrew,

On Thu, 2020-02-27 at 04:52 +0000, Andrew Hughes wrote:
> Bug: https://bugs.openjdk.java.net/browse/JDK-8232748
> Webrev: https://cr.openjdk.java.net/~andrew/openjdk11/8232748/webrev.01/
> 
> This patch adds targets to the build so that static versions of the JDK
> native libraries can be built, using static-libs-image. Such static
> versions of the libraries are required for consumption by Graal.
> 
> With JDK-8210459 now in 11u, this is a largely clean backport, aside
> from some context changes, due to additional targets (JCov, JMH) being
> present in trunk:
> 
> * In make/Bundles.gmk, 11u does not have jcov-bundles
> * In make/Main.gmk, 11u does not have jcov-image or jcov-bundles
> * In make/autoconf/spec.gmk.in, 11u does not have JMH_CORE_JAR, etc or
> JCOV_BUNDLE_NAME.
> * In make/conf/jib-profiles.js, the dependencies list in 11u doesn't
> include jmh and jcov.
> 
> Building the new target, static-libs-image, succeeded. This should have
> no effect on other targets.

Unfortunately this patch doesn't work. While a build of static-libs-
image succeeds, it doesn't create the image in build/<config-
name>/images. Expected is this:

$ find build/linux-x86_64-normal-server-release/images/static-libs/
build/linux-x86_64-normal-server-release/images/static-libs/
build/linux-x86_64-normal-server-release/images/static-libs/lib
build/linux-x86_64-normal-server-release/images/static-libs/lib/libj2pkcs11.a
build/linux-x86_64-normal-server-release/images/static-libs/lib/libj2pcsc.a
build/linux-x86_64-normal-server-release/images/static-libs/lib/libnio.a
build/linux-x86_64-normal-server-release/images/static-libs/lib/libprefs.a
build/linux-x86_64-normal-server-release/images/static-libs/lib/libjava.a
build/linux-x86_64-normal-server-release/images/static-libs/lib/libjli.a
build/linux-x86_64-normal-server-release/images/static-libs/lib/libnet.a
build/linux-x86_64-normal-server-release/images/static-libs/lib/libjimage.a
build/linux-x86_64-normal-server-release/images/static-libs/lib/libjaas.a
build/linux-x86_64-normal-server-release/images/static-libs/lib/libfdlibm.a
build/linux-x86_64-normal-server-release/images/static-libs/lib/libj2gss.a
build/linux-x86_64-normal-server-release/images/static-libs/lib/libsunec.a
build/linux-x86_64-normal-server-release/images/static-libs/lib/libjsig.a
build/linux-x86_64-normal-server-release/images/static-libs/lib/libextnet.a
build/linux-x86_64-normal-server-release/images/static-libs/lib/libverify.a
build/linux-x86_64-normal-server-release/images/static-libs/lib/libzip.a

The reason for this is that FindFiles isn't available in JDK 11u. I had
to do these modifications to your patch to make it work:

diff --git a/make/Bundles.gmk b/make/Bundles.gmk
--- a/make/Bundles.gmk
+++ b/make/Bundles.gmk
@@ -367,7 +367,7 @@
 ################################################################################
 
 ifneq ($(filter static-libs-bundles, $(MAKECMDGOALS)), )
-  STATIC_LIBS_BUNDLE_FILES := $(call FindFiles, $(STATIC_LIBS_IMAGE_DIR))
+  STATIC_LIBS_BUNDLE_FILES := $(shell $(FIND) $(STATIC_LIBS_IMAGE_DIR))
 
   ifeq ($(OPENJDK_TARGET_OS)-$(DEBUG_LEVEL), macosx-release)
     STATIC_LIBS_BUNDLE_SUBDIR := $(JDK_MACOSX_CONTENTS_SUBDIR)/Home
diff --git a/make/StaticLibsImage.gmk b/make/StaticLibsImage.gmk
--- a/make/StaticLibsImage.gmk
+++ b/make/StaticLibsImage.gmk
@@ -42,7 +42,7 @@
       SRC := $(SUPPORT_OUTPUTDIR)/native/$m, \
       DEST := $(STATIC_LIBS_IMAGE_DIR)/lib, \
       FILES := $(filter %$(STATIC_LIBRARY_SUFFIX), \
-          $(call FindFiles, $(SUPPORT_OUTPUTDIR)/native/$m/*/static)), \
+          $(shell $(FIND) $(SUPPORT_OUTPUTDIR)/native/$m/*/static)), \
   )) \
   $(eval TARGETS += $$(COPY_STATIC_LIBS_$m)) \
 )

This uses FIND directly, but there ought to be a (convoluted?) way to
use CacheFind instead of FindFiles in 11u. Maybe build-dev folks could
help there?

Thanks,
Severin



More information about the jdk-updates-dev mailing list