pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/lang/openjdk21
Module Name: pkgsrc
Committed By: tnn
Date: Sun Aug 16 11:54:29 UTC 2026
Modified Files:
pkgsrc/lang/openjdk21: distinfo
Added Files:
pkgsrc/lang/openjdk21/patches:
patch-src_hotspot_os__cpu_bsd__aarch64_vm__version__bsd__aarch64.cpp
Log Message:
openjdk21: Add runtime CPU detection support for NetBSD aarch64
To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 pkgsrc/lang/openjdk21/distinfo
cvs rdiff -u -r0 -r1.1 \
pkgsrc/lang/openjdk21/patches/patch-src_hotspot_os__cpu_bsd__aarch64_vm__version__bsd__aarch64.cpp
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: pkgsrc/lang/openjdk21/distinfo
diff -u pkgsrc/lang/openjdk21/distinfo:1.16 pkgsrc/lang/openjdk21/distinfo:1.17
--- pkgsrc/lang/openjdk21/distinfo:1.16 Fri Aug 14 12:52:05 2026
+++ pkgsrc/lang/openjdk21/distinfo Sun Aug 16 11:54:29 2026
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.16 2026/08/14 12:52:05 ryoon Exp $
+$NetBSD: distinfo,v 1.17 2026/08/16 11:54:29 tnn Exp $
BLAKE2s (bootstrap-jdk-1.21.0.1.12-netbsd-9-amd64-20231207.tar.xz) = 017a9d787a34faa997d72ac69bcafd9c8ab72354e3a1b751d1cb5d376b364f72
SHA512 (bootstrap-jdk-1.21.0.1.12-netbsd-9-amd64-20231207.tar.xz) = 7ec4208363f44a378674a2b87687ab7facb60bf73118ebd4bec35f7912f073365b36efc4c4b3c034bc448139cb81106e18d6d3b1db45f4ab086ce1ed72bc21bf
@@ -20,6 +20,7 @@ SHA1 (patch-make_autoconf_lib-bundled.m4
SHA1 (patch-make_autoconf_lib-freetype.m4) = bd791b99e4fd87f24432831fba1e814dd199445f
SHA1 (patch-make_autoconf_lib-x11.m4) = 38038e6d7cfc2d15fb3537a52f11d2961cc2ec99
SHA1 (patch-make_lib_Awt2dLibraries.gmk) = d69fa8c5cab173be2f41cfbd6479dad60a6337db
+SHA1 (patch-src_hotspot_os__cpu_bsd__aarch64_vm__version__bsd__aarch64.cpp) = 3e0597bf836b23ae1a808834a0c1a9874ae47915
SHA1 (patch-src_hotspot_os_bsd_os__bsd.cpp) = 5561ed502aa925cd3d0514c7ec298e0491d14ffc
SHA1 (patch-src_hotspot_share_runtime_threadWXSetters.inline.hpp) = f704bb060803e500415b5d300e26857cf7288ca5
SHA1 (patch-src_java.desktop_bsd_data_fontconfig_fontconfig.properties) = 32eda43f536dc3a9afb4f1f5f7acae8cb020d546
Added files:
Index: pkgsrc/lang/openjdk21/patches/patch-src_hotspot_os__cpu_bsd__aarch64_vm__version__bsd__aarch64.cpp
diff -u /dev/null pkgsrc/lang/openjdk21/patches/patch-src_hotspot_os__cpu_bsd__aarch64_vm__version__bsd__aarch64.cpp:1.1
--- /dev/null Sun Aug 16 11:54:29 2026
+++ pkgsrc/lang/openjdk21/patches/patch-src_hotspot_os__cpu_bsd__aarch64_vm__version__bsd__aarch64.cpp Sun Aug 16 11:54:29 2026
@@ -0,0 +1,119 @@
+$NetBSD: patch-src_hotspot_os__cpu_bsd__aarch64_vm__version__bsd__aarch64.cpp,v 1.1 2026/08/16 11:54:29 tnn Exp $
+
+Add runtime CPU detection support for NetBSD.
+
+--- src/hotspot/os_cpu/bsd_aarch64/vm_version_bsd_aarch64.cpp.orig 2026-08-16 10:56:39.893223726 +0000
++++ src/hotspot/os_cpu/bsd_aarch64/vm_version_bsd_aarch64.cpp
+@@ -27,6 +27,13 @@
+ #include "precompiled.hpp"
+ #include "runtime/os.hpp"
+ #include "vm_version_aarch64.hpp"
++#if defined(__NetBSD__)
++#include "register_aarch64.hpp" // for FloatRegister
++#include <sys/param.h>
++#include <sys/sysctl.h>
++#include <machine/armreg.h>
++#include <stdio.h>
++#endif
+
+ void VM_Version::get_compatible_board(char *buf, int buflen) {
+ assert(buf != nullptr, "invalid argument");
+@@ -541,6 +548,98 @@ void VM_Version::get_os_cpu_info() {
+ }
+ #endif // __FreeBSD__
+ #endif // __FreeBSD__ || __OpenBSD__
++
++#if defined(__NetBSD__)
++ size_t len;
++ int curcpu;
++ int mib[] = { CTL_HW, HW_NCPU };
++ int ncpu;
++ struct aarch64_sysctl_cpu_id id;
++ char path[32];
++ int num_fp = 0;
++ int num_asimd = 0;
++ int num_aes = 0;
++ int num_pmull = 0;
++ int num_sha1 = 0;
++ int num_sha2 = 0;
++ int num_crc32 = 0;
++ int num_lse = 0;
++ int num_dcpop = 0;
++ int num_sha3 = 0;
++ int num_sha512 = 0;
++ int num_sve = 0;
++ int num_paca = 0;
++ len = sizeof(ncpu);
++ if (sysctl(mib, 2, &ncpu, &len, NULL, 0) < 0)
++ return;
++ for (curcpu = 0; curcpu < ncpu; curcpu++) {
++ len = sizeof(id);
++ snprintf(path, sizeof(path), "machdep.cpu%d.cpu_id", curcpu);
++ if (sysctlbyname(path, &id, &len, NULL, 0) < 0)
++ continue;
++
++ if (__SHIFTOUT(id.ac_aa64pfr0, ID_AA64PFR0_EL1_FP) == ID_AA64PFR0_EL1_FP_IMPL)
++ num_fp++;
++ if (__SHIFTOUT(id.ac_aa64pfr0, ID_AA64PFR0_EL1_ADVSIMD) == ID_AA64PFR0_EL1_ADV_SIMD_IMPL)
++ num_asimd++;
++ if (__SHIFTOUT(id.ac_aa64isar0, ID_AA64ISAR0_EL1_AES) >= ID_AA64ISAR0_EL1_AES_AES)
++ num_aes++;
++ if ( __SHIFTOUT(id.ac_aa64isar0, ID_AA64ISAR0_EL1_AES) >= ID_AA64ISAR0_EL1_AES_PMUL)
++ num_pmull++;
++ if (__SHIFTOUT(id.ac_aa64isar0, ID_AA64ISAR0_EL1_SHA1) >= ID_AA64ISAR0_EL1_SHA1_SHA1CPMHSU)
++ num_sha1++;
++ if (__SHIFTOUT(id.ac_aa64isar0, ID_AA64ISAR0_EL1_SHA2) >= ID_AA64ISAR0_EL1_SHA2_SHA256HSU)
++ num_sha2++;
++ if (__SHIFTOUT(id.ac_aa64isar0, ID_AA64ISAR0_EL1_CRC32) >= ID_AA64ISAR0_EL1_CRC32_CRC32X)
++ num_crc32++;
++ if (__SHIFTOUT(id.ac_aa64isar0, ID_AA64ISAR0_EL1_ATOMIC) >= ID_AA64ISAR0_EL1_ATOMIC_SWP)
++ num_lse++;
++ if (__SHIFTOUT(id.ac_aa64isar1, ID_AA64ISAR1_EL1_DPB) >= ID_AA64ISAR1_EL1_DPB_CVAP)
++ num_dcpop++;
++ if (__SHIFTOUT(id.ac_aa64isar0, ID_AA64ISAR0_EL1_SHA3) >= ID_AA64ISAR0_EL1_SHA3_EOR3)
++ num_sha3++;
++ if (__SHIFTOUT(id.ac_aa64isar0, ID_AA64ISAR0_EL1_SHA2) >= ID_AA64ISAR0_EL1_SHA2_SHA512HSU)
++ num_sha512++;
++ if (__SHIFTOUT(id.ac_aa64pfr0, ID_AA64PFR0_EL1_SVE) >= ID_AA64PFR0_EL1_SVE_IMPL)
++ num_sve++;
++ 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++;
++ // TODO: SVE2 and SVE_BITPERM live in id.ac_aa64zfr0 but shiftout macros are not yet added to armreg.h
++ }
++ _features = 0;
++ if (num_fp == ncpu)
++ _features |= CPU_FP;
++ if (num_asimd == ncpu)
++ _features |= CPU_ASIMD;
++ if (num_aes == ncpu)
++ _features |= CPU_AES;
++ if (num_pmull == ncpu)
++ _features |= CPU_PMULL;
++ if (num_sha1 == ncpu)
++ _features |= CPU_SHA1;
++ if (num_sha2 == ncpu)
++ _features |= CPU_SHA2;
++ if (num_crc32 == ncpu)
++ _features |= CPU_CRC32;
++ if (num_lse == ncpu)
++ _features |= CPU_LSE;
++ if (num_dcpop == ncpu)
++ _features |= CPU_DCPOP;
++ if (num_sha3 == ncpu)
++ _features |= CPU_SHA3;
++ if (num_sha512 == ncpu)
++ _features |= CPU_SHA512;
++ if (num_sve == ncpu)
++ _features |= CPU_SVE;
++ if (num_paca == ncpu)
++ _features |= CPU_PACA;
++
++ _cpu = CPU_IMPL(id.ac_midr);
++ _model = CPU_PART(id.ac_midr);
++ _variant = CPU_VAR(id.ac_midr);
++ _revision = CPU_REV(id.ac_midr);
++#endif
+
+ /*
+ * Step 3: Get cache line sizes and _zva_length using same approach as Linux.
Home |
Main Index |
Thread Index |
Old Index