pkgsrc-WIP-changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
openjdk25: fix various netbsd-9 and ZeroVM issues
Module Name: pkgsrc-wip
Committed By: Tobias Nygren <tnn%NetBSD.org@localhost>
Pushed By: tnn
Date: Sun Sep 6 14:50:20 2026 +0200
Changeset: c2d4481459b6da869b7d03837c97ada10699f131
Modified Files:
openjdk25/Makefile
openjdk25/PLIST
openjdk25/distinfo
openjdk25/options.mk
openjdk25/patches/patch-make_autoconf_buildjdk-spec.gmk.template
openjdk25/patches/patch-src_hotspot_os__cpu_bsd__aarch64_vm__version__bsd__aarch64.cpp
Added Files:
openjdk25/patches/patch-make_common_JdkNativeCompilation.gmk
openjdk25/patches/patch-src_hotspot_cpu_aarch64_macroAssembler__aarch64.cpp
openjdk25/patches/patch-src_hotspot_os__cpu_bsd__zero_os__bsd__zero.cpp
openjdk25/patches/patch-src_hotspot_os_posix_os__posix.cpp
openjdk25/patches/patch-src_hotspot_share_runtime_arguments.cpp
Log Message:
openjdk25: fix various netbsd-9 and ZeroVM issues
To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=c2d4481459b6da869b7d03837c97ada10699f131
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
diffstat:
openjdk25/Makefile | 5 ---
openjdk25/PLIST | 32 +++++++--------
openjdk25/distinfo | 9 ++++-
openjdk25/options.mk | 4 +-
.../patch-make_autoconf_buildjdk-spec.gmk.template | 2 +-
.../patch-make_common_JdkNativeCompilation.gmk | 17 ++++++++
...hotspot_cpu_aarch64_macroAssembler__aarch64.cpp | 25 ++++++++++++
..._cpu_bsd__aarch64_vm__version__bsd__aarch64.cpp | 14 ++++++-
...src_hotspot_os__cpu_bsd__zero_os__bsd__zero.cpp | 45 ++++++++++++++++++++++
.../patch-src_hotspot_os_posix_os__posix.cpp | 16 ++++++++
.../patch-src_hotspot_share_runtime_arguments.cpp | 16 ++++++++
11 files changed, 160 insertions(+), 25 deletions(-)
diffs:
diff --git a/openjdk25/Makefile b/openjdk25/Makefile
index 8589ec6be0..392fa31335 100644
--- a/openjdk25/Makefile
+++ b/openjdk25/Makefile
@@ -147,11 +147,6 @@ SUBST_SED.kqueue+= -e 's/static final int EV_ONESHOT = 0x0010;/static final int
SUBST_SED.kqueue+= -e 's/static final int EV_CLEAR = 0x0020;/static final int EV_CLEAR = 0x0008;/'
.endif
-PLIST_VARS+= jvmci
-.if (${MACHINE_ARCH} == "x86_64" || ${MACHINE_ARCH} == "aarch64") && !empty(PKG_OPTIONS:Mjdk-hotspot-vm)
-PLIST.jvmci= yes
-.endif
-
.if ${OPSYS} == "NetBSD"
TOOLS_PLATFORM.unzip=
.endif
diff --git a/openjdk25/PLIST b/openjdk25/PLIST
index 9888fd756c..913c468532 100644
--- a/openjdk25/PLIST
+++ b/openjdk25/PLIST
@@ -216,8 +216,8 @@ java/openjdk25/jmods/jdk.crypto.cryptoki.jmod
java/openjdk25/jmods/jdk.crypto.ec.jmod
java/openjdk25/jmods/jdk.dynalink.jmod
java/openjdk25/jmods/jdk.editpad.jmod
-java/openjdk25/jmods/jdk.graal.compiler.jmod
-java/openjdk25/jmods/jdk.graal.compiler.management.jmod
+${PLIST.hotspot}java/openjdk25/jmods/jdk.graal.compiler.jmod
+${PLIST.hotspot}java/openjdk25/jmods/jdk.graal.compiler.management.jmod
java/openjdk25/jmods/jdk.httpserver.jmod
java/openjdk25/jmods/jdk.incubator.vector.jmod
java/openjdk25/jmods/jdk.internal.ed.jmod
@@ -225,7 +225,7 @@ java/openjdk25/jmods/jdk.internal.jvmstat.jmod
java/openjdk25/jmods/jdk.internal.le.jmod
java/openjdk25/jmods/jdk.internal.md.jmod
java/openjdk25/jmods/jdk.internal.opt.jmod
-${PLIST.jvmci}java/openjdk25/jmods/jdk.internal.vm.ci.jmod
+${PLIST.hotspot}java/openjdk25/jmods/jdk.internal.vm.ci.jmod
java/openjdk25/jmods/jdk.jartool.jmod
java/openjdk25/jmods/jdk.javadoc.jmod
java/openjdk25/jmods/jdk.jcmd.jmod
@@ -379,12 +379,12 @@ java/openjdk25/legal/jdk.dynalink/dynalink.md
java/openjdk25/legal/jdk.editpad/ADDITIONAL_LICENSE_INFO
java/openjdk25/legal/jdk.editpad/ASSEMBLY_EXCEPTION
java/openjdk25/legal/jdk.editpad/LICENSE
-java/openjdk25/legal/jdk.graal.compiler.management/ADDITIONAL_LICENSE_INFO
-java/openjdk25/legal/jdk.graal.compiler.management/ASSEMBLY_EXCEPTION
-java/openjdk25/legal/jdk.graal.compiler.management/LICENSE
-java/openjdk25/legal/jdk.graal.compiler/ADDITIONAL_LICENSE_INFO
-java/openjdk25/legal/jdk.graal.compiler/ASSEMBLY_EXCEPTION
-java/openjdk25/legal/jdk.graal.compiler/LICENSE
+${PLIST.hotspot}java/openjdk25/legal/jdk.graal.compiler.management/ADDITIONAL_LICENSE_INFO
+${PLIST.hotspot}java/openjdk25/legal/jdk.graal.compiler.management/ASSEMBLY_EXCEPTION
+${PLIST.hotspot}java/openjdk25/legal/jdk.graal.compiler.management/LICENSE
+${PLIST.hotspot}java/openjdk25/legal/jdk.graal.compiler/ADDITIONAL_LICENSE_INFO
+${PLIST.hotspot}java/openjdk25/legal/jdk.graal.compiler/ASSEMBLY_EXCEPTION
+${PLIST.hotspot}java/openjdk25/legal/jdk.graal.compiler/LICENSE
java/openjdk25/legal/jdk.httpserver/ADDITIONAL_LICENSE_INFO
java/openjdk25/legal/jdk.httpserver/ASSEMBLY_EXCEPTION
java/openjdk25/legal/jdk.httpserver/LICENSE
@@ -409,9 +409,9 @@ java/openjdk25/legal/jdk.internal.opt/ADDITIONAL_LICENSE_INFO
java/openjdk25/legal/jdk.internal.opt/ASSEMBLY_EXCEPTION
java/openjdk25/legal/jdk.internal.opt/LICENSE
java/openjdk25/legal/jdk.internal.opt/jopt-simple.md
-${PLIST.jvmci}java/openjdk25/legal/jdk.internal.vm.ci/ADDITIONAL_LICENSE_INFO
-${PLIST.jvmci}java/openjdk25/legal/jdk.internal.vm.ci/ASSEMBLY_EXCEPTION
-${PLIST.jvmci}java/openjdk25/legal/jdk.internal.vm.ci/LICENSE
+${PLIST.hotspot}java/openjdk25/legal/jdk.internal.vm.ci/ADDITIONAL_LICENSE_INFO
+${PLIST.hotspot}java/openjdk25/legal/jdk.internal.vm.ci/ASSEMBLY_EXCEPTION
+${PLIST.hotspot}java/openjdk25/legal/jdk.internal.vm.ci/LICENSE
java/openjdk25/legal/jdk.jartool/ADDITIONAL_LICENSE_INFO
java/openjdk25/legal/jdk.jartool/ASSEMBLY_EXCEPTION
java/openjdk25/legal/jdk.jartool/LICENSE
@@ -521,6 +521,8 @@ java/openjdk25/lib/libdt_socket${DBGEXT}
java/openjdk25/lib/libdt_socket.so
java/openjdk25/lib/libextnet${DBGEXT}
java/openjdk25/lib/libextnet.so
+${PLIST.zero}java/openjdk25/lib/libfallbackLinker${DBGEXT}
+${PLIST.zero}java/openjdk25/lib/libfallbackLinker.so
java/openjdk25/lib/libfontmanager${DBGEXT}
java/openjdk25/lib/libfontmanager.so
java/openjdk25/lib/libinstrument${DBGEXT}
@@ -581,9 +583,9 @@ java/openjdk25/lib/psfontj2d.properties
java/openjdk25/lib/security/blocked.certs
java/openjdk25/lib/security/cacerts
java/openjdk25/lib/security/public_suffix_list.dat
-java/openjdk25/lib/server/libjsig.so
-java/openjdk25/lib/server/libjvm${DBGEXT}
-java/openjdk25/lib/server/libjvm.so
+java/openjdk25/lib/${BUILD_VARIANT}/libjsig.so
+java/openjdk25/lib/${BUILD_VARIANT}/libjvm${DBGEXT}
+java/openjdk25/lib/${BUILD_VARIANT}/libjvm.so
java/openjdk25/lib/src.zip
java/openjdk25/lib/tzdb.dat
java/openjdk25/release
diff --git a/openjdk25/distinfo b/openjdk25/distinfo
index 55697b9355..85643c186d 100644
--- a/openjdk25/distinfo
+++ b/openjdk25/distinfo
@@ -3,16 +3,21 @@ $NetBSD: distinfo,v 1.17 2026/08/16 11:54:29 tnn Exp $
BLAKE2s (jdk25u-jdk-25.0.4-7-1.tar.gz) = db81e919589070cbef63d5f4df43a690cb5119a72f75b12eb1a289621b4e2b97
SHA512 (jdk25u-jdk-25.0.4-7-1.tar.gz) = ac564673ce14b192f3136d3d92e6125d412f1f449b3fcbe1f47dd0af7a6ccf6ec4a8f4c5074dcab17faf09fc2df54e0430c1e28ea7b8e171169ad97f2213b3fe
Size (jdk25u-jdk-25.0.4-7-1.tar.gz) = 119810522 bytes
-SHA1 (patch-make_autoconf_buildjdk-spec.gmk.template) = e9123dee6507aea4a0748d513f2f6301edc88e7f
+SHA1 (patch-make_autoconf_buildjdk-spec.gmk.template) = 050c1ac0eaa96240651555264eb0e25d5537ab04
SHA1 (patch-make_autoconf_flags-cflags.m4) = 7b77e6688805e4c290b5a5948c054463225ccd2d
SHA1 (patch-make_autoconf_hotspot.m4) = 6097c29677f4b84c3821b5cf7ac8c397376027d0
SHA1 (patch-make_autoconf_lib-alsa.m4) = 999fbf951363f6b49b22aad81537728f22d7c381
SHA1 (patch-make_autoconf_lib-bundled.m4) = 5f5b638a08abf2f2066a122a825cfa3db9e95139
SHA1 (patch-make_autoconf_lib-freetype.m4) = bd791b99e4fd87f24432831fba1e814dd199445f
SHA1 (patch-make_autoconf_lib-x11.m4) = 38038e6d7cfc2d15fb3537a52f11d2961cc2ec99
+SHA1 (patch-make_common_JdkNativeCompilation.gmk) = 97256807fe59d690fe0aabdcc9d221f914aac259
SHA1 (patch-make_common_native_Link.gmk) = b453202c240959e42f1a1ba6dc84ce6c9f3a5dcc
-SHA1 (patch-src_hotspot_os__cpu_bsd__aarch64_vm__version__bsd__aarch64.cpp) = 989bd899a7a65ad0e498dc9a4b377cd3f511d4d8
+SHA1 (patch-src_hotspot_cpu_aarch64_macroAssembler__aarch64.cpp) = fa17af7a6dc4a91d6fe7abfc6060f0d102983928
+SHA1 (patch-src_hotspot_os__cpu_bsd__aarch64_vm__version__bsd__aarch64.cpp) = 2bf688d0e569b5b53c9da4910fdfee19c2e26118
+SHA1 (patch-src_hotspot_os__cpu_bsd__zero_os__bsd__zero.cpp) = 543d5f4c39de0d17347651b0e592fc153f08caef
SHA1 (patch-src_hotspot_os_bsd_os__bsd.cpp) = 5561ed502aa925cd3d0514c7ec298e0491d14ffc
+SHA1 (patch-src_hotspot_os_posix_os__posix.cpp) = ee7fd66ab5513a8d9027960e0b85341e69b3d698
+SHA1 (patch-src_hotspot_share_runtime_arguments.cpp) = f8a17090e8be99735553d696d4ef398a23a3a524
SHA1 (patch-src_java.desktop_bsd_data_fontconfig_fontconfig.properties) = 01aff1bb2c14265b0ebcc9d12fba8d48b876d36e
SHA1 (patch-src_java.desktop_unix_native_common_awt_fontpath.c) = 11f4b918f5f30b8f937308ed1263f11357283fc5
SHA1 (patch-src_java.desktop_unix_native_libpipewire_include_spa_utils_string.h) = f677c9b907b285d6b84de65396f50e2a5e52caba
diff --git a/openjdk25/options.mk b/openjdk25/options.mk
index 3ae838f7d3..3ddfd94d3c 100644
--- a/openjdk25/options.mk
+++ b/openjdk25/options.mk
@@ -105,9 +105,11 @@ CONFIGURE_ARGS+= --with-stdc++lib=dynamic
#
# Build variant. Zero VM builds a portable JVM without assembly optimization.
#
-PLIST_VARS+= hotspot
+PLIST_SUBST+= BUILD_VARIANT=${BUILD_VARIANT}
+PLIST_VARS+= hotspot zero
.if !empty(PKG_OPTIONS:Mjdk-zero-vm)
BUILD_VARIANT= zero
+PLIST.zero= yes
.include "../../devel/libffi/buildlink3.mk"
.elif !empty(PKG_OPTIONS:Mjdk-hotspot-vm)
BUILD_VARIANT= server
diff --git a/openjdk25/patches/patch-make_autoconf_buildjdk-spec.gmk.template b/openjdk25/patches/patch-make_autoconf_buildjdk-spec.gmk.template
index 6891c32862..b6cf1b0211 100644
--- a/openjdk25/patches/patch-make_autoconf_buildjdk-spec.gmk.template
+++ b/openjdk25/patches/patch-make_autoconf_buildjdk-spec.gmk.template
@@ -15,7 +15,7 @@ use "zero". This is fine for pkgsrc since we only ever build one variant.
-JVM_VARIANT_MAIN := server
+JVM_VARIANTS := @JVM_VARIANTS@
+JVM_VARIANT_MAIN := @JVM_VARIANT_MAIN@
-+JVM_FEATURES_zero := g1gc serialgc zero
++JVM_FEATURES_zero := cds g1gc serialgc zero
JVM_FEATURES_server := cds compiler1 compiler2 g1gc serialgc
# Some users still set EXTRA_*FLAGS on the make command line. Must
diff --git a/openjdk25/patches/patch-make_common_JdkNativeCompilation.gmk b/openjdk25/patches/patch-make_common_JdkNativeCompilation.gmk
new file mode 100644
index 0000000000..806c09c233
--- /dev/null
+++ b/openjdk25/patches/patch-make_common_JdkNativeCompilation.gmk
@@ -0,0 +1,17 @@
+$NetBSD$
+
+c.f. buildjdk-spec.gmk.template.patch.
+
+--- make/common/JdkNativeCompilation.gmk.orig 2026-09-06 09:55:09.184970691 +0000
++++ make/common/JdkNativeCompilation.gmk
+@@ -123,7 +123,9 @@ define ResolveLibPath
+ # Special treatment for hotspot
+ ifeq ($(CREATING_BUILDJDK), true)
+ # When building a buildjdk, it's always only the server variant
+- $1_$2_JVM_VARIANT_PATH := server
++ # xxx pkgsrc: On 32-bit native builds zero may be the only available variant
++ # so follow the spec.
++ $1_$2_JVM_VARIANT_PATH := $(JVM_VARIANT_MAIN)
+ else
+ $1_$2_JVM_VARIANT_PATH := $(JVM_VARIANT_MAIN)
+ endif
diff --git a/openjdk25/patches/patch-src_hotspot_cpu_aarch64_macroAssembler__aarch64.cpp b/openjdk25/patches/patch-src_hotspot_cpu_aarch64_macroAssembler__aarch64.cpp
new file mode 100644
index 0000000000..bf462d17f3
--- /dev/null
+++ b/openjdk25/patches/patch-src_hotspot_cpu_aarch64_macroAssembler__aarch64.cpp
@@ -0,0 +1,25 @@
+$NetBSD$
+
+GCC 7 (on NetBSD 9) complains:
+
+macroAssembler_aarch64.cpp: In member function 'void MacroAssembler::clinit_barrier(Register, Register, Label*, Label*)':
+macroAssembler_aarch64.cpp:2048:48: error: call of overloaded 'cmp(Register&, InstanceKlass::ClassState)' is ambiguous
+cmp(scratch, InstanceKlass::fully_initialized);
+macroAssembler_aarch64.hpp:204:15: note: candidate: void MacroAssembler::cmp(Register, unsigned char)
+inline void cmp(Register Rd, unsigned char imm8) { subs(zr, Rd, imm8); }
+macroAssembler_aarch64.hpp:205:15: note: candidate: void MacroAssembler::cmp(Register, unsigned int) <deleted>
+inline void cmp(Register Rd, unsigned imm) = delete;
+
+GCC 7 is not supported by OpenJDK 25 but it's an easy fix so why not.
+
+--- src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp.orig 2026-09-05 19:06:13.774758654 +0000
++++ src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp
+@@ -2045,7 +2045,7 @@ void MacroAssembler::clinit_barrier(Register klass, Re
+ // Fast path check: class is fully initialized
+ lea(scratch, Address(klass, InstanceKlass::init_state_offset()));
+ ldarb(scratch, scratch);
+- cmp(scratch, InstanceKlass::fully_initialized);
++ cmp(scratch, (unsigned char)InstanceKlass::fully_initialized);
+ br(Assembler::EQ, *L_fast_path);
+
+ // Fast path check: current thread is initializer thread
diff --git a/openjdk25/patches/patch-src_hotspot_os__cpu_bsd__aarch64_vm__version__bsd__aarch64.cpp b/openjdk25/patches/patch-src_hotspot_os__cpu_bsd__aarch64_vm__version__bsd__aarch64.cpp
index b260fa3a78..21b4b2f248 100644
--- a/openjdk25/patches/patch-src_hotspot_os__cpu_bsd__aarch64_vm__version__bsd__aarch64.cpp
+++ b/openjdk25/patches/patch-src_hotspot_os__cpu_bsd__aarch64_vm__version__bsd__aarch64.cpp
@@ -18,7 +18,7 @@ Add runtime CPU detection support for NetBSD.
void VM_Version::get_compatible_board(char *buf, int buflen) {
assert(buf != nullptr, "invalid argument");
-@@ -545,6 +552,98 @@ void VM_Version::get_os_cpu_info() {
+@@ -545,6 +552,110 @@ void VM_Version::get_os_cpu_info() {
}
#endif // __FreeBSD__
#endif // __FreeBSD__ || __OpenBSD__
@@ -66,19 +66,31 @@ Add runtime CPU detection support for NetBSD.
+ num_sha2++;
+ if (__SHIFTOUT(id.ac_aa64isar0, ID_AA64ISAR0_EL1_CRC32) >= ID_AA64ISAR0_EL1_CRC32_CRC32X)
+ num_crc32++;
++#if defined(ID_AA64ISAR0_EL1_ATOMIC_SWP)
+ if (__SHIFTOUT(id.ac_aa64isar0, ID_AA64ISAR0_EL1_ATOMIC) >= ID_AA64ISAR0_EL1_ATOMIC_SWP)
+ num_lse++;
++#endif
++#if defined(ID_AA64ISAR1_EL1_DPB_CVAP)
+ if (__SHIFTOUT(id.ac_aa64isar1, ID_AA64ISAR1_EL1_DPB) >= ID_AA64ISAR1_EL1_DPB_CVAP)
+ num_dcpop++;
++#endif
++#if defined(ID_AA64ISAR0_EL1_SHA3_EOR3)
+ if (__SHIFTOUT(id.ac_aa64isar0, ID_AA64ISAR0_EL1_SHA3) >= ID_AA64ISAR0_EL1_SHA3_EOR3)
+ num_sha3++;
++#endif
++#if defined(ID_AA64ISAR0_EL1_SHA2_SHA512HSU)
+ if (__SHIFTOUT(id.ac_aa64isar0, ID_AA64ISAR0_EL1_SHA2) >= ID_AA64ISAR0_EL1_SHA2_SHA512HSU)
+ num_sha512++;
++#endif
++#if defined(ID_AA64PFR0_EL1_SVE_IMPL)
+ if (__SHIFTOUT(id.ac_aa64pfr0, ID_AA64PFR0_EL1_SVE) >= ID_AA64PFR0_EL1_SVE_IMPL)
+ num_sve++;
++#endif
++#if defined(ID_AA64ISAR1_EL1_APA_QARMA) && defined(ID_AA64ISAR1_EL1_API_SUPPORTED)
+ if (__SHIFTOUT(id.ac_aa64isar1, ID_AA64ISAR1_EL1_APA) >= ID_AA64ISAR1_EL1_APA_QARMA ||
+ __SHIFTOUT(id.ac_aa64isar1, ID_AA64ISAR1_EL1_API) >= ID_AA64ISAR1_EL1_API_SUPPORTED)
+ num_paca++;
++#endif
+ // TODO: SVE2 and SVE_BITPERM live in id.ac_aa64zfr0 but shiftout macros are not yet added to armreg.h
+ }
+ _features = 0;
diff --git a/openjdk25/patches/patch-src_hotspot_os__cpu_bsd__zero_os__bsd__zero.cpp b/openjdk25/patches/patch-src_hotspot_os__cpu_bsd__zero_os__bsd__zero.cpp
new file mode 100644
index 0000000000..d74a354b79
--- /dev/null
+++ b/openjdk25/patches/patch-src_hotspot_os__cpu_bsd__zero_os__bsd__zero.cpp
@@ -0,0 +1,45 @@
+$NetBSD$
+
+Fix zero build on NetBSD.
+
+--- src/hotspot/os_cpu/bsd_zero/os_bsd_zero.cpp.orig 2026-09-05 20:54:45.904702461 +0000
++++ src/hotspot/os_cpu/bsd_zero/os_bsd_zero.cpp
+@@ -91,7 +91,11 @@ address os::Posix::ucontext_get_pc(const ucontext_t* u
+
+ address os::Posix::ucontext_get_pc(const ucontext_t* uc) {
+ if (DecodeErrorContext) {
+-#if defined(IA32)
++#if defined(__NetBSD__) && defined(IA32)
++ return (address)uc->uc_mcontext.__gregs[_REG_EIP];
++#elif defined(__NetBSD__) && defined(AARCH64)
++ return (address)uc->uc_mcontext.__gregs[_REG_ELR];
++#elif defined(IA32)
+ return (address)uc->uc_mcontext.mc_eip;
+ #elif defined(AMD64)
+ return (address)uc->uc_mcontext.mc_rip;
+@@ -116,7 +120,11 @@ intptr_t* os::Bsd::ucontext_get_sp(const ucontext_t* u
+
+ intptr_t* os::Bsd::ucontext_get_sp(const ucontext_t* uc) {
+ if (DecodeErrorContext) {
+-#if defined(IA32)
++#if defined(__NetBSD__) && defined(IA32)
++ return (intptr_t*)uc->uc_mcontext.__gregs[_REG_ESP];
++#elif defined(__NetBSD__) && defined(AARCH64)
++ return (intptr_t*)uc->uc_mcontext.__gregs[_REG_SP];
++#elif defined(IA32)
+ return (intptr_t*)uc->uc_mcontext.mc_esp;
+ #elif defined(AMD64)
+ return (intptr_t*)uc->uc_mcontext.mc_rsp;
+@@ -137,7 +145,11 @@ intptr_t* os::Bsd::ucontext_get_fp(const ucontext_t* u
+
+ intptr_t* os::Bsd::ucontext_get_fp(const ucontext_t* uc) {
+ if (DecodeErrorContext) {
+-#if defined(IA32)
++#if defined(__NetBSD__) && defined(IA32)
++ return (intptr_t*)uc->uc_mcontext.__gregs[_REG_EBP];
++#elif defined(__NetBSD__) && defined(AARCH64)
++ return (intptr_t*)uc->uc_mcontext.__gregs[_REG_FP];
++#elif defined(IA32)
+ return (intptr_t*)uc->uc_mcontext.mc_ebp;
+ #elif defined(AMD64)
+ return (intptr_t*)uc->uc_mcontext.mc_rbp;
diff --git a/openjdk25/patches/patch-src_hotspot_os_posix_os__posix.cpp b/openjdk25/patches/patch-src_hotspot_os_posix_os__posix.cpp
new file mode 100644
index 0000000000..6b34fdcc27
--- /dev/null
+++ b/openjdk25/patches/patch-src_hotspot_os_posix_os__posix.cpp
@@ -0,0 +1,16 @@
+$NetBSD$
+
+NetBSD 9 has no PTHREAD_STACK_MIN declaration.
+
+--- src/hotspot/os/posix/os_posix.cpp.orig 2026-09-05 19:12:57.352207078 +0000
++++ src/hotspot/os/posix/os_posix.cpp
+@@ -105,6 +105,9 @@ static int clock_tics_per_sec = 100;
+ static int clock_tics_per_sec = 100;
+
+ // Platform minimum stack allowed
++#if defined(__NetBSD__) && !defined(PTHREAD_STACK_MIN)
++#define PTHREAD_STACK_MIN 4096 /* MIN_PAGE_SIZE */
++#endif
+ size_t os::_os_min_stack_allowed = PTHREAD_STACK_MIN;
+
+ // Check core dump limit and report possible place where core can be found
diff --git a/openjdk25/patches/patch-src_hotspot_share_runtime_arguments.cpp b/openjdk25/patches/patch-src_hotspot_share_runtime_arguments.cpp
new file mode 100644
index 0000000000..83c6705fed
--- /dev/null
+++ b/openjdk25/patches/patch-src_hotspot_share_runtime_arguments.cpp
@@ -0,0 +1,16 @@
+$NetBSD$
+
+WIP try to prevent overflow on 32-bit when running in a chroot
+and the host has more than 4 GB of RAM.
+
+--- src/hotspot/share/runtime/arguments.cpp.orig 2026-09-05 22:40:16.647006757 +0000
++++ src/hotspot/share/runtime/arguments.cpp
+@@ -1534,6 +1534,8 @@ void Arguments::set_heap_size() {
+ reasonable_max = MIN2(reasonable_max, (julong)ErgoHeapSizeLimit);
+ }
+
++ reasonable_max = MIN2(reasonable_max, (julong)ULONG_MAX);
++
+ reasonable_max = limit_heap_by_allocatable_memory(reasonable_max);
+
+ if (!FLAG_IS_DEFAULT(InitialHeapSize)) {
Home |
Main Index |
Thread Index |
Old Index