As we discussed in the last meeting, we reset the ports tree and began from scratch, even though this change involves porting all the packages. Starting small and growing gradually, this approach will reduce build times and consequently lower energy consumption in a world affected by climate change. We will add new ports as users needs arise; ok h3artbl33d@

This commit is contained in:
purplerain 2024-05-26 03:08:12 +00:00
parent 83a0aaf92c
commit 9a3af55370
Signed by: purplerain
GPG key ID: F42C07F07E2E35B7
59377 changed files with 98673 additions and 4712155 deletions

View file

@ -5,18 +5,17 @@ DPB_PROPERTIES= parallel
COMMENT= OpenJDK Software Development Kit v${V}
BASE_VER= 1.8.0
UPDATE_VER= 382
BUILD_VER= b05
UPDATE_VER= 412
BUILD_VER= b08
BSD_PORT_REL= 1
V= ${BASE_VER}.${UPDATE_VER}.${BUILD_VER}.${BSD_PORT_REL}
PKGNAME= jdk-${V}
PKGSTEM= jdk-${BASE_VER}
EPOCH= 0
REVISION= 1
DIST_SUBDIR= jdk
DISTNAME= jdk8u${UPDATE_VER}-${BUILD_VER}.${BSD_PORT_REL}
BOOTJDK_DATE= 20230629
BOOTJDK_DATE= 20240331
WRKDIST= ${WRKDIR}/jdk8u-jdk8u${UPDATE_VER}-${BUILD_VER}.${BSD_PORT_REL}
CATEGORIES= devel/jdk java
@ -27,8 +26,8 @@ FLAVOR?=
HOMEPAGE= https://openjdk.java.net/
SITES= https://github.com/battleblow/jdk8u/archive/
SITES.boot= https://spacehopper.org/mirrors/ \
http://www.intricatesoftware.com/distfiles/
SITES.boot= http://www.intricatesoftware.com/distfiles/ \
https://spacehopper.org/mirrors/
MAINTAINER= Kurt Miller <kurt@openbsd.org>
@ -52,7 +51,7 @@ COMPILER= base-clang base-gcc
.if ${FLAVOR:Mnative_bootstrap}
INSTALLED!= (pkg_info -qe "jdk->=1.8.0.00v0,<1.9v0" && echo yes) || echo no
. if ${INSTALLED:L} != "yes"
ERRORS += "Fatal: This flavor requires an installed 1.8.0.00v0 or greater jdk package"
ERRORS+= "Fatal: This flavor requires an installed 1.8v0 or greater jdk package"
. endif
BUILD_DEPENDS+= jdk->=1.8.0.00v0,<1.9v0:devel/jdk/1.8
BOOT_JDK= ${LOCALBASE}/jdk-1.8.0
@ -75,7 +74,8 @@ BUILD_DEPENDS+= archivers/zip \
LIB_DEPENDS= converters/libiconv \
graphics/giflib
WANTLIB= X11 Xext Xi Xrender Xtst c freetype gif iconv m pthread ${COMPILER_LIBCXX} z
WANTLIB= X11 Xext Xi Xrender Xtst c freetype gif iconv m pthread \
${COMPILER_LIBCXX} z
USE_GMAKE= Yes
GMAKE= ${LOCALBASE}/bin/gmake
@ -126,7 +126,9 @@ LIBARCH= ${MACHINE_ARCH:S/sparc64/sparcv9/}
BUILDDIR= ${WRKDIST}/build/bsd-${JVMARCH}-normal-server-release/images
JDKIMAGEDIR= ${BUILDDIR}/j2sdk-image
WRKTMP= ${WRKDIR}/tmp
BOOTLIB= ${WRKTMP}/bootjdk/jre/lib
ALL_TARGET= images
SUBST_VARS= JDKHOME LIBARCH
post-extract:
@ -137,7 +139,7 @@ post-build:
do-install:
${INSTALL_DATA_DIR} ${PREFIX}/${JDKHOME}
cd ${JDKIMAGEDIR} && tar -cf - * | tar -C ${PREFIX}/${JDKHOME} -xf -
cd ${JDKIMAGEDIR} && tar -cf - * | tar -C ${PREFIX}/${JDKHOME} -xf -
# The bootjdk is the jdk image with some parts deleted
# and a copy of the system shared libs needed to run it.
@ -150,7 +152,7 @@ build-bootjdk: build
@${_PBUILD} mkdir -p ${WRKTMP}/bootjdk-libs
@cd ${JDKIMAGEDIR} && \
tar -cf - * | \
${_PBUILD} tar -C ${WRKTMP}/bootjdk -xf -
${_PBUILD} tar -C ${WRKTMP}/bootjdk -xf -
@cd ${WRKTMP}/bootjdk && \
${_PBUILD} rm -rf demo sample
@cd ${WRKTMP}/bootjdk && \
@ -161,7 +163,7 @@ build-bootjdk: build
@find ${WRKTMP}/bootjdk/jre/lib ${WRKTMP}/bootjdk/jre/bin \
-exec sh -c 'file {} | grep -q ELF && \
${_PBUILD} strip -S {}' \;
@LD_LIBRARY_PATH="${WRKTMP}/bootjdk/jre/lib/${LIBARCH}:${WRKTMP}/bootjdk/jre/lib/${LIBARCH}/server" \
@LD_LIBRARY_PATH="${BOOTLIB}/${LIBARCH}:${BOOTLIB}/${LIBARCH}/server" \
find ${WRKTMP}/bootjdk -type f -exec ldd {} + 2>/dev/null | \
grep rlib | cut -d"/" -f 2-20 | sort -u | grep -v "\.so$$" | \
xargs -I % ${_PBUILD} cp /% ${WRKTMP}/bootjdk-libs

View file

@ -1,10 +1,10 @@
SHA256 (jdk/jdk8u382-b05.1.tar.gz) = pOBSD6cHkqbI6iRSwm30QGdIJmTd4qmB6exQlGLb6nU=
SHA256 (jdk/openjdk-jdk8u-bootjdk-aarch64-20230629.tar.gz) = jwblbahhiItfiJaLSayi9hLJAWz02sWk/GjajZeDNfE=
SHA256 (jdk/openjdk-jdk8u-bootjdk-amd64-20230629.tar.gz) = otjbIFIxZX/ObPueF/TRnS3Kxsvr0oVSx9HI+gL34B0=
SHA256 (jdk/openjdk-jdk8u-bootjdk-i386-20230629.tar.gz) = C0lRAIZWbyD0+6wYswcFyel+6DBpeF7pMGhqsLwY50k=
SHA256 (jdk/openjdk-jdk8u-bootjdk-sparc64-20230629.tar.gz) = RO3wtgB8NrWhCJQbRCIYP+0PtDrETlT4PcfdQLy4PTc=
SIZE (jdk/jdk8u382-b05.1.tar.gz) = 93689861
SIZE (jdk/openjdk-jdk8u-bootjdk-aarch64-20230629.tar.gz) = 107390945
SIZE (jdk/openjdk-jdk8u-bootjdk-amd64-20230629.tar.gz) = 108012513
SIZE (jdk/openjdk-jdk8u-bootjdk-i386-20230629.tar.gz) = 103675294
SIZE (jdk/openjdk-jdk8u-bootjdk-sparc64-20230629.tar.gz) = 107573452
SHA256 (jdk/jdk8u412-b08.1.tar.gz) = sT9YKjVLi3orPZj7ptMBrn3sT/VzuKnn7klgV25Hg4k=
SHA256 (jdk/openjdk-jdk8u-bootjdk-aarch64-20240331.tar.gz) = c97g4lcUdCuhf0p+Bkl/RTrsrcubF833EBiW0Qvf6iY=
SHA256 (jdk/openjdk-jdk8u-bootjdk-amd64-20240331.tar.gz) = HaL2y3Fbd1oQjo7FK1/5gQUQGkCrBEU8xujly7E7/Xg=
SHA256 (jdk/openjdk-jdk8u-bootjdk-i386-20240331.tar.gz) = xyxPOeWLY6THt/lJTDNxU9SJmuYD4yoKwOnj7QTx8l8=
SHA256 (jdk/openjdk-jdk8u-bootjdk-sparc64-20240331.tar.gz) = fFaG5FMLq6GgZftwe3FqWEFBNrsp6cy1mwiVLo7vmWE=
SIZE (jdk/jdk8u412-b08.1.tar.gz) = 93596695
SIZE (jdk/openjdk-jdk8u-bootjdk-aarch64-20240331.tar.gz) = 108519604
SIZE (jdk/openjdk-jdk8u-bootjdk-amd64-20240331.tar.gz) = 108411393
SIZE (jdk/openjdk-jdk8u-bootjdk-i386-20240331.tar.gz) = 104141193
SIZE (jdk/openjdk-jdk8u-bootjdk-sparc64-20240331.tar.gz) = 107630630

View file

@ -1,21 +0,0 @@
Index: common/autoconf/generated-configure.sh
--- common/autoconf/generated-configure.sh.orig
+++ common/autoconf/generated-configure.sh
@@ -41217,7 +41217,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if ld requires -z wxneeded" >&5
$as_echo_n "checking if ld requires -z wxneeded... " >&6; }
PUSHED_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -Wl,-z,wxneeded"
+ LDFLAGS="$LDFLAGS -Wl,-z,wxneeded -Wl,-z,nobtcfi"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int main() { }
@@ -41227,7 +41227,7 @@ if ac_fn_cxx_try_link "$LINENO"; then :
if $READELF -l conftest$ac_exeext | $GREP OPENBSD_WXNEED > /dev/null; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
- LDFLAGS_JDK="${LDFLAGS_JDK} -Wl,-z,wxneeded"
+ LDFLAGS_JDK="${LDFLAGS_JDK} -Wl,-z,wxneeded -Wl,-z,nobtcfi"
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

View file

@ -1,18 +0,0 @@
Index: common/autoconf/toolchain.m4
--- common/autoconf/toolchain.m4.orig
+++ common/autoconf/toolchain.m4
@@ -855,12 +855,12 @@ AC_DEFUN_ONCE([TOOLCHAIN_MISC_CHECKS],
if test "`uname -s`" = "OpenBSD"; then
AC_MSG_CHECKING([if ld requires -z wxneeded])
PUSHED_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -Wl,-z,wxneeded"
+ LDFLAGS="$LDFLAGS -Wl,-z,wxneeded -Wl,-z,nobtcfi"
AC_LINK_IFELSE([AC_LANG_SOURCE([[int main() { }]])],
[
if $READELF -l conftest$ac_exeext | $GREP OPENBSD_WXNEED > /dev/null; then
AC_MSG_RESULT([yes])
- LDFLAGS_JDK="${LDFLAGS_JDK} -Wl,-z,wxneeded"
+ LDFLAGS_JDK="${LDFLAGS_JDK} -Wl,-z,wxneeded -Wl,-z,nobtcfi"
else
AC_MSG_RESULT([yes])
fi

View file

@ -1,13 +0,0 @@
Reading from .text was not the intent here.
Index: hotspot/src/cpu/aarch64/vm/templateInterpreter_aarch64.cpp
--- hotspot/src/cpu/aarch64/vm/templateInterpreter_aarch64.cpp.orig
+++ hotspot/src/cpu/aarch64/vm/templateInterpreter_aarch64.cpp
@@ -1054,7 +1054,6 @@ address InterpreterGenerator::generate_native_entry(bo
__ ldr(r10, Address(rmethod, Method::native_function_offset()));
address unsatisfied = (SharedRuntime::native_method_throw_unsatisfied_link_error_entry());
__ mov(rscratch2, unsatisfied);
- __ ldr(rscratch2, rscratch2);
__ cmp(r10, rscratch2);
__ br(Assembler::NE, L);
__ call_VM(noreg,

View file

@ -1,29 +1,17 @@
Remove syscall(2) use.
Add support for detecting the primordial thread.
Use the correct number of cpus when hw.smt=0
Index: hotspot/src/os/bsd/vm/os_bsd.cpp
--- hotspot/src/os/bsd/vm/os_bsd.cpp.orig
+++ hotspot/src/os/bsd/vm/os_bsd.cpp
@@ -1285,7 +1285,7 @@ pid_t os::Bsd::gettid() {
return (pid_t)tid;
#endif
#elif defined(__OpenBSD__)
- retval = syscall(SYS_getthrid);
+ return ::getthrid();
#elif defined(__NetBSD__)
retval = (pid_t) _lwp_self();
#endif
@@ -4590,6 +4590,12 @@ void os::pause() {
"Could not open pause file '%s', continuing immediately.\n", filename);
}
}
+
+#ifdef __OpenBSD__
+bool os::is_primordial_thread() {
+ return (pthread_main_np() == 1);
+}
@@ -299,7 +299,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
// Refer to the comments in os_solaris.cpp park-unpark.
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");

View file

@ -1,24 +1,21 @@
Sync changes with os_linux_sparc.cpp
Support setting thread stack sizes on sparc64
Fix implicit FPE exceptions on sparc64
Index: hotspot/src/os_cpu/bsd_sparc/vm/os_bsd_sparc.cpp
--- hotspot/src/os_cpu/bsd_sparc/vm/os_bsd_sparc.cpp.orig
+++ hotspot/src/os_cpu/bsd_sparc/vm/os_bsd_sparc.cpp
@@ -618,7 +618,7 @@ JVM_handle_bsd_signal(int sig,
return 1;
}
@@ -608,6 +608,15 @@ JVM_handle_bsd_signal(int sig,
pc = address(SIG_PC(uc));
npc = address(SIG_NPC(uc));
- if (checkPrefetch(uc, pc)) {
+ if ((sig == SIGSEGV || sig == SIGBUS) && checkPrefetch(uc, pc)) {
return 1;
}
@@ -740,7 +740,7 @@ bool os::is_allocatable(size_t bytes) {
size_t os::Bsd::min_stack_allowed = 128 * K;
-bool os::Bsd::supports_variable_stack_size() { return false; }
+bool os::Bsd::supports_variable_stack_size() { return true; }
// return default stack size for thr_type
size_t os::Bsd::default_stack_size(os::ThreadType thr_type) {
+#ifdef __OpenBSD__
+ // the kernel advances ucontext_t pc and npc one instruction for FPE signals
+ // See /sys/arch/sparc64/sparc64/trap.c
+ if (sig == SIGFPE) {
+ pc -= 4;
+ npc -= 4;
+ }
+#endif
+
// Check to see if we caught the safepoint code in the
// process of write protecting the memory serialization page.
// It write enables the page immediately after protecting it

View file

@ -1,14 +0,0 @@
Add support for detecting the primordial thread
Index: hotspot/src/share/vm/runtime/os.hpp
--- hotspot/src/share/vm/runtime/os.hpp.orig
+++ hotspot/src/share/vm/runtime/os.hpp
@@ -468,7 +468,7 @@ class os: AllStatic {
// need special-case handling of the primordial thread if it attaches
// to the VM.
static bool is_primordial_thread(void)
-#if defined(_WINDOWS) || defined(BSD)
+#if defined(_WINDOWS) || (defined(BSD) && !defined(__OpenBSD__))
// No way to identify the primordial thread.
{ return false; }
#else

View file

@ -1,19 +0,0 @@
Disable stack guarding on the primordial thread because its protections
are immutable. Note this will interfere with the primordial thread throwing
StackOverflowError exceptions.
Index: hotspot/src/share/vm/runtime/thread.cpp
--- hotspot/src/share/vm/runtime/thread.cpp.orig
+++ hotspot/src/share/vm/runtime/thread.cpp
@@ -2494,7 +2494,11 @@ void JavaThread::java_resume() {
void JavaThread::create_stack_guard_pages() {
if (!os::uses_stack_guard_pages() ||
_stack_guard_state != stack_guard_unused ||
+#ifdef __OpenBSD__
+ os::is_primordial_thread()) {
+#else
(DisablePrimordialThreadGuardPages && os::is_primordial_thread())) {
+#endif
if (TraceThreadEvents) {
tty->print_cr("Stack guard page creation for thread "
UINTX_FORMAT " disabled", os::current_thread_id());

View file

@ -1,23 +1,22 @@
ONLY_FOR_ARCHS= i386 amd64 aarch64
ONLY_FOR_ARCHS= i386 amd64 aarch64 sparc64
USE_WXNEEDED= Yes
USE_NOBTCFI= Yes
DPB_PROPERTIES= parallel
COMMENT= OpenJDK Software Development Kit v${VERSION_STR}
BASE_VER= 11.0.20
PATCH_VER= 8
BSD_PORT_REL= 1
BASE_VER= 11.0.23
PATCH_VER= 9
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}
PKGSTEM= jdk-11
EPOCH= 0
REVISION= 0
DIST_SUBDIR= jdk
DISTNAME= jdk-${VERSION_STR}
WRKDIST= ${WRKDIR}/jdk11u-jdk-${BASE_VER}-${PATCH_VER}-${BSD_PORT_REL}
BOOTJDK_DATE= 20230630
BOOTJDK_DATE= 20240331
CATEGORIES= devel/jdk java
@ -27,8 +26,8 @@ FLAVOR?=
HOMEPAGE= http://openjdk.java.net/
SITES= https://github.com/battleblow/jdk11u/archive/
SITES.boot= https://spacehopper.org/mirrors/ \
http://www.intricatesoftware.com/distfiles/
SITES.boot= http://www.intricatesoftware.com/distfiles/ \
https://spacehopper.org/mirrors/
MAINTAINER= Kurt Miller <kurt@openbsd.org>
@ -45,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
@ -60,7 +60,8 @@ BUILD_DEPENDS+= jdk->=11v0,<12v0:devel/jdk/11
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
@ -112,6 +113,7 @@ CONFIGURE_ARGS= DOT="" FLOCK="" GIT="" HG="" PANDOC="" \
--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 \
@ -151,11 +153,11 @@ 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
post-extract:
sed -i "s|#!/bin/bash|#!\${LOCALBASE}/bin/bash|" ${WRKDIST}/configure
chmod +x ${WRKDIST}/configure
@ -174,7 +176,7 @@ post-build:
do-install:
${INSTALL_DATA_DIR} ${PREFIX}/${PKGSTEM}
cd ${IMAGEDIR} && tar -cf - * | tar -C ${PREFIX}/${PKGSTEM} -xf -
cd ${IMAGEDIR} && tar -cf - * | tar -C ${PREFIX}/${PKGSTEM} -xf -
# The bootjdk is the jdk image with some parts deleted
# and a copy of the system shared libs needed to run it.
@ -187,17 +189,19 @@ build-bootjdk: build
@${_PBUILD} mkdir -p ${WRKTMP}/bootjdk-libs
@cd ${IMAGEDIR} && \
tar -cf - * | \
${_PBUILD} tar -C ${WRKTMP}/bootjdk -xf -
${_PBUILD} tar -C ${WRKTMP}/bootjdk -xf -
@cd ${WRKTMP}/bootjdk && \
${_PBUILD} rm -rf demo jmods man sample
@cd ${WRKTMP}/bootjdk/lib && \
${_PBUILD} rm libsplashscreen.so libinstrument.so libawt_xawt.so \
liblcms.so libfontmanager.so libjdwp.so libjavajpeg.so
${_PBUILD} rm libsplashscreen.so libinstrument.so \
libawt_xawt.so liblcms.so libfontmanager.so libjdwp.so \
libjavajpeg.so
@find ${WRKTMP}/bootjdk/lib ${WRKTMP}/bootjdk/bin \
-exec sh -c 'file {} | grep -q ELF && \
${_PBUILD} strip -S {}' \;
@LD_LIBRARY_PATH="${WRKTMP}/bootjdk/lib" \
find ${WRKTMP}/bootjdk -type f -perm -500 -exec ldd {} + 2>/dev/null | \
find ${WRKTMP}/bootjdk -type f -perm -500 \
-exec ldd {} + 2>/dev/null | \
grep rlib | cut -d"/" -f 2-20 | sort -u | grep -v "\.so$$" | \
xargs -I % ${_PBUILD} cp /% ${WRKTMP}/bootjdk-libs
@cd ${WRKTMP} && \

View file

@ -1,8 +1,10 @@
SHA256 (jdk/jdk-11.0.20+8-1.tar.gz) = T7f8zEYqjGWY+gZa6iA6GzA+8bb/r/Ox/bBOKxnjBsw=
SHA256 (jdk/openjdk-jdk11u-bootjdk-aarch64-20230630.tar.gz) = 0Y+t94GfrfSHIls9LeH1G1pN45VL3JRQ/fMdFhntIyQ=
SHA256 (jdk/openjdk-jdk11u-bootjdk-amd64-20230630.tar.gz) = MwLQzx6Lw5fvzGAyhwmreLwhMTY188J0Oa9xY0AvbdM=
SHA256 (jdk/openjdk-jdk11u-bootjdk-i386-20230630.tar.gz) = BsW8OBLxjNzkCCPpWM8mxRSB/wm2YSuSnlpzuH8MIp0=
SIZE (jdk/jdk-11.0.20+8-1.tar.gz) = 116277026
SIZE (jdk/openjdk-jdk11u-bootjdk-aarch64-20230630.tar.gz) = 113608056
SIZE (jdk/openjdk-jdk11u-bootjdk-amd64-20230630.tar.gz) = 114794808
SIZE (jdk/openjdk-jdk11u-bootjdk-i386-20230630.tar.gz) = 103778873
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=
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

View file

@ -1,18 +0,0 @@
Index: make/autoconf/flags-ldflags.m4
--- make/autoconf/flags-ldflags.m4.orig
+++ make/autoconf/flags-ldflags.m4
@@ -127,12 +127,12 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
if test "x$OPENJDK_TARGET_OS_ENV" = xbsd.openbsd; then
AC_MSG_CHECKING([if ld requires -z wxneeded])
PUSHED_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -Wl,-z,wxneeded"
+ LDFLAGS="$LDFLAGS -Wl,-z,wxneeded -Wl,-z,nobtcfi"
AC_LINK_IFELSE([AC_LANG_SOURCE([[int main() { }]])],
[
if $READELF -l conftest$ac_exeext | $GREP WXNEED > /dev/null; then
AC_MSG_RESULT([yes])
- OS_LDFLAGS="-Wl,-z,wxneeded"
+ OS_LDFLAGS="-Wl,-z,wxneeded -Wl,-z,nobtcfi"
else
AC_MSG_RESULT([no])
fi

View file

@ -5,7 +5,7 @@ get the debug package without bloating the size of the jdk package.
Index: make/common/NativeCompilation.gmk
--- make/common/NativeCompilation.gmk.orig
+++ make/common/NativeCompilation.gmk
@@ -1003,9 +1003,7 @@ define SetupNativeCompilationBody
@@ -1008,9 +1008,7 @@ define SetupNativeCompilationBody
# Setup the command line creating debuginfo files, to be run after linking.
# It cannot be run separately since it updates the original target file
$1_CREATE_DEBUGINFO_CMDS := \

View file

@ -1,11 +0,0 @@
Index: src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp
--- src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp.orig
+++ src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp
@@ -1321,7 +1321,6 @@ address TemplateInterpreterGenerator::generate_native_
__ ldr(r10, Address(rmethod, Method::native_function_offset()));
address unsatisfied = (SharedRuntime::native_method_throw_unsatisfied_link_error_entry());
__ mov(rscratch2, unsatisfied);
- __ ldr(rscratch2, rscratch2);
__ cmp(r10, rscratch2);
__ br(Assembler::NE, L);
__ call_VM(noreg,

View file

@ -1,18 +0,0 @@
Add support for detecting the primordial thread
Index: src/hotspot/os/bsd/os_bsd.cpp
--- src/hotspot/os/bsd/os_bsd.cpp.orig
+++ src/hotspot/os/bsd/os_bsd.cpp
@@ -4407,6 +4407,12 @@ static void current_stack_region(address * bottom, siz
os::current_stack_pointer() < *bottom + *size, "just checking");
}
+#ifdef __OpenBSD__
+bool os::is_primordial_thread() {
+ return (pthread_main_np() == 1);
+}
+#endif
+
address os::current_stack_base() {
address bottom;
size_t size;

View file

@ -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, \

View file

@ -1,14 +0,0 @@
Add support for detecting the primordial thread
Index: src/hotspot/share/runtime/os.hpp
--- src/hotspot/share/runtime/os.hpp.orig
+++ src/hotspot/share/runtime/os.hpp
@@ -508,7 +508,7 @@ class os: AllStatic {
// need special-case handling of the primordial thread if it attaches
// to the VM.
static bool is_primordial_thread(void)
-#if defined(_WINDOWS) || defined(BSD)
+#if defined(_WINDOWS) || (defined(BSD) && !defined(__OpenBSD__))
// No way to identify the primordial thread.
{ return false; }
#else

View file

@ -1,19 +0,0 @@
Disable stack guarding on the primordial thread because its protections
are immutable. Note this will interfere with the primordial thread throwing
StackOverflowError exceptions.
Index: src/hotspot/share/runtime/thread.cpp
--- src/hotspot/share/runtime/thread.cpp.orig
+++ src/hotspot/share/runtime/thread.cpp
@@ -2608,7 +2608,11 @@ size_t JavaThread::_stack_shadow_zone_size = 0;
void JavaThread::create_stack_guard_pages() {
if (!os::uses_stack_guard_pages() ||
_stack_guard_state != stack_guard_unused ||
+#ifdef __OpenBSD__
+ (os::is_primordial_thread())) {
+#else
(DisablePrimordialThreadGuardPages && os::is_primordial_thread())) {
+#endif
log_info(os, thread)("Stack guard page creation for thread "
UINTX_FORMAT " disabled", os::current_thread_id());
return;

View file

@ -1,14 +0,0 @@
Start using waitid(2)
Index: src/java.base/unix/native/libjava/ProcessHandleImpl_unix.c
--- src/java.base/unix/native/libjava/ProcessHandleImpl_unix.c.orig
+++ src/java.base/unix/native/libjava/ProcessHandleImpl_unix.c
@@ -259,7 +259,7 @@ Java_java_lang_ProcessHandleImpl_waitForProcessExit0(J
return status;
}
} else {
-#if defined(__OpenBSD__)
+#if defined(__OpenBSD__) && OpenBSD < 202304
return os_waitForProcessExitNoReap(pid);
#else
/*

View file

@ -1,24 +0,0 @@
Start using waitid(2)
Index: src/java.base/unix/native/libjava/ProcessHandleImpl_unix.h
--- src/java.base/unix/native/libjava/ProcessHandleImpl_unix.h.orig
+++ src/java.base/unix/native/libjava/ProcessHandleImpl_unix.h
@@ -25,6 +25,10 @@
#include <sys/types.h>
+#ifdef __OpenBSD__
+ #include <sys/param.h>
+#endif
+
/*
* Declaration of ProcessHandleImpl functions common on all Unix platforms.
* 'unix_' functions have a single implementation in ProcessHandleImpl_unix.c
@@ -75,6 +79,6 @@ extern void unix_fillArgArray(JNIEnv *env, jobject jin
extern void os_initNative(JNIEnv *env, jclass clazz);
-#if defined(__OpenBSD__)
+#if defined(__OpenBSD__) && OpenBSD < 202304
extern int os_waitForProcessExitNoReap(pid_t pid);
#endif

View file

@ -4,20 +4,19 @@ USE_NOBTCFI= Yes
DPB_PROPERTIES= parallel
COMMENT= OpenJDK Software Development Kit v${VERSION_STR}
BASE_VER= 17.0.8
PATCH_VER= 7
BASE_VER= 17.0.11
PATCH_VER= 9
BSD_PORT_REL= 1
VERSION_STR= ${BASE_VER}+${PATCH_VER}-${BSD_PORT_REL}
PACKAGE_VER= ${BASE_VER}.${PATCH_VER}.${BSD_PORT_REL}
PKGNAME= jdk-${PACKAGE_VER}
PKGSTEM= jdk-17
EPOCH= 0
REVISION= 0
DIST_SUBDIR= jdk
DISTNAME= jdk-${VERSION_STR}
WRKDIST= ${WRKDIR}/jdk17u-jdk-${BASE_VER}-${PATCH_VER}-${BSD_PORT_REL}
BOOTJDK_DATE= 20230630
BOOTJDK_DATE= 20240331
CATEGORIES= devel/jdk java
@ -27,8 +26,8 @@ FLAVOR?=
HOMEPAGE= http://openjdk.java.net/
SITES= https://github.com/battleblow/jdk17u/archive/
SITES.boot= https://spacehopper.org/mirrors/ \
http://www.intricatesoftware.com/distfiles/
SITES.boot= http://www.intricatesoftware.com/distfiles/ \
https://spacehopper.org/mirrors/
MAINTAINER= Kurt Miller <kurt@openbsd.org>
@ -144,7 +143,7 @@ JVMARCH= ${MACHINE_ARCH:S/i386/x86/:S/amd64/x86_64/}
BUILDDIR= ${WRKDIST}/build/bsd-${JVMARCH}-server-release
IMAGEDIR= ${BUILDDIR}/images/jdk
WRKTMP= ${WRKDIR}/tmp
post-extract:
sed -i "s|#!/bin/bash|#!\${LOCALBASE}/bin/bash|" ${WRKDIST}/configure
chmod +x ${WRKDIST}/configure
@ -163,7 +162,7 @@ post-build:
do-install:
${INSTALL_DATA_DIR} ${PREFIX}/${PKGSTEM}
cd ${IMAGEDIR} && tar -cf - * | tar -C ${PREFIX}/${PKGSTEM} -xf -
cd ${IMAGEDIR} && tar -cf - * | tar -C ${PREFIX}/${PKGSTEM} -xf -
# The bootjdk is the jdk image with some parts deleted
# and a copy of the system shared libs needed to run it.
@ -176,12 +175,13 @@ build-bootjdk: build
@${_PBUILD} mkdir -p ${WRKTMP}/bootjdk-libs
@cd ${IMAGEDIR} && \
tar -cf - * | \
${_PBUILD} tar -C ${WRKTMP}/bootjdk -xf -
${_PBUILD} tar -C ${WRKTMP}/bootjdk -xf -
@cd ${WRKTMP}/bootjdk && \
${_PBUILD} rm -rf demo jmods man sample
@cd ${WRKTMP}/bootjdk/lib && \
${_PBUILD} rm libsplashscreen.so libinstrument.so \
libawt_xawt.so liblcms.so libfontmanager.so libjdwp.so libjavajpeg.so
libawt_xawt.so liblcms.so libfontmanager.so libjdwp.so \
libjavajpeg.so
@find ${WRKTMP}/bootjdk/lib ${WRKTMP}/bootjdk/bin \
-exec sh -c 'file {} | grep -q ELF && \
${_PBUILD} strip -S {}' \;

View file

@ -1,8 +1,8 @@
SHA256 (jdk/jdk-17.0.8+7-1.tar.gz) = McQ83VtZ8hqj/bjX6a00jfFM9HGjxHvPkJXvVS1ptrM=
SHA256 (jdk/openjdk-jdk17u-bootjdk-aarch64-20230630.tar.gz) = kSPI7eNLFYh/H7qGoQU1MQ/SmhT+8O4xol9IS42wb4o=
SHA256 (jdk/openjdk-jdk17u-bootjdk-amd64-20230630.tar.gz) = hyL5r3uCK7bERxQNcf6bKgM8KM3B+jnE0zASiu3znok=
SHA256 (jdk/openjdk-jdk17u-bootjdk-i386-20230630.tar.gz) = KRo0UkCrh3LzNBza00RUcrpAWE6lyF0D8fTvP0Xad9w=
SIZE (jdk/jdk-17.0.8+7-1.tar.gz) = 105990448
SIZE (jdk/openjdk-jdk17u-bootjdk-aarch64-20230630.tar.gz) = 114514828
SIZE (jdk/openjdk-jdk17u-bootjdk-amd64-20230630.tar.gz) = 114974211
SIZE (jdk/openjdk-jdk17u-bootjdk-i386-20230630.tar.gz) = 108546594
SHA256 (jdk/jdk-17.0.11+9-1.tar.gz) = tCgrGqdzSCpdRcezyAYELU74IXxbsbuzl2FvtfA0UAY=
SHA256 (jdk/openjdk-jdk17u-bootjdk-aarch64-20240331.tar.gz) = 3BSKOAqYlWUeFIwI4AU1jZomGZAnTwDgYbstSN1AolM=
SHA256 (jdk/openjdk-jdk17u-bootjdk-amd64-20240331.tar.gz) = 7VvWCMsIiGn3E9IBF5U7J4whxy/mpVdUXBeEjAc3riY=
SHA256 (jdk/openjdk-jdk17u-bootjdk-i386-20240331.tar.gz) = Rik04uuj4ED8T24w86TaF9RSmEHPSujQjEVvX91YLJs=
SIZE (jdk/jdk-17.0.11+9-1.tar.gz) = 106698083
SIZE (jdk/openjdk-jdk17u-bootjdk-aarch64-20240331.tar.gz) = 115192316
SIZE (jdk/openjdk-jdk17u-bootjdk-amd64-20240331.tar.gz) = 114955227
SIZE (jdk/openjdk-jdk17u-bootjdk-i386-20240331.tar.gz) = 108857519

View file

@ -1,18 +0,0 @@
Index: make/autoconf/flags-ldflags.m4
--- make/autoconf/flags-ldflags.m4.orig
+++ make/autoconf/flags-ldflags.m4
@@ -127,12 +127,12 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
if test "x$OPENJDK_TARGET_OS_ENV" = xbsd.openbsd; then
AC_MSG_CHECKING([if ld requires -z wxneeded])
PUSHED_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -Wl,-z,wxneeded"
+ LDFLAGS="$LDFLAGS -Wl,-z,wxneeded -Wl,-z,nobtcfi"
AC_LINK_IFELSE([AC_LANG_SOURCE([[int main() { }]])],
[
if $READELF -l conftest$ac_exeext | $GREP WXNEED > /dev/null; then
AC_MSG_RESULT([yes])
- OS_LDFLAGS="-Wl,-z,wxneeded"
+ OS_LDFLAGS="-Wl,-z,wxneeded -Wl,-z,nobtcfi"
else
AC_MSG_RESULT([no])
fi

View file

@ -5,7 +5,7 @@ get the debug package without bloating the size of the jdk package.
Index: make/common/NativeCompilation.gmk
--- make/common/NativeCompilation.gmk.orig
+++ make/common/NativeCompilation.gmk
@@ -1000,9 +1000,7 @@ define SetupNativeCompilationBody
@@ -1005,9 +1005,7 @@ define SetupNativeCompilationBody
# Setup the command line creating debuginfo files, to be run after linking.
# It cannot be run separately since it updates the original target file
$1_CREATE_DEBUGINFO_CMDS := \

View file

@ -1,11 +0,0 @@
Index: src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp
--- src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp.orig
+++ src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp
@@ -1261,7 +1261,6 @@ address TemplateInterpreterGenerator::generate_native_
__ ldr(r10, Address(rmethod, Method::native_function_offset()));
address unsatisfied = (SharedRuntime::native_method_throw_unsatisfied_link_error_entry());
__ mov(rscratch2, unsatisfied);
- __ ldr(rscratch2, rscratch2);
__ cmp(r10, rscratch2);
__ br(Assembler::NE, L);
__ call_VM(noreg,

View file

@ -1,18 +1,17 @@
Add support for detecting the primordial thread
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
@@ -2491,6 +2491,12 @@ static void current_stack_region(address * bottom, siz
os::current_stack_pointer() < *bottom + *size, "just checking");
}
@@ -294,7 +294,11 @@ void os::Bsd::initialize_system_info() {
+#ifdef __OpenBSD__
+bool os::is_primordial_thread() {
+ return (pthread_main_np() == 1);
+}
// 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
+
address os::current_stack_base() {
address bottom;
size_t size;
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");

View file

@ -1,14 +0,0 @@
Add support for detecting the primordial thread
Index: src/hotspot/share/runtime/os.hpp
--- src/hotspot/share/runtime/os.hpp.orig
+++ src/hotspot/share/runtime/os.hpp
@@ -468,7 +468,7 @@ class os: AllStatic {
// need special-case handling of the primordial thread if it attaches
// to the VM.
static bool is_primordial_thread(void)
-#if defined(_WINDOWS) || defined(BSD)
+#if defined(_WINDOWS) || (defined(BSD) && !defined(__OpenBSD__))
// No way to identify the primordial thread.
{ return false; }
#else

View file

@ -1,31 +0,0 @@
Disable stack guarding on the primordial thread because its protections
are immutable. Note this will interfere with the primordial thread throwing
StackOverflowError exceptions.
Index: src/hotspot/share/runtime/stackOverflow.cpp
--- src/hotspot/share/runtime/stackOverflow.cpp.orig
+++ src/hotspot/share/runtime/stackOverflow.cpp
@@ -69,7 +69,11 @@ void StackOverflow::initialize_stack_zone_sizes() {
bool StackOverflow::stack_guards_enabled() const {
#ifdef ASSERT
if (os::uses_stack_guard_pages() &&
+#ifdef __OpenBSD__
+ !os::is_primordial_thread()) {
+#else
!(DisablePrimordialThreadGuardPages && os::is_primordial_thread())) {
+#endif
assert(_stack_guard_state != stack_guard_unused, "guard pages must be in use");
}
#endif
@@ -79,7 +83,11 @@ bool StackOverflow::stack_guards_enabled() const {
void StackOverflow::create_stack_guard_pages() {
if (!os::uses_stack_guard_pages() ||
_stack_guard_state != stack_guard_unused ||
+#ifdef __OpenBSD__
+ os::is_primordial_thread()) {
+#else
(DisablePrimordialThreadGuardPages && os::is_primordial_thread())) {
+#endif
log_info(os, thread)("Stack guard page creation for thread "
UINTX_FORMAT " disabled", os::current_thread_id());
return;

View file

@ -1,14 +0,0 @@
Start using waitid(2)
Index: src/java.base/unix/native/libjava/ProcessHandleImpl_unix.c
--- src/java.base/unix/native/libjava/ProcessHandleImpl_unix.c.orig
+++ src/java.base/unix/native/libjava/ProcessHandleImpl_unix.c
@@ -252,7 +252,7 @@ Java_java_lang_ProcessHandleImpl_waitForProcessExit0(J
return status;
}
} else {
-#if defined(__OpenBSD__)
+#if defined(__OpenBSD__) && OpenBSD < 202304
return os_waitForProcessExitNoReap(pid);
#else
/*

View file

@ -1,24 +0,0 @@
Start using waitid(2)
Index: src/java.base/unix/native/libjava/ProcessHandleImpl_unix.h
--- src/java.base/unix/native/libjava/ProcessHandleImpl_unix.h.orig
+++ src/java.base/unix/native/libjava/ProcessHandleImpl_unix.h
@@ -25,6 +25,10 @@
#include <sys/types.h>
+#ifdef __OpenBSD__
+ #include <sys/param.h>
+#endif
+
/*
* Declaration of ProcessHandleImpl functions common on all Unix platforms.
* 'unix_' functions have a single implementation in ProcessHandleImpl_unix.c
@@ -75,6 +79,6 @@ extern void unix_fillArgArray(JNIEnv *env, jobject jin
extern void os_initNative(JNIEnv *env, jclass clazz);
-#if defined(__OpenBSD__)
+#if defined(__OpenBSD__) && OpenBSD < 202304
extern int os_waitForProcessExitNoReap(pid_t pid);
#endif

194
devel/jdk/21/Makefile Normal file
View file

@ -0,0 +1,194 @@
ONLY_FOR_ARCHS= i386 amd64 aarch64
USE_WXNEEDED= Yes
USE_NOBTCFI= Yes
DPB_PROPERTIES= parallel
COMMENT= OpenJDK Software Development Kit v${VERSION_STR}
BASE_VER= 21.0.3
PATCH_VER= 9
BSD_PORT_REL= 1
VERSION_STR= ${BASE_VER}+${PATCH_VER}-${BSD_PORT_REL}
PACKAGE_VER= ${BASE_VER}.${PATCH_VER}.${BSD_PORT_REL}
PKGNAME= jdk-${PACKAGE_VER}
PKGSTEM= jdk-21
EPOCH= 0
DIST_SUBDIR= jdk
DISTNAME= jdk-${VERSION_STR}
WRKDIST= ${WRKDIR}/jdk21u-jdk-${BASE_VER}-${PATCH_VER}-${BSD_PORT_REL}
BOOTJDK_DATE= 20240331
CATEGORIES= devel/jdk java
PSEUDO_FLAVORS= native_bootstrap
FLAVOR?=
HOMEPAGE= http://openjdk.java.net/
SITES= https://github.com/battleblow/jdk21u/archive/
SITES.boot= http://www.intricatesoftware.com/distfiles/ \
https://spacehopper.org/mirrors/
MAINTAINER= Kurt Miller <kurt@openbsd.org>
# GPLv2 w/CLASSPATH exception
PERMIT_PACKAGE= Yes
DEBUG_PACKAGES= ${BUILD_PACKAGES}
WANTLIB += ${COMPILER_LIBCXX} X11 Xext Xi Xrender Xtst c freetype gif
WANTLIB += harfbuzz iconv jpeg lcms2 m png pthread z
NO_TEST= Yes
SUPDISTFILES.boot= \
openjdk-jdk21u-bootjdk-i386-${BOOTJDK_DATE}.tar.gz \
openjdk-jdk21u-bootjdk-amd64-${BOOTJDK_DATE}.tar.gz \
openjdk-jdk21u-bootjdk-aarch64-${BOOTJDK_DATE}.tar.gz
COMPILER= base-clang ports-gcc
.include <bsd.port.arch.mk>
.if ${FLAVOR:Mnative_bootstrap}
INSTALLED!= (pkg_info -qe "jdk->=21v0,<22v0" && echo yes) || echo no
. if ${INSTALLED:L} != "yes"
ERRORS += "Fatal: This flavor requires an installed jdk-21 package"
. endif
BUILD_DEPENDS+= jdk->=21v0,<22v0:devel/jdk/21
BOOT_JDK= ${LOCALBASE}/jdk-21
.else
BOOT_JDK_DIST= openjdk-jdk21u-bootjdk-${MACHINE_ARCH}-${BOOTJDK_DATE}.tar.gz
. if (${MACHINE_ARCH}==amd64) || (${MACHINE_ARCH}==i386) || (${MACHINE_ARCH}==aarch64)
DISTFILES.boot= ${BOOT_JDK_DIST}
. endif
MAKE_ENV+= LD_LIBRARY_PATH=${WRKDIR}/bootjdk-libs
CONFIGURE_ENV+= LD_LIBRARY_PATH=${WRKDIR}/bootjdk-libs
BOOT_JDK= ${WRKDIR}/bootjdk
.endif
AUTOCONF_VERSION= 2.69
BUILD_DEPENDS+= ${MODGNU_AUTOCONF_DEPENDS} \
archivers/gtar \
archivers/zip \
archivers/unzip \
print/cups,-libs \
shells/bash
LIB_DEPENDS= converters/libiconv \
devel/harfbuzz \
graphics/jpeg \
graphics/lcms2 \
graphics/png \
graphics/giflib
USE_GMAKE= Yes
GMAKE= ${LOCALBASE}/bin/gmake
# Don't call make -jN, instead pass MAKE_JOBS to --with-jobs
PARALLEL_MAKE_FLAGS=
CONFIGURE_STYLE=gnu
CONFIGURE_ENV+= AUTOCONF_VERSION=${AUTOCONF_VERSION}
CONFIGURE_ARGS= DOT="" FLOCK="" GIT="" PANDOC="" \
AWK=awk DIFF=diff GZIP=gzip MAKE=${GMAKE} MKDIR=mkdir \
OBJCOPY=objcopy OBJDUMP=objdump PATCH=patch \
READELF=readelf READLINK=readlink \
--with-boot-jdk=${BOOT_JDK} \
--with-jobs=${MAKE_JOBS} \
--with-debug-level=release \
--with-version-string=${VERSION_STR} \
--with-fontconfig=${X11BASE} \
--with-cups=${LOCALBASE} \
--with-freetype=system \
--with-zlib=system \
--with-libpng=system \
--with-lcms=system \
--with-libjpeg=system \
--with-harfbuzz=system \
--with-giflib=system \
--with-giflib-include=${LOCALBASE}/include \
--with-giflib-lib=${LOCALBASE}/lib \
--disable-option-checking \
--disable-ccache \
--disable-dtrace \
--disable-javac-server
.if ${PROPERTIES:Mclang}
CONFIGURE_ARGS+=--with-toolchain-type=clang
.else
CONFIGURE_ARGS+=--with-toolchain-type=gcc
.endif
.if ${PROPERTIES:Mdebuginfo}
CONFIGURE_ARGS+=--with-native-debug-symbols=external
.else
CONFIGURE_ARGS+=--with-native-debug-symbols=none
.endif
MODGNU_CONFIG_GUESS_DIRS=${WRKSRC}/make/autoconf/build-aux
MAKE_FLAGS+= LOG=debug
ALL_TARGET= images
.if ${MACHINE_ARCH} != "i386"
PKG_ARGS+= -Dci=1
.else
PKG_ARGS+= -Dci=0
.endif
JVMARCH= ${MACHINE_ARCH:S/i386/x86/:S/amd64/x86_64/}
BUILDDIR= ${WRKDIST}/build/bsd-${JVMARCH}-server-release
IMAGEDIR= ${BUILDDIR}/images/jdk
WRKTMP= ${WRKDIR}/tmp
post-extract:
sed -i "s|#!/bin/bash|#!\${LOCALBASE}/bin/bash|" ${WRKDIST}/configure
chmod +x ${WRKDIST}/configure
.if ${PROPERTIES:Mdebuginfo}
post-build:
cd ${IMAGEDIR}/lib && \
find . -name \*.debuginfo -exec \
sh -c 'mv {} `echo {} | sed s/.debuginfo/.so/`' \; && \
mv jspawnhelper.so jspawnhelper && \
cp libjsig.so server/
cd ${IMAGEDIR}/bin && \
find . -name \*.debuginfo -exec \
sh -c 'mv {} `echo {} | sed s/.debuginfo//`' \;
.endif
do-install:
${INSTALL_DATA_DIR} ${PREFIX}/${PKGSTEM}
cd ${IMAGEDIR} && tar -cf - * | tar -C ${PREFIX}/${PKGSTEM} -xf -
# The bootjdk is the jdk image with some parts deleted
# and a copy of the system shared libs needed to run it.
# The parts deleted are not needed for bootstrap and would
# require more system shared libs to be saved.
BOOTJDK_TAR= openjdk-jdk21u-bootjdk-${MACHINE_ARCH}-$$(date +%Y%m%d).tar.gz
build-bootjdk: build
@${_PBUILD} rm -rf ${WRKTMP}
@${_PBUILD} mkdir -p ${WRKTMP}/bootjdk
@${_PBUILD} mkdir -p ${WRKTMP}/bootjdk-libs
@cd ${IMAGEDIR} && \
tar -cf - * | \
${_PBUILD} tar -C ${WRKTMP}/bootjdk -xf -
@cd ${WRKTMP}/bootjdk && \
${_PBUILD} rm -rf demo jmods man sample
@cd ${WRKTMP}/bootjdk/lib && \
${_PBUILD} rm libsplashscreen.so libinstrument.so \
libawt_xawt.so liblcms.so libfontmanager.so libjdwp.so \
libjavajpeg.so
@find ${WRKTMP}/bootjdk/lib ${WRKTMP}/bootjdk/bin \
-exec sh -c 'file {} | grep -q ELF && \
${_PBUILD} strip -S {}' \;
@LD_LIBRARY_PATH="${WRKTMP}/bootjdk/lib" \
find ${WRKTMP}/bootjdk -type f -exec ldd {} + 2>/dev/null | \
grep rlib | cut -d"/" -f 2-20 | sort -u | grep -v "\.so$$" | \
xargs -I % ${_PBUILD} cp /% ${WRKTMP}/bootjdk-libs
@cd ${WRKTMP} && \
${_PBUILD} tar czf ${BOOTJDK_TAR} bootjdk*
@echo "New bootjdk is located at ${WRKTMP}/${BOOTJDK_TAR}"
.include <bsd.port.mk>

8
devel/jdk/21/distinfo Normal file
View file

@ -0,0 +1,8 @@
SHA256 (jdk/jdk-21.0.3+9-1.tar.gz) = jjJ70p6rHEZ22aEFkTxr88Uqr/kiR1gwmzvjapifUXk=
SHA256 (jdk/openjdk-jdk21u-bootjdk-aarch64-20240331.tar.gz) = PTUsxbBEYscaMkv0U1ciHILYKe/5fUeJWDiuU37Xn5A=
SHA256 (jdk/openjdk-jdk21u-bootjdk-amd64-20240331.tar.gz) = jIEfrbj/CEVP+DVSJSHiwWP2njtr3X65oOOsOgxc1QE=
SHA256 (jdk/openjdk-jdk21u-bootjdk-i386-20240331.tar.gz) = UCZrII3lTB2XBjVjyChk0DnUwWWjZ55/E+VqgVFV9zg=
SIZE (jdk/jdk-21.0.3+9-1.tar.gz) = 112527752
SIZE (jdk/openjdk-jdk21u-bootjdk-aarch64-20240331.tar.gz) = 123812488
SIZE (jdk/openjdk-jdk21u-bootjdk-amd64-20240331.tar.gz) = 123654159
SIZE (jdk/openjdk-jdk21u-bootjdk-i386-20240331.tar.gz) = 116718135

View file

@ -0,0 +1,19 @@
Keep full bin/lib with debug in debuginfo file so it can be restored
later in post-build. This results in jmod's without debuginfo so we
get the debug package without bloating the size of the jdk package.
Index: make/common/NativeCompilation.gmk
--- make/common/NativeCompilation.gmk.orig
+++ make/common/NativeCompilation.gmk
@@ -1066,9 +1066,8 @@ define SetupNativeCompilationBody
# so we can run it after strip is called, since strip can sometimes mangle the
# embedded debuglink, which we want to avoid.
$1_CREATE_DEBUGINFO_CMDS := \
- $$($1_OBJCOPY) --only-keep-debug $$($1_TARGET) $$($1_DEBUGINFO_FILES) $$(NEWLINE)
- $1_CREATE_DEBUGLINK_CMDS := $(CD) $$($1_SYMBOLS_DIR) && \
- $$($1_OBJCOPY) --add-gnu-debuglink=$$($1_DEBUGINFO_FILES) $$($1_TARGET)
+ $(CP) $$($1_TARGET) $$($1_DEBUGINFO_FILES)
+ $1_CREATE_DEBUGLINK_CMDS :=
else ifeq ($(call isTargetOs, aix), true)
# AIX does not provide the equivalent of OBJCOPY to extract debug symbols,

View file

@ -0,0 +1,17 @@
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
@@ -280,7 +280,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, nullptr, 0) != -1 && cpu_val >= 1) {
assert(len == sizeof(cpu_val), "unexpected data size");

11
devel/jdk/21/pkg/DESCR Normal file
View file

@ -0,0 +1,11 @@
OpenJDK SDK, Standard Edition
Version 21
The OpenJDK SDK software includes tools useful for developing and
testing programs written in the Java programming language and
running on the Java platform.
Flavors:
native_bootstrap
Bootstrap the jdk using a previously built and installed
devel/jdk/21 package.

16
devel/jdk/21/pkg/PFRAG.ci Normal file
View file

@ -0,0 +1,16 @@
jdk-21/jmods/jdk.internal.vm.ci.jmod
jdk-21/jmods/jdk.internal.vm.compiler.jmod
jdk-21/jmods/jdk.internal.vm.compiler.management.jmod
jdk-21/legal/jdk.internal.vm.ci/
jdk-21/legal/jdk.internal.vm.ci/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.internal.vm.ci/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.internal.vm.ci/LICENSE
jdk-21/legal/jdk.internal.vm.compiler/
jdk-21/legal/jdk.internal.vm.compiler.management/
jdk-21/legal/jdk.internal.vm.compiler.management/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.internal.vm.compiler.management/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.internal.vm.compiler.management/LICENSE
jdk-21/legal/jdk.internal.vm.compiler/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.internal.vm.compiler/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.internal.vm.compiler/LICENSE
jdk-21/lib/server/classes_nocoops.jsa

610
devel/jdk/21/pkg/PLIST Normal file
View file

@ -0,0 +1,610 @@
@option no-default-conflict
@option is-branch
@conflict jdk->=21v0,<22v0
@pkgpath devel/jdk/21
%%ci%%
jdk-21/
jdk-21/bin/
@bin jdk-21/bin/jar
@bin jdk-21/bin/jarsigner
@bin jdk-21/bin/java
@bin jdk-21/bin/javac
@bin jdk-21/bin/javadoc
@bin jdk-21/bin/javap
@bin jdk-21/bin/jcmd
@bin jdk-21/bin/jconsole
@bin jdk-21/bin/jdb
@bin jdk-21/bin/jdeprscan
@bin jdk-21/bin/jdeps
@bin jdk-21/bin/jfr
@bin jdk-21/bin/jimage
@bin jdk-21/bin/jinfo
@bin jdk-21/bin/jlink
@bin jdk-21/bin/jmap
@bin jdk-21/bin/jmod
@bin jdk-21/bin/jps
@bin jdk-21/bin/jrunscript
@bin jdk-21/bin/jshell
@bin jdk-21/bin/jstack
@bin jdk-21/bin/jstat
@bin jdk-21/bin/jstatd
@bin jdk-21/bin/jwebserver
@bin jdk-21/bin/keytool
@bin jdk-21/bin/rmiregistry
@bin jdk-21/bin/serialver
jdk-21/conf/
jdk-21/conf/jaxp.properties
jdk-21/conf/logging.properties
jdk-21/conf/management/
jdk-21/conf/management/jmxremote.access
jdk-21/conf/management/jmxremote.password.template
jdk-21/conf/management/management.properties
jdk-21/conf/net.properties
jdk-21/conf/security/
jdk-21/conf/security/java.policy
jdk-21/conf/security/java.security
jdk-21/conf/security/policy/
jdk-21/conf/security/policy/README.txt
jdk-21/conf/security/policy/limited/
jdk-21/conf/security/policy/limited/default_US_export.policy
jdk-21/conf/security/policy/limited/default_local.policy
jdk-21/conf/security/policy/limited/exempt_local.policy
jdk-21/conf/security/policy/unlimited/
jdk-21/conf/security/policy/unlimited/default_US_export.policy
jdk-21/conf/security/policy/unlimited/default_local.policy
jdk-21/conf/sound.properties
jdk-21/demo/
jdk-21/demo/README
jdk-21/demo/jfc/
jdk-21/demo/jfc/CodePointIM/
jdk-21/demo/jfc/CodePointIM/CodePointIM.jar
jdk-21/demo/jfc/CodePointIM/README.html
jdk-21/demo/jfc/CodePointIM/README_ja.html
jdk-21/demo/jfc/CodePointIM/README_zh_CN.html
jdk-21/demo/jfc/CodePointIM/src.zip
jdk-21/demo/jfc/FileChooserDemo/
jdk-21/demo/jfc/FileChooserDemo/FileChooserDemo.jar
jdk-21/demo/jfc/FileChooserDemo/README.txt
jdk-21/demo/jfc/FileChooserDemo/src.zip
jdk-21/demo/jfc/Font2DTest/
jdk-21/demo/jfc/Font2DTest/Font2DTest.jar
jdk-21/demo/jfc/Font2DTest/README.txt
jdk-21/demo/jfc/Font2DTest/src.zip
jdk-21/demo/jfc/J2Ddemo/
jdk-21/demo/jfc/J2Ddemo/J2Ddemo.jar
jdk-21/demo/jfc/J2Ddemo/README.txt
jdk-21/demo/jfc/J2Ddemo/src.zip
jdk-21/demo/jfc/Metalworks/
jdk-21/demo/jfc/Metalworks/Metalworks.jar
jdk-21/demo/jfc/Metalworks/README.txt
jdk-21/demo/jfc/Metalworks/src.zip
jdk-21/demo/jfc/Notepad/
jdk-21/demo/jfc/Notepad/Notepad.jar
jdk-21/demo/jfc/Notepad/README.txt
jdk-21/demo/jfc/Notepad/src.zip
jdk-21/demo/jfc/SampleTree/
jdk-21/demo/jfc/SampleTree/README.txt
jdk-21/demo/jfc/SampleTree/SampleTree.jar
jdk-21/demo/jfc/SampleTree/src.zip
jdk-21/demo/jfc/Stylepad/
jdk-21/demo/jfc/Stylepad/README.txt
jdk-21/demo/jfc/Stylepad/Stylepad.jar
jdk-21/demo/jfc/Stylepad/src.zip
jdk-21/demo/jfc/SwingSet2/
jdk-21/demo/jfc/SwingSet2/README.txt
jdk-21/demo/jfc/SwingSet2/SwingSet2.jar
jdk-21/demo/jfc/SwingSet2/src.zip
jdk-21/demo/jfc/TableExample/
jdk-21/demo/jfc/TableExample/README.txt
jdk-21/demo/jfc/TableExample/TableExample.jar
jdk-21/demo/jfc/TableExample/src.zip
jdk-21/demo/jfc/TransparentRuler/
jdk-21/demo/jfc/TransparentRuler/README.txt
jdk-21/demo/jfc/TransparentRuler/TransparentRuler.jar
jdk-21/demo/jfc/TransparentRuler/src.zip
jdk-21/demo/nbproject/
jdk-21/demo/nbproject/README.txt
jdk-21/demo/nbproject/jfc/
jdk-21/demo/nbproject/jfc/FileChooserDemo/
jdk-21/demo/nbproject/jfc/FileChooserDemo/build.properties
jdk-21/demo/nbproject/jfc/FileChooserDemo/build.xml
jdk-21/demo/nbproject/jfc/FileChooserDemo/nbproject/
jdk-21/demo/nbproject/jfc/FileChooserDemo/nbproject/file-targets.xml
jdk-21/demo/nbproject/jfc/FileChooserDemo/nbproject/jdk.xml
jdk-21/demo/nbproject/jfc/FileChooserDemo/nbproject/netbeans-targets.xml
jdk-21/demo/nbproject/jfc/FileChooserDemo/nbproject/project.xml
jdk-21/demo/nbproject/jfc/Font2DTest/
jdk-21/demo/nbproject/jfc/Font2DTest/build.properties
jdk-21/demo/nbproject/jfc/Font2DTest/build.xml
jdk-21/demo/nbproject/jfc/Font2DTest/nbproject/
jdk-21/demo/nbproject/jfc/Font2DTest/nbproject/file-targets.xml
jdk-21/demo/nbproject/jfc/Font2DTest/nbproject/jdk.xml
jdk-21/demo/nbproject/jfc/Font2DTest/nbproject/netbeans-targets.xml
jdk-21/demo/nbproject/jfc/Font2DTest/nbproject/project.xml
jdk-21/demo/nbproject/jfc/Metalworks/
jdk-21/demo/nbproject/jfc/Metalworks/build.properties
jdk-21/demo/nbproject/jfc/Metalworks/build.xml
jdk-21/demo/nbproject/jfc/Metalworks/nbproject/
jdk-21/demo/nbproject/jfc/Metalworks/nbproject/file-targets.xml
jdk-21/demo/nbproject/jfc/Metalworks/nbproject/jdk.xml
jdk-21/demo/nbproject/jfc/Metalworks/nbproject/netbeans-targets.xml
jdk-21/demo/nbproject/jfc/Metalworks/nbproject/project.xml
jdk-21/demo/nbproject/jfc/Notepad/
jdk-21/demo/nbproject/jfc/Notepad/build.properties
jdk-21/demo/nbproject/jfc/Notepad/build.xml
jdk-21/demo/nbproject/jfc/Notepad/nbproject/
jdk-21/demo/nbproject/jfc/Notepad/nbproject/file-targets.xml
jdk-21/demo/nbproject/jfc/Notepad/nbproject/jdk.xml
jdk-21/demo/nbproject/jfc/Notepad/nbproject/netbeans-targets.xml
jdk-21/demo/nbproject/jfc/Notepad/nbproject/project.xml
jdk-21/demo/nbproject/jfc/SampleTree/
jdk-21/demo/nbproject/jfc/SampleTree/build.properties
jdk-21/demo/nbproject/jfc/SampleTree/build.xml
jdk-21/demo/nbproject/jfc/SampleTree/nbproject/
jdk-21/demo/nbproject/jfc/SampleTree/nbproject/file-targets.xml
jdk-21/demo/nbproject/jfc/SampleTree/nbproject/jdk.xml
jdk-21/demo/nbproject/jfc/SampleTree/nbproject/netbeans-targets.xml
jdk-21/demo/nbproject/jfc/SampleTree/nbproject/project.xml
jdk-21/demo/nbproject/jfc/TableExample/
jdk-21/demo/nbproject/jfc/TableExample/build.properties
jdk-21/demo/nbproject/jfc/TableExample/build.xml
jdk-21/demo/nbproject/jfc/TableExample/nbproject/
jdk-21/demo/nbproject/jfc/TableExample/nbproject/file-targets.xml
jdk-21/demo/nbproject/jfc/TableExample/nbproject/jdk.xml
jdk-21/demo/nbproject/jfc/TableExample/nbproject/netbeans-targets.xml
jdk-21/demo/nbproject/jfc/TableExample/nbproject/project.xml
jdk-21/demo/nbproject/jfc/TransparentRuler/
jdk-21/demo/nbproject/jfc/TransparentRuler/build.properties
jdk-21/demo/nbproject/jfc/TransparentRuler/build.xml
jdk-21/demo/nbproject/jfc/TransparentRuler/nbproject/
jdk-21/demo/nbproject/jfc/TransparentRuler/nbproject/file-targets.xml
jdk-21/demo/nbproject/jfc/TransparentRuler/nbproject/jdk.xml
jdk-21/demo/nbproject/jfc/TransparentRuler/nbproject/netbeans-targets.xml
jdk-21/demo/nbproject/jfc/TransparentRuler/nbproject/project.xml
jdk-21/demo/nbproject/project.xml
jdk-21/include/
jdk-21/include/classfile_constants.h
jdk-21/include/jawt.h
jdk-21/include/jdwpTransport.h
jdk-21/include/jni.h
jdk-21/include/jvmti.h
jdk-21/include/jvmticmlr.h
jdk-21/include/openbsd/
jdk-21/include/openbsd/jawt_md.h
jdk-21/include/openbsd/jni_md.h
jdk-21/jmods/
jdk-21/jmods/java.base.jmod
jdk-21/jmods/java.compiler.jmod
jdk-21/jmods/java.datatransfer.jmod
jdk-21/jmods/java.desktop.jmod
jdk-21/jmods/java.instrument.jmod
jdk-21/jmods/java.logging.jmod
jdk-21/jmods/java.management.jmod
jdk-21/jmods/java.management.rmi.jmod
jdk-21/jmods/java.naming.jmod
jdk-21/jmods/java.net.http.jmod
jdk-21/jmods/java.prefs.jmod
jdk-21/jmods/java.rmi.jmod
jdk-21/jmods/java.scripting.jmod
jdk-21/jmods/java.se.jmod
jdk-21/jmods/java.security.jgss.jmod
jdk-21/jmods/java.security.sasl.jmod
jdk-21/jmods/java.smartcardio.jmod
jdk-21/jmods/java.sql.jmod
jdk-21/jmods/java.sql.rowset.jmod
jdk-21/jmods/java.transaction.xa.jmod
jdk-21/jmods/java.xml.crypto.jmod
jdk-21/jmods/java.xml.jmod
jdk-21/jmods/jdk.accessibility.jmod
jdk-21/jmods/jdk.attach.jmod
jdk-21/jmods/jdk.charsets.jmod
jdk-21/jmods/jdk.compiler.jmod
jdk-21/jmods/jdk.crypto.cryptoki.jmod
jdk-21/jmods/jdk.crypto.ec.jmod
jdk-21/jmods/jdk.dynalink.jmod
jdk-21/jmods/jdk.editpad.jmod
jdk-21/jmods/jdk.httpserver.jmod
jdk-21/jmods/jdk.incubator.vector.jmod
jdk-21/jmods/jdk.internal.ed.jmod
jdk-21/jmods/jdk.internal.jvmstat.jmod
jdk-21/jmods/jdk.internal.le.jmod
jdk-21/jmods/jdk.internal.opt.jmod
jdk-21/jmods/jdk.jartool.jmod
jdk-21/jmods/jdk.javadoc.jmod
jdk-21/jmods/jdk.jcmd.jmod
jdk-21/jmods/jdk.jconsole.jmod
jdk-21/jmods/jdk.jdeps.jmod
jdk-21/jmods/jdk.jdi.jmod
jdk-21/jmods/jdk.jdwp.agent.jmod
jdk-21/jmods/jdk.jfr.jmod
jdk-21/jmods/jdk.jlink.jmod
jdk-21/jmods/jdk.jshell.jmod
jdk-21/jmods/jdk.jsobject.jmod
jdk-21/jmods/jdk.jstatd.jmod
jdk-21/jmods/jdk.localedata.jmod
jdk-21/jmods/jdk.management.agent.jmod
jdk-21/jmods/jdk.management.jfr.jmod
jdk-21/jmods/jdk.management.jmod
jdk-21/jmods/jdk.naming.dns.jmod
jdk-21/jmods/jdk.naming.rmi.jmod
jdk-21/jmods/jdk.net.jmod
jdk-21/jmods/jdk.nio.mapmode.jmod
jdk-21/jmods/jdk.random.jmod
jdk-21/jmods/jdk.sctp.jmod
jdk-21/jmods/jdk.security.auth.jmod
jdk-21/jmods/jdk.security.jgss.jmod
jdk-21/jmods/jdk.unsupported.desktop.jmod
jdk-21/jmods/jdk.unsupported.jmod
jdk-21/jmods/jdk.xml.dom.jmod
jdk-21/jmods/jdk.zipfs.jmod
jdk-21/legal/
jdk-21/legal/java.base/
jdk-21/legal/java.base/ADDITIONAL_LICENSE_INFO
jdk-21/legal/java.base/ASSEMBLY_EXCEPTION
jdk-21/legal/java.base/LICENSE
jdk-21/legal/java.base/aes.md
jdk-21/legal/java.base/asm.md
jdk-21/legal/java.base/c-libutl.md
jdk-21/legal/java.base/cldr.md
jdk-21/legal/java.base/icu.md
jdk-21/legal/java.base/public_suffix.md
jdk-21/legal/java.base/unicode.md
jdk-21/legal/java.compiler/
jdk-21/legal/java.compiler/ADDITIONAL_LICENSE_INFO
jdk-21/legal/java.compiler/ASSEMBLY_EXCEPTION
jdk-21/legal/java.compiler/LICENSE
jdk-21/legal/java.datatransfer/
jdk-21/legal/java.datatransfer/ADDITIONAL_LICENSE_INFO
jdk-21/legal/java.datatransfer/ASSEMBLY_EXCEPTION
jdk-21/legal/java.datatransfer/LICENSE
jdk-21/legal/java.desktop/
jdk-21/legal/java.desktop/ADDITIONAL_LICENSE_INFO
jdk-21/legal/java.desktop/ASSEMBLY_EXCEPTION
jdk-21/legal/java.desktop/LICENSE
jdk-21/legal/java.desktop/colorimaging.md
jdk-21/legal/java.desktop/mesa3d.md
jdk-21/legal/java.desktop/pipewire.md
jdk-21/legal/java.desktop/xwd.md
jdk-21/legal/java.instrument/
jdk-21/legal/java.instrument/ADDITIONAL_LICENSE_INFO
jdk-21/legal/java.instrument/ASSEMBLY_EXCEPTION
jdk-21/legal/java.instrument/LICENSE
jdk-21/legal/java.logging/
jdk-21/legal/java.logging/ADDITIONAL_LICENSE_INFO
jdk-21/legal/java.logging/ASSEMBLY_EXCEPTION
jdk-21/legal/java.logging/LICENSE
jdk-21/legal/java.management/
jdk-21/legal/java.management.rmi/
jdk-21/legal/java.management.rmi/ADDITIONAL_LICENSE_INFO
jdk-21/legal/java.management.rmi/ASSEMBLY_EXCEPTION
jdk-21/legal/java.management.rmi/LICENSE
jdk-21/legal/java.management/ADDITIONAL_LICENSE_INFO
jdk-21/legal/java.management/ASSEMBLY_EXCEPTION
jdk-21/legal/java.management/LICENSE
jdk-21/legal/java.naming/
jdk-21/legal/java.naming/ADDITIONAL_LICENSE_INFO
jdk-21/legal/java.naming/ASSEMBLY_EXCEPTION
jdk-21/legal/java.naming/LICENSE
jdk-21/legal/java.net.http/
jdk-21/legal/java.net.http/ADDITIONAL_LICENSE_INFO
jdk-21/legal/java.net.http/ASSEMBLY_EXCEPTION
jdk-21/legal/java.net.http/LICENSE
jdk-21/legal/java.prefs/
jdk-21/legal/java.prefs/ADDITIONAL_LICENSE_INFO
jdk-21/legal/java.prefs/ASSEMBLY_EXCEPTION
jdk-21/legal/java.prefs/LICENSE
jdk-21/legal/java.rmi/
jdk-21/legal/java.rmi/ADDITIONAL_LICENSE_INFO
jdk-21/legal/java.rmi/ASSEMBLY_EXCEPTION
jdk-21/legal/java.rmi/LICENSE
jdk-21/legal/java.scripting/
jdk-21/legal/java.scripting/ADDITIONAL_LICENSE_INFO
jdk-21/legal/java.scripting/ASSEMBLY_EXCEPTION
jdk-21/legal/java.scripting/LICENSE
jdk-21/legal/java.se/
jdk-21/legal/java.se/ADDITIONAL_LICENSE_INFO
jdk-21/legal/java.se/ASSEMBLY_EXCEPTION
jdk-21/legal/java.se/LICENSE
jdk-21/legal/java.security.jgss/
jdk-21/legal/java.security.jgss/ADDITIONAL_LICENSE_INFO
jdk-21/legal/java.security.jgss/ASSEMBLY_EXCEPTION
jdk-21/legal/java.security.jgss/LICENSE
jdk-21/legal/java.security.sasl/
jdk-21/legal/java.security.sasl/ADDITIONAL_LICENSE_INFO
jdk-21/legal/java.security.sasl/ASSEMBLY_EXCEPTION
jdk-21/legal/java.security.sasl/LICENSE
jdk-21/legal/java.smartcardio/
jdk-21/legal/java.smartcardio/ADDITIONAL_LICENSE_INFO
jdk-21/legal/java.smartcardio/ASSEMBLY_EXCEPTION
jdk-21/legal/java.smartcardio/LICENSE
jdk-21/legal/java.smartcardio/pcsclite.md
jdk-21/legal/java.sql/
jdk-21/legal/java.sql.rowset/
jdk-21/legal/java.sql.rowset/ADDITIONAL_LICENSE_INFO
jdk-21/legal/java.sql.rowset/ASSEMBLY_EXCEPTION
jdk-21/legal/java.sql.rowset/LICENSE
jdk-21/legal/java.sql/ADDITIONAL_LICENSE_INFO
jdk-21/legal/java.sql/ASSEMBLY_EXCEPTION
jdk-21/legal/java.sql/LICENSE
jdk-21/legal/java.transaction.xa/
jdk-21/legal/java.transaction.xa/ADDITIONAL_LICENSE_INFO
jdk-21/legal/java.transaction.xa/ASSEMBLY_EXCEPTION
jdk-21/legal/java.transaction.xa/LICENSE
jdk-21/legal/java.xml/
jdk-21/legal/java.xml.crypto/
jdk-21/legal/java.xml.crypto/ADDITIONAL_LICENSE_INFO
jdk-21/legal/java.xml.crypto/ASSEMBLY_EXCEPTION
jdk-21/legal/java.xml.crypto/LICENSE
jdk-21/legal/java.xml.crypto/santuario.md
jdk-21/legal/java.xml/ADDITIONAL_LICENSE_INFO
jdk-21/legal/java.xml/ASSEMBLY_EXCEPTION
jdk-21/legal/java.xml/LICENSE
jdk-21/legal/java.xml/bcel.md
jdk-21/legal/java.xml/dom.md
jdk-21/legal/java.xml/jcup.md
jdk-21/legal/java.xml/xalan.md
jdk-21/legal/java.xml/xerces.md
jdk-21/legal/jdk.accessibility/
jdk-21/legal/jdk.accessibility/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.accessibility/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.accessibility/LICENSE
jdk-21/legal/jdk.attach/
jdk-21/legal/jdk.attach/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.attach/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.attach/LICENSE
jdk-21/legal/jdk.charsets/
jdk-21/legal/jdk.charsets/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.charsets/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.charsets/LICENSE
jdk-21/legal/jdk.compiler/
jdk-21/legal/jdk.compiler/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.compiler/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.compiler/LICENSE
jdk-21/legal/jdk.crypto.cryptoki/
jdk-21/legal/jdk.crypto.cryptoki/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.crypto.cryptoki/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.crypto.cryptoki/LICENSE
jdk-21/legal/jdk.crypto.cryptoki/pkcs11cryptotoken.md
jdk-21/legal/jdk.crypto.cryptoki/pkcs11wrapper.md
jdk-21/legal/jdk.crypto.ec/
jdk-21/legal/jdk.crypto.ec/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.crypto.ec/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.crypto.ec/LICENSE
jdk-21/legal/jdk.dynalink/
jdk-21/legal/jdk.dynalink/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.dynalink/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.dynalink/LICENSE
jdk-21/legal/jdk.dynalink/dynalink.md
jdk-21/legal/jdk.editpad/
jdk-21/legal/jdk.editpad/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.editpad/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.editpad/LICENSE
jdk-21/legal/jdk.httpserver/
jdk-21/legal/jdk.httpserver/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.httpserver/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.httpserver/LICENSE
jdk-21/legal/jdk.incubator.vector/
jdk-21/legal/jdk.incubator.vector/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.incubator.vector/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.incubator.vector/LICENSE
jdk-21/legal/jdk.internal.ed/
jdk-21/legal/jdk.internal.ed/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.internal.ed/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.internal.ed/LICENSE
jdk-21/legal/jdk.internal.jvmstat/
jdk-21/legal/jdk.internal.jvmstat/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.internal.jvmstat/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.internal.jvmstat/LICENSE
jdk-21/legal/jdk.internal.le/
jdk-21/legal/jdk.internal.le/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.internal.le/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.internal.le/LICENSE
jdk-21/legal/jdk.internal.le/jline.md
jdk-21/legal/jdk.internal.opt/
jdk-21/legal/jdk.internal.opt/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.internal.opt/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.internal.opt/LICENSE
jdk-21/legal/jdk.internal.opt/jopt-simple.md
jdk-21/legal/jdk.jartool/
jdk-21/legal/jdk.jartool/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.jartool/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.jartool/LICENSE
jdk-21/legal/jdk.javadoc/
jdk-21/legal/jdk.javadoc/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.javadoc/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.javadoc/LICENSE
jdk-21/legal/jdk.javadoc/jquery.md
jdk-21/legal/jdk.javadoc/jqueryUI.md
jdk-21/legal/jdk.jcmd/
jdk-21/legal/jdk.jcmd/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.jcmd/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.jcmd/LICENSE
jdk-21/legal/jdk.jconsole/
jdk-21/legal/jdk.jconsole/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.jconsole/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.jconsole/LICENSE
jdk-21/legal/jdk.jdeps/
jdk-21/legal/jdk.jdeps/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.jdeps/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.jdeps/LICENSE
jdk-21/legal/jdk.jdi/
jdk-21/legal/jdk.jdi/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.jdi/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.jdi/LICENSE
jdk-21/legal/jdk.jdwp.agent/
jdk-21/legal/jdk.jdwp.agent/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.jdwp.agent/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.jdwp.agent/LICENSE
jdk-21/legal/jdk.jfr/
jdk-21/legal/jdk.jfr/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.jfr/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.jfr/LICENSE
jdk-21/legal/jdk.jlink/
jdk-21/legal/jdk.jlink/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.jlink/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.jlink/LICENSE
jdk-21/legal/jdk.jshell/
jdk-21/legal/jdk.jshell/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.jshell/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.jshell/LICENSE
jdk-21/legal/jdk.jsobject/
jdk-21/legal/jdk.jsobject/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.jsobject/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.jsobject/LICENSE
jdk-21/legal/jdk.jstatd/
jdk-21/legal/jdk.jstatd/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.jstatd/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.jstatd/LICENSE
jdk-21/legal/jdk.localedata/
jdk-21/legal/jdk.localedata/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.localedata/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.localedata/LICENSE
jdk-21/legal/jdk.localedata/cldr.md
jdk-21/legal/jdk.localedata/thaidict.md
jdk-21/legal/jdk.management/
jdk-21/legal/jdk.management.agent/
jdk-21/legal/jdk.management.agent/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.management.agent/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.management.agent/LICENSE
jdk-21/legal/jdk.management.jfr/
jdk-21/legal/jdk.management.jfr/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.management.jfr/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.management.jfr/LICENSE
jdk-21/legal/jdk.management/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.management/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.management/LICENSE
jdk-21/legal/jdk.naming.dns/
jdk-21/legal/jdk.naming.dns/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.naming.dns/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.naming.dns/LICENSE
jdk-21/legal/jdk.naming.rmi/
jdk-21/legal/jdk.naming.rmi/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.naming.rmi/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.naming.rmi/LICENSE
jdk-21/legal/jdk.net/
jdk-21/legal/jdk.net/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.net/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.net/LICENSE
jdk-21/legal/jdk.nio.mapmode/
jdk-21/legal/jdk.nio.mapmode/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.nio.mapmode/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.nio.mapmode/LICENSE
jdk-21/legal/jdk.random/
jdk-21/legal/jdk.random/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.random/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.random/LICENSE
jdk-21/legal/jdk.sctp/
jdk-21/legal/jdk.sctp/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.sctp/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.sctp/LICENSE
jdk-21/legal/jdk.security.auth/
jdk-21/legal/jdk.security.auth/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.security.auth/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.security.auth/LICENSE
jdk-21/legal/jdk.security.jgss/
jdk-21/legal/jdk.security.jgss/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.security.jgss/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.security.jgss/LICENSE
jdk-21/legal/jdk.unsupported/
jdk-21/legal/jdk.unsupported.desktop/
jdk-21/legal/jdk.unsupported.desktop/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.unsupported.desktop/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.unsupported.desktop/LICENSE
jdk-21/legal/jdk.unsupported/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.unsupported/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.unsupported/LICENSE
jdk-21/legal/jdk.xml.dom/
jdk-21/legal/jdk.xml.dom/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.xml.dom/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.xml.dom/LICENSE
jdk-21/legal/jdk.zipfs/
jdk-21/legal/jdk.zipfs/ADDITIONAL_LICENSE_INFO
jdk-21/legal/jdk.zipfs/ASSEMBLY_EXCEPTION
jdk-21/legal/jdk.zipfs/LICENSE
jdk-21/lib/
jdk-21/lib/classlist
jdk-21/lib/ct.sym
jdk-21/lib/fontconfig.bfc
jdk-21/lib/fontconfig.properties.src
jdk-21/lib/jfr/
jdk-21/lib/jfr/default.jfc
jdk-21/lib/jfr/profile.jfc
jdk-21/lib/jrt-fs.jar
@bin jdk-21/lib/jspawnhelper
jdk-21/lib/jvm.cfg
@so jdk-21/lib/libattach.so
@so jdk-21/lib/libawt.so
@so jdk-21/lib/libawt_headless.so
@so jdk-21/lib/libawt_xawt.so
@so jdk-21/lib/libdt_socket.so
@so jdk-21/lib/libextnet.so
@so jdk-21/lib/libfontmanager.so
@so jdk-21/lib/libinstrument.so
@so jdk-21/lib/libj2gss.so
@so jdk-21/lib/libj2pcsc.so
@so jdk-21/lib/libj2pkcs11.so
@so jdk-21/lib/libjaas.so
@so jdk-21/lib/libjava.so
@so jdk-21/lib/libjavajpeg.so
@so jdk-21/lib/libjawt.so
@so jdk-21/lib/libjdwp.so
@so jdk-21/lib/libjimage.so
@so jdk-21/lib/libjli.so
@so jdk-21/lib/libjsig.so
@so jdk-21/lib/liblcms.so
@so jdk-21/lib/libmanagement.so
@so jdk-21/lib/libmanagement_agent.so
@so jdk-21/lib/libmanagement_ext.so
@so jdk-21/lib/libmlib_image.so
@so jdk-21/lib/libnet.so
@so jdk-21/lib/libnio.so
@so jdk-21/lib/libprefs.so
@so jdk-21/lib/librmi.so
@so jdk-21/lib/libsplashscreen.so
@so jdk-21/lib/libsyslookup.so
@so jdk-21/lib/libverify.so
@so jdk-21/lib/libzip.so
jdk-21/lib/modules
jdk-21/lib/psfont.properties.ja
jdk-21/lib/psfontj2d.properties
jdk-21/lib/security/
jdk-21/lib/security/blocked.certs
jdk-21/lib/security/cacerts
jdk-21/lib/security/default.policy
jdk-21/lib/security/public_suffix_list.dat
jdk-21/lib/server/
jdk-21/lib/server/classes.jsa
@so jdk-21/lib/server/libjsig.so
@so jdk-21/lib/server/libjvm.so
jdk-21/lib/src.zip
jdk-21/lib/tzdb.dat
@mandir jdk-21/man/
jdk-21/man/man1/
@man jdk-21/man/man1/jar.1
@man jdk-21/man/man1/jarsigner.1
@man jdk-21/man/man1/java.1
@man jdk-21/man/man1/javac.1
@man jdk-21/man/man1/javadoc.1
@man jdk-21/man/man1/javap.1
@man jdk-21/man/man1/jcmd.1
@man jdk-21/man/man1/jconsole.1
@man jdk-21/man/man1/jdb.1
@man jdk-21/man/man1/jdeprscan.1
@man jdk-21/man/man1/jdeps.1
@man jdk-21/man/man1/jfr.1
@man jdk-21/man/man1/jinfo.1
@man jdk-21/man/man1/jlink.1
@man jdk-21/man/man1/jmap.1
@man jdk-21/man/man1/jmod.1
@man jdk-21/man/man1/jps.1
@man jdk-21/man/man1/jrunscript.1
@man jdk-21/man/man1/jshell.1
@man jdk-21/man/man1/jstack.1
@man jdk-21/man/man1/jstat.1
@man jdk-21/man/man1/jstatd.1
@man jdk-21/man/man1/jwebserver.1
@man jdk-21/man/man1/keytool.1
@man jdk-21/man/man1/rmiregistry.1
@man jdk-21/man/man1/serialver.1
jdk-21/release
share/doc/pkg-readmes/${PKGSTEM}

14
devel/jdk/21/pkg/README Executable file
View file

@ -0,0 +1,14 @@
+-----------------------------------------------------------------------
| Running ${PKGSTEM} on OpenBSD
+-----------------------------------------------------------------------
ipv4 and v6 networking
======================
ipv4 to ipv6 address mapping is disabled on OpenBSD. This means the
jdk can only use ipv4 addresses or ipv6 addresses but not both at
the same time. By default ipv4 addresses are enabled. To use ipv6
addresses set the following properties when you start java:
-Djava.net.preferIPv4Stack=false
-Djava.net.preferIPv6Stack=true
-Djava.net.preferIPv6Addresses=true

View file

@ -2,5 +2,6 @@ SUBDIR =
SUBDIR += 1.8
SUBDIR += 11
SUBDIR += 17
SUBDIR += 21
.include <bsd.port.subdir.mk>

View file

@ -1,4 +1,4 @@
# Set MODJAVA_VER to 1.8, 11 or 17 based on the version of the jdk needed
# Set MODJAVA_VER to 1.8, 11, 17 or 21 based on the version of the jdk needed
# for the port. Append a + (e.g., 11+) if any higher version is acceptable.
MODJAVA_VER?=
@ -22,11 +22,12 @@ MODJAVA_VER?=
#
.if ${MODJAVA_VER:S/+//} != "1.8" && ${MODJAVA_VER:S/+//} != "11" && \
${MODJAVA_VER:S/+//} != "17"
ERRORS+="Fatal: MODJAVA_VER must be one of 1.8, 11 or 17 with an optional + suffix."
${MODJAVA_VER:S/+//} != "17" && ${MODJAVA_VER:S/+//} != "21"
ERRORS+="Fatal: MODJAVA_VER must be one of 1.8, 11, 17 or 21"
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
@ -38,9 +39,12 @@ MODJAVA_VER?=
.elif ${MODJAVA_VER:S/+//} == "11"
JAVA_HOME= ${LOCALBASE}/jdk-11
MODJAVA_BUILD_DEPENDS+= jdk->=11v0,<12v0:devel/jdk/11
.else
.elif ${MODJAVA_VER:S/+//} == "17"
JAVA_HOME= ${LOCALBASE}/jdk-17
MODJAVA_BUILD_DEPENDS+= jdk->=17v0,<18v0:devel/jdk/17
.else
JAVA_HOME= ${LOCALBASE}/jdk-21
MODJAVA_BUILD_DEPENDS+= jdk->=21v0,<22v0:devel/jdk/21
.endif
.if ${MODJAVA_VER:M*+}