Index | Thread | Search

From:
kurt@intricatesoftware.com
Subject:
[update] devel/jdk/11 add sparc64 support
To:
ports@openbsd.org
Date:
Wed, 8 May 2024 02:32:33 +0000

Download raw body.

Thread
I've been chipping away at adding sparc64 support to jdk/11 for 
a while now. I made the push to finish it off and commit it 
upstream. I believe it is ready for release now.

okay?

Index: java.port.mk
===================================================================
RCS file: /cvs/ports/devel/jdk/java.port.mk,v
retrieving revision 1.43
diff -u -p -u -r1.43 java.port.mk
--- java.port.mk	11 Dec 2023 14:38:55 -0000	1.43
+++ java.port.mk	8 May 2024 02:19:22 -0000
@@ -27,7 +27,7 @@ MODJAVA_VER?=
     ERRORS+="with an optional + suffix."
 .endif
 
-.if ${MODJAVA_VER:S/+//} == "1.8"
+.if ${MODJAVA_VER:S/+//} == "1.8" || ${MODJAVA_VER:S/+//} == "11"
     ONLY_FOR_ARCHS?= i386 amd64 aarch64 sparc64
 .else
     ONLY_FOR_ARCHS?= i386 amd64 aarch64
Index: 11/Makefile
===================================================================
RCS file: /cvs/ports/devel/jdk/11/Makefile,v
retrieving revision 1.59
diff -u -p -u -r1.59 Makefile
--- 11/Makefile	1 May 2024 20:55:10 -0000	1.59
+++ 11/Makefile	8 May 2024 02:19:22 -0000
@@ -1,4 +1,4 @@
-ONLY_FOR_ARCHS=	i386 amd64 aarch64
+ONLY_FOR_ARCHS=	i386 amd64 aarch64 sparc64
 USE_WXNEEDED=	Yes
 USE_NOBTCFI=	Yes
 DPB_PROPERTIES=	parallel
@@ -6,7 +6,7 @@ DPB_PROPERTIES=	parallel
 COMMENT=	OpenJDK Software Development Kit v${VERSION_STR}
 BASE_VER=	11.0.23
 PATCH_VER=	9
-BSD_PORT_REL=	1
+BSD_PORT_REL=	2
 VERSION_STR=	${BASE_VER}+${PATCH_VER}-${BSD_PORT_REL}
 PACKAGE_VER=	${BASE_VER}.${PATCH_VER}.${BSD_PORT_REL}
 PKGNAME=	jdk-${PACKAGE_VER}
@@ -44,7 +44,8 @@ NO_TEST=	Yes
 SUPDISTFILES.boot =	\
 		openjdk-jdk11u-bootjdk-i386-${BOOTJDK_DATE}.tar.gz  \
 		openjdk-jdk11u-bootjdk-amd64-${BOOTJDK_DATE}.tar.gz \
-		openjdk-jdk11u-bootjdk-aarch64-${BOOTJDK_DATE}.tar.gz
+		openjdk-jdk11u-bootjdk-aarch64-${BOOTJDK_DATE}.tar.gz \
+		openjdk-jdk11u-bootjdk-sparc64-${BOOTJDK_DATE}.tar.gz
 
 COMPILER=	base-clang ports-gcc
 
@@ -59,7 +60,8 @@ BUILD_DEPENDS+=	jdk->=11v0,<12v0:devel/j
 BOOT_JDK=	${LOCALBASE}/jdk-11
 .else
 BOOT_JDK_DIST=	openjdk-jdk11u-bootjdk-${MACHINE_ARCH}-${BOOTJDK_DATE}.tar.gz
-.  if (${MACHINE_ARCH}==amd64) || (${MACHINE_ARCH}==i386) || (${MACHINE_ARCH}==aarch64)
+.  if (${MACHINE_ARCH}==amd64) || (${MACHINE_ARCH}==i386) || \
+     (${MACHINE_ARCH}==aarch64) || (${MACHINE_ARCH}==sparc64)
 DISTFILES.boot=	${BOOT_JDK_DIST}
 .  endif
 MAKE_ENV+=	LD_LIBRARY_PATH=${WRKDIR}/bootjdk-libs
@@ -111,6 +113,7 @@ CONFIGURE_ARGS=	DOT="" FLOCK="" GIT="" H
 		--with-giflib=system \
 		--with-giflib-include=${LOCALBASE}/include \
 		--with-giflib-lib=${LOCALBASE}/lib \
+		--with-stdc++lib=dynamic \
 		--disable-option-checking \
 		--disable-ccache \
 		--disable-hotspot-gtest \
@@ -150,7 +153,7 @@ PKG_ARGS+=	-Dci=1
 PKG_ARGS+=	-Dci=0
 .endif
 
-JVMARCH=	${MACHINE_ARCH:S/i386/x86/:S/amd64/x86_64/}
+JVMARCH=	${MACHINE_ARCH:S/i386/x86/:S/amd64/x86_64/:S/sparc64/sparcv9/}
 BUILDDIR=	${WRKDIST}/build/bsd-${JVMARCH}-normal-server-release
 IMAGEDIR=	${BUILDDIR}/images/jdk
 WRKTMP=		${WRKDIR}/tmp
Index: 11/distinfo
===================================================================
RCS file: /cvs/ports/devel/jdk/11/distinfo,v
retrieving revision 1.28
diff -u -p -u -r1.28 distinfo
--- 11/distinfo	1 May 2024 20:55:10 -0000	1.28
+++ 11/distinfo	8 May 2024 02:19:22 -0000
@@ -1,8 +1,10 @@
-SHA256 (jdk/jdk-11.0.23+9-1.tar.gz) = VhXVLxIwL0yRoA2jtMwMjS17paibiY3H5ET6CEOQBAA=
+SHA256 (jdk/jdk-11.0.23+9-2.tar.gz) = 3StfPuSAq7KH17NtXsn6AtPUoTQYKNss4nA1JYyOEf8=
 SHA256 (jdk/openjdk-jdk11u-bootjdk-aarch64-20240331.tar.gz) = 6skKydxPeLmFShPvL3bEFAhpQCZtABnsr3lZAQNLhBo=
 SHA256 (jdk/openjdk-jdk11u-bootjdk-amd64-20240331.tar.gz) = jL36o7kWGZ3V92z+P9iuwXjy7/sajPCO0hNQhmPpvfU=
 SHA256 (jdk/openjdk-jdk11u-bootjdk-i386-20240331.tar.gz) = B/UNqvHV7dTlo00uNzK1DZs1Pxftujj7O0ojDTi3sQ8=
-SIZE (jdk/jdk-11.0.23+9-1.tar.gz) = 116449887
+SHA256 (jdk/openjdk-jdk11u-bootjdk-sparc64-20240331.tar.gz) = eU7fzUu7xWUcrkacuv25/18rzC/w7grqOL1rW3FzwdM=
+SIZE (jdk/jdk-11.0.23+9-2.tar.gz) = 116467928
 SIZE (jdk/openjdk-jdk11u-bootjdk-aarch64-20240331.tar.gz) = 114820919
 SIZE (jdk/openjdk-jdk11u-bootjdk-amd64-20240331.tar.gz) = 115315575
 SIZE (jdk/openjdk-jdk11u-bootjdk-i386-20240331.tar.gz) = 104499540
+SIZE (jdk/openjdk-jdk11u-bootjdk-sparc64-20240331.tar.gz) = 107472498
Index: 11/patches/patch-src_hotspot_os_bsd_os_bsd_cpp
===================================================================
RCS file: 11/patches/patch-src_hotspot_os_bsd_os_bsd_cpp
diff -N 11/patches/patch-src_hotspot_os_bsd_os_bsd_cpp
--- 11/patches/patch-src_hotspot_os_bsd_os_bsd_cpp	2 May 2024 15:42:52 -0000	1.4
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,17 +0,0 @@
-Use the correct number of cpus when hw.smt=0
-
-Index: src/hotspot/os/bsd/os_bsd.cpp
---- src/hotspot/os/bsd/os_bsd.cpp.orig
-+++ src/hotspot/os/bsd/os_bsd.cpp
-@@ -327,7 +327,11 @@ void os::Bsd::initialize_system_info() {
- 
-   // get processors count via hw.ncpus sysctl
-   mib[0] = CTL_HW;
-+#if defined(HW_NCPUONLINE)
-+  mib[1] = HW_NCPUONLINE;
-+#else
-   mib[1] = HW_NCPU;
-+#endif
-   len = sizeof(cpu_val);
-   if (sysctl(mib, 2, &cpu_val, &len, NULL, 0) != -1 && cpu_val >= 1) {
-     assert(len == sizeof(cpu_val), "unexpected data size");
Index: 11/patches/patch-src_hotspot_share_gc_shared_gc_globals_hpp
===================================================================
RCS file: 11/patches/patch-src_hotspot_share_gc_shared_gc_globals_hpp
diff -N 11/patches/patch-src_hotspot_share_gc_shared_gc_globals_hpp
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ 11/patches/patch-src_hotspot_share_gc_shared_gc_globals_hpp	8 May 2024 02:19:22 -0000
@@ -0,0 +1,19 @@
+Reduce the number of sched_yield(2) before sleeping 10ms to work-around an
+issue on sparc64
+
+Index: src/hotspot/share/gc/shared/gc_globals.hpp
+--- src/hotspot/share/gc/shared/gc_globals.hpp.orig
++++ src/hotspot/share/gc/shared/gc_globals.hpp
+@@ -376,10 +376,10 @@
+   develop(uintx, PromotionFailureALotInterval, 5,                           \
+           "Total collections between promotion failures a lot")             \
+                                                                             \
+-  experimental(uintx, WorkStealingSleepMillis, 1,                           \
++  experimental(uintx, WorkStealingSleepMillis, 10,                          \
+           "Sleep time when sleep is used for yields")                       \
+                                                                             \
+-  experimental(uintx, WorkStealingYieldsBeforeSleep, 5000,                  \
++  experimental(uintx, WorkStealingYieldsBeforeSleep, 1,                     \
+           "Number of yields before a sleep is done during work stealing")   \
+                                                                             \
+   experimental(uintx, WorkStealingHardSpins, 4096,                          \