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