summaryrefslogtreecommitdiff
path: root/java/openjdk24
diff options
context:
space:
mode:
Diffstat (limited to 'java/openjdk24')
-rw-r--r--java/openjdk24/Makefile6
-rw-r--r--java/openjdk24/distinfo6
-rw-r--r--java/openjdk24/files/patch-src_jdk.jdwp.agent_unix_native_libjdwp_exec__md.c20
-rw-r--r--java/openjdk24/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c89
-rw-r--r--java/openjdk24/pkg-message5
5 files changed, 116 insertions, 10 deletions
diff --git a/java/openjdk24/Makefile b/java/openjdk24/Makefile
index a3a1acc22792..454ef1d87149 100644
--- a/java/openjdk24/Makefile
+++ b/java/openjdk24/Makefile
@@ -35,7 +35,7 @@ CPE_VENDOR= oracle
USE_GITHUB= yes
GH_ACCOUNT= freebsd
GH_PROJECT= openjdk
-GH_TAGNAME= jdk-24.0.1-ga-freebsd-1
+GH_TAGNAME= jdk-24.0.2-ga-freebsd-1
NO_CCACHE= yes
@@ -60,8 +60,8 @@ NOPRECIOUSMAKEVARS= yes
JDK_MAJOR_VERSION= 24
JDK_MINOR_VERSION= 0
-JDK_PATCH_VERSION= 1
-JDK_BUILD_NUMBER= 9
+JDK_PATCH_VERSION= 2
+JDK_BUILD_NUMBER= 12
BSD_JDK_VERSION= 1
JDK_BUG_URL= https://bugs.freebsd.org/bugzilla/enter_bug.cgi?product=Ports%20%26%20Packages&component=Individual%20Port(s)&short_desc=java/${PORTNAME}${JDK_MAJOR_VERSION}%3A%20
diff --git a/java/openjdk24/distinfo b/java/openjdk24/distinfo
index 2fa838f9fba2..869ee42cffd6 100644
--- a/java/openjdk24/distinfo
+++ b/java/openjdk24/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1745490330
-SHA256 (freebsd-openjdk-jdk-24.0.1+9-1-jdk-24.0.1-ga-freebsd-1_GH0.tar.gz) = f9a5a14ba9205bcb6bced5a153d0d726d03c9ffdd459171683a9ade9ac31ea4e
-SIZE (freebsd-openjdk-jdk-24.0.1+9-1-jdk-24.0.1-ga-freebsd-1_GH0.tar.gz) = 120804490
+TIMESTAMP = 1752740904
+SHA256 (freebsd-openjdk-jdk-24.0.2+12-1-jdk-24.0.2-ga-freebsd-1_GH0.tar.gz) = 2d8ae839763932bbc5d85f1a129a0ec9c972af59b40eb2b3e7bacb238a67f132
+SIZE (freebsd-openjdk-jdk-24.0.2+12-1-jdk-24.0.2-ga-freebsd-1_GH0.tar.gz) = 120897722
diff --git a/java/openjdk24/files/patch-src_jdk.jdwp.agent_unix_native_libjdwp_exec__md.c b/java/openjdk24/files/patch-src_jdk.jdwp.agent_unix_native_libjdwp_exec__md.c
new file mode 100644
index 000000000000..80ae4c90cdf7
--- /dev/null
+++ b/java/openjdk24/files/patch-src_jdk.jdwp.agent_unix_native_libjdwp_exec__md.c
@@ -0,0 +1,20 @@
+--- src/jdk.jdwp.agent/unix/native/libjdwp/exec_md.c.orig 2025-06-27 12:18:08 UTC
++++ src/jdk.jdwp.agent/unix/native/libjdwp/exec_md.c
+@@ -70,6 +70,9 @@ closeDescriptors(void)
+ int
+ closeDescriptors(void)
+ {
++#if defined(__FreeBSD__)
++ closefrom(STDERR_FILENO + 1);
++#else
+ DIR *dp;
+ struct dirent *dirp;
+ /* leave out standard input/output/error descriptors */
+@@ -114,6 +117,7 @@ closeDescriptors(void)
+
+ (void)closedir(dp);
+
++#endif
+ return 1; // success
+ }
+
diff --git a/java/openjdk24/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c b/java/openjdk24/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c
new file mode 100644
index 000000000000..421548d0f4a5
--- /dev/null
+++ b/java/openjdk24/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c
@@ -0,0 +1,89 @@
+--- src/jdk.management/unix/native/libmanagement_ext/OperatingSystemImpl.c.orig 2023-10-01 03:54:04 UTC
++++ src/jdk.management/unix/native/libmanagement_ext/OperatingSystemImpl.c
+@@ -58,6 +58,7 @@
+ #include <unistd.h>
+
+ #ifdef __FreeBSD__
++#include <sys/user.h>
+ #include <vm/vm_param.h>
+ #endif
+
+@@ -177,23 +178,43 @@ Java_com_sun_management_internal_OperatingSystemImpl_g
+ }
+ return t_info.virtual_size;
+ #elif defined(__FreeBSD__)
+- FILE *fp;
+- unsigned long end, start;
+- jlong total = 0;
++ int mib[4];
++ struct kinfo_vmentry *kve;
++ long total = 0;
++ size_t len = 0;
++ int error;
++ char *buf, *bp, *eb;
+
+- if ((fp = fopen("/proc/curproc/map", "r")) == NULL) {
+- throw_internal_error(env, "Unable to open /proc/curproc/map");
++ mib[0] = CTL_KERN;
++ mib[1] = KERN_PROC;
++ mib[2] = KERN_PROC_VMMAP;
++ mib[3] = getpid();
++ error = sysctl(mib, 4, NULL, &len, NULL, 0);
++ if (error) {
++ throw_internal_error(env, "Cannot sysctl(kern.proc.vvmap)");
+ return -1;
+ }
+-
+- for (;;) {
+- // Ignore everything except start and end entries
+- if (fscanf(fp, "0x%lx 0x%lx %*[^\n]\n", &start, &end) != 2 || start > end)
+- break;
+- total += end - start;
++ len = len * 4 / 3;
++ buf = malloc(len);
++ if (buf == NULL) {
++ throw_internal_error(env, "Fail to allocate memory");
++ return -1;
+ }
+-
+- fclose(fp);
++ error = sysctl(mib, 4, buf, &len, NULL, 0);
++ if (error) {
++ throw_internal_error(env, "Cannot sysctl(kern.proc.vvmap)");
++ return -1;
++ }
++ bp = buf;
++ eb = buf + len;
++ while (bp < eb) {
++ kve = (struct kinfo_vmentry *)(uintptr_t)bp;
++ if (kve->kve_structsize == 0)
++ break;
++ bp += kve->kve_structsize;
++ total += kve->kve_end - kve->kve_start;
++ }
++ free(buf);
+ return total;
+ #else /* _ALLBSD_SOURCE */
+ /*
+@@ -403,6 +424,21 @@ Java_com_sun_management_internal_OperatingSystemImpl_g
+ return nfiles;
+ #elif defined(__OpenBSD__)
+ return getdtablecount();
++#elif defined(__FreeBSD__)
++ int mib[4];
++ int error;
++ int nfds;
++ size_t len;
++
++ len = sizeof(nfds);
++ mib[0] = CTL_KERN;
++ mib[1] = KERN_PROC;
++ mib[2] = KERN_PROC_NFDS;
++ mib[3] = 0;
++
++ if (sysctl(mib, 4, &nfds, &len, NULL, 0) == -1)
++ return -1;
++ return nfds;
+ #else /* solaris/linux */
+ DIR *dirp;
+ struct dirent* dentp;
diff --git a/java/openjdk24/pkg-message b/java/openjdk24/pkg-message
index 2ea3d87d89c8..a266eda414d0 100644
--- a/java/openjdk24/pkg-message
+++ b/java/openjdk24/pkg-message
@@ -1,17 +1,14 @@
[
{ type: install
message: <<EOM
-This OpenJDK implementation requires fdescfs(5) mounted on /dev/fd and
-procfs(5) mounted on /proc.
+This OpenJDK implementation may requires procfs(5) mounted on /proc.
If you have not done it yet, please do the following:
- mount -t fdescfs fdesc /dev/fd
mount -t procfs proc /proc
To make it permanent, you need the following lines in /etc/fstab:
- fdesc /dev/fd fdescfs rw 0 0
proc /proc procfs rw 0 0
EOM
}