diff options
Diffstat (limited to 'java')
15 files changed, 19 insertions, 432 deletions
diff --git a/java/openjdk11/Makefile b/java/openjdk11/Makefile index 8951bf84ea87..1548c2e3fa6b 100644 --- a/java/openjdk11/Makefile +++ b/java/openjdk11/Makefile @@ -1,7 +1,6 @@ PORTNAME= openjdk DISTVERSIONPREFIX= jdk- DISTVERSION= ${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_PATCH_VERSION}+${JDK_BUILD_NUMBER}-${BSD_JDK_VERSION} -PORTREVISION= 2 CATEGORIES= java devel PKGNAMESUFFIX?= ${JDK_MAJOR_VERSION} @@ -67,8 +66,8 @@ NOPRECIOUSMAKEVARS= yes JDK_MAJOR_VERSION= 11 JDK_MINOR_VERSION= 0 -JDK_PATCH_VERSION= 27 -JDK_BUILD_NUMBER= 6 +JDK_PATCH_VERSION= 29 +JDK_BUILD_NUMBER= 7 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/openjdk11/distinfo b/java/openjdk11/distinfo index b91fc199405c..cda9fbcc835b 100644 --- a/java/openjdk11/distinfo +++ b/java/openjdk11/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1745123589 +TIMESTAMP = 1762095114 SHA256 (OpenPrinting-cups-v2.4.2_GH0.tar.gz) = 7095b2977bb728ded5566a5c802866062840d6541fd027836865949a407c3682 SIZE (OpenPrinting-cups-v2.4.2_GH0.tar.gz) = 8173207 -SHA256 (battleblow-jdk11u-jdk-11.0.27+6-1_GH0.tar.gz) = 64afcb0ad19c6a03591757d906355d0f263f8a529dea5654ba518e9399f13b1f -SIZE (battleblow-jdk11u-jdk-11.0.27+6-1_GH0.tar.gz) = 116708083 +SHA256 (battleblow-jdk11u-jdk-11.0.29+7-1_GH0.tar.gz) = ed1fed0a7d6571e5bff9a07272872258451643ba6741c002a8f58bdfd8fc9803 +SIZE (battleblow-jdk11u-jdk-11.0.29+7-1_GH0.tar.gz) = 116785204 diff --git a/java/openjdk11/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c b/java/openjdk11/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c deleted file mode 100644 index 4983d68853d1..000000000000 --- a/java/openjdk11/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c +++ /dev/null @@ -1,89 +0,0 @@ ---- src/jdk.management/unix/native/libmanagement_ext/OperatingSystemImpl.c.orig 2025-04-19 23:57:10 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 - -@@ -261,23 +262,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 */ - /* -@@ -487,6 +508,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 dirent64* dentp; diff --git a/java/openjdk17/Makefile b/java/openjdk17/Makefile index 4edc6a57de5d..b28a2c3a2475 100644 --- a/java/openjdk17/Makefile +++ b/java/openjdk17/Makefile @@ -1,7 +1,6 @@ PORTNAME= openjdk DISTVERSIONPREFIX= jdk- DISTVERSION= ${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_PATCH_VERSION}+${JDK_BUILD_NUMBER}-${BSD_JDK_VERSION} -PORTREVISION= 4 CATEGORIES= java devel PKGNAMESUFFIX?= ${JDK_MAJOR_VERSION} @@ -66,8 +65,8 @@ NOPRECIOUSMAKEVARS= yes JDK_MAJOR_VERSION= 17 JDK_MINOR_VERSION= 0 -JDK_PATCH_VERSION= 16 -JDK_BUILD_NUMBER= 8 +JDK_PATCH_VERSION= 17 +JDK_BUILD_NUMBER= 10 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/openjdk17/distinfo b/java/openjdk17/distinfo index 46fec0c5d7c9..3dd968836649 100644 --- a/java/openjdk17/distinfo +++ b/java/openjdk17/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1753420206 -SHA256 (battleblow-jdk17u-jdk-17.0.16+8-1_GH0.tar.gz) = 037d6ddb613ebe58a6bde1919312cce978a74f7cdc6e5f5990933e24dabbc2e2 -SIZE (battleblow-jdk17u-jdk-17.0.16+8-1_GH0.tar.gz) = 107976153 +TIMESTAMP = 1762108077 +SHA256 (battleblow-jdk17u-jdk-17.0.17+10-1_GH0.tar.gz) = 99bd33ce8cc618576e8693b9af1bb48059cb5011286009d46a0fabd2d8d36ba8 +SIZE (battleblow-jdk17u-jdk-17.0.17+10-1_GH0.tar.gz) = 108082578 diff --git a/java/openjdk17/files/patch-src_jdk.jdwp.agent_unix_native_libjdwp_exec__md.c b/java/openjdk17/files/patch-src_jdk.jdwp.agent_unix_native_libjdwp_exec__md.c deleted file mode 100644 index 80ae4c90cdf7..000000000000 --- a/java/openjdk17/files/patch-src_jdk.jdwp.agent_unix_native_libjdwp_exec__md.c +++ /dev/null @@ -1,20 +0,0 @@ ---- 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/openjdk17/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c b/java/openjdk17/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c deleted file mode 100644 index 1131ff26e268..000000000000 --- a/java/openjdk17/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c +++ /dev/null @@ -1,91 +0,0 @@ ---- src/jdk.management/unix/native/libmanagement_ext/OperatingSystemImpl.c.orig 2025-04-19 18:17:03 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 - -@@ -178,23 +179,45 @@ 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; -+ /* if (kve->kve_type != KVME_TYPE_VNODE) -+ continue;*/ -+ total += kve->kve_end - kve->kve_start; -+ } -+ free(buf); - return total; - #else /* _ALLBSD_SOURCE */ - /* -@@ -404,6 +427,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/openjdk21/Makefile b/java/openjdk21/Makefile index be96b112ab09..e0105a14bfb3 100644 --- a/java/openjdk21/Makefile +++ b/java/openjdk21/Makefile @@ -1,7 +1,6 @@ PORTNAME= openjdk DISTVERSIONPREFIX= jdk- DISTVERSION= ${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_PATCH_VERSION}+${JDK_BUILD_NUMBER}-${BSD_JDK_VERSION} -PORTREVISION= 1 CATEGORIES= java devel PKGNAMESUFFIX?= ${JDK_MAJOR_VERSION} @@ -66,8 +65,8 @@ NOPRECIOUSMAKEVARS= yes JDK_MAJOR_VERSION= 21 JDK_MINOR_VERSION= 0 -JDK_PATCH_VERSION= 8 -JDK_BUILD_NUMBER= 9 +JDK_PATCH_VERSION= 9 +JDK_BUILD_NUMBER= 10 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/openjdk21/distinfo b/java/openjdk21/distinfo index c9688d912b85..80e42f997bb5 100644 --- a/java/openjdk21/distinfo +++ b/java/openjdk21/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1753421114 -SHA256 (battleblow-jdk21u-jdk-21.0.8+9-1_GH0.tar.gz) = 9b56f542fd4192e420f12e9c34445a70a7de7733444c7eb505f6062d2dff6d83 -SIZE (battleblow-jdk21u-jdk-21.0.8+9-1_GH0.tar.gz) = 113861928 +TIMESTAMP = 1762111711 +SHA256 (battleblow-jdk21u-jdk-21.0.9+10-1_GH0.tar.gz) = 07f8277f53844ab7aa45b9ce7aad081a90be4492e5120e80b7c37dd2e16e133a +SIZE (battleblow-jdk21u-jdk-21.0.9+10-1_GH0.tar.gz) = 113912901 diff --git a/java/openjdk21/files/patch-make_autoconf_help.m4 b/java/openjdk21/files/patch-make_autoconf_help.m4 deleted file mode 100644 index 6581b3fef247..000000000000 --- a/java/openjdk21/files/patch-make_autoconf_help.m4 +++ /dev/null @@ -1,11 +0,0 @@ ---- make/autoconf/help.m4.orig 2025-05-24 21:54:30 UTC -+++ make/autoconf/help.m4 -@@ -269,7 +269,7 @@ AC_DEFUN_ONCE([HELP_PRINT_SUMMARY_AND_WARNINGS], - fi - fi - if test "x$CONFIGURE_COMMAND_LINE" != x; then -- printf "using configure arguments '$CONFIGURE_COMMAND_LINE'.\n" -+ printf "using configure arguments '%s'.\n" "$CONFIGURE_COMMAND_LINE" - else - printf "using default settings.\n" - fi diff --git a/java/openjdk21/files/patch-src_jdk.jdwp.agent_unix_native_libjdwp_exec__md.c b/java/openjdk21/files/patch-src_jdk.jdwp.agent_unix_native_libjdwp_exec__md.c deleted file mode 100644 index 80ae4c90cdf7..000000000000 --- a/java/openjdk21/files/patch-src_jdk.jdwp.agent_unix_native_libjdwp_exec__md.c +++ /dev/null @@ -1,20 +0,0 @@ ---- 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/openjdk21/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c b/java/openjdk21/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c deleted file mode 100644 index 421548d0f4a5..000000000000 --- a/java/openjdk21/files/patch-src_jdk.management_unix_native_libmanagement__ext_OperatingSystemImpl.c +++ /dev/null @@ -1,89 +0,0 @@ ---- 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/openjdk8/Makefile b/java/openjdk8/Makefile index 85c0ae16a984..eaa3251c70f2 100644 --- a/java/openjdk8/Makefile +++ b/java/openjdk8/Makefile @@ -53,7 +53,7 @@ INSTALLDIR= ${PREFIX}/${PKGBASE} NOPRECIOUSMAKEVARS= yes JDK_MAJOR_VERSION= 8 -JDK_UPDATE_VERSION= 462 +JDK_UPDATE_VERSION= 472 JDK_BUILD_NUMBER= 08 BSD_JDK_VERSION= 1 JTREG_VERSION= 4.1 diff --git a/java/openjdk8/distinfo b/java/openjdk8/distinfo index 87c0b9931cf8..8d6a0c8321a7 100644 --- a/java/openjdk8/distinfo +++ b/java/openjdk8/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1753419636 +TIMESTAMP = 1762059364 SHA256 (jtreg4.1-b08.tar.gz) = a9fbfac903313c12687e60978c4688c20189cdf873560125917d6ad53d55b30c SIZE (jtreg4.1-b08.tar.gz) = 683425 -SHA256 (battleblow-jdk8u-8.462.08.1-jdk8u462-b08.1_GH0.tar.gz) = ef956bdbeff27383434418f34d7af67e9f81a54e04bc6351b52616515de1054c -SIZE (battleblow-jdk8u-8.462.08.1-jdk8u462-b08.1_GH0.tar.gz) = 93417092 +SHA256 (battleblow-jdk8u-8.472.08.1-jdk8u472-b08.1_GH0.tar.gz) = a39ab04eed5289ff6934b87f5d981e6f005358cf22b2869a35dff77200c2707a +SIZE (battleblow-jdk8u-8.472.08.1-jdk8u472-b08.1_GH0.tar.gz) = 93406190 diff --git a/java/openjdk8/files/patch-jdk_src_solaris_native_sun_management_OperatingSystemImpl.c b/java/openjdk8/files/patch-jdk_src_solaris_native_sun_management_OperatingSystemImpl.c deleted file mode 100644 index c542431a3ca3..000000000000 --- a/java/openjdk8/files/patch-jdk_src_solaris_native_sun_management_OperatingSystemImpl.c +++ /dev/null @@ -1,90 +0,0 @@ ---- jdk/src/solaris/native/sun/management/OperatingSystemImpl.c.orig 2025-04-19 16:48:54 UTC -+++ jdk/src/solaris/native/sun/management/OperatingSystemImpl.c -@@ -57,6 +57,7 @@ - #include <stdlib.h> - #include <unistd.h> - #ifdef __FreeBSD__ -+#include <sys/user.h> - #include <vm/vm_param.h> - #endif - -@@ -266,23 +267,45 @@ Java_sun_management_OperatingSystemImpl_getCommittedVi - } - 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 */ - /* -@@ -486,6 +509,21 @@ Java_sun_management_OperatingSystemImpl_getOpenFileDes - 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 dbuf; |
