diff --git a/devel/libgtop/files/patch-sysdeps_freebsd_procmap.c b/devel/libgtop/files/patch-sysdeps_freebsd_procmap.c index a3b4fcc550f2..6135db88e95d 100644 --- a/devel/libgtop/files/patch-sysdeps_freebsd_procmap.c +++ b/devel/libgtop/files/patch-sysdeps_freebsd_procmap.c @@ -1,45 +1,77 @@ ---- sysdeps/freebsd/procmap.c.orig 2023-01-15 10:43:14 UTC +--- sysdeps/freebsd/procmap.c.orig +++ sysdeps/freebsd/procmap.c -@@ -26,6 +26,8 @@ +@@ -20,12 +20,32 @@ + */ + + #include ++ ++/* ++ * FreeBSD-16 specific stuff that shouldn't hurt earlier FreeBSD: ++ * ++ * Need sys/event.h early with _KERNEL, before glibtop/procmap.h. ++ * This gets us macros for some inline vnode functions that crop up ++ * with _KERNEL later. ++ * ++ * After that, we need to neuter MPASS by including kassert.h. Last, ++ * a boolean_t conflict appears (sys/types.h vs vm/vm.h), so whack it as well. ++ */ ++#define _KERNEL ++#include ++#include ++#include ++#undef _KERNEL ++#define HAVE_BOOLEAN /* until vm/vm.h is cleaned-up */ ++ + #include + #include + #include #include +#include + #include #include #include -@@ -51,12 +53,14 @@ +@@ -43,6 +63,7 @@ + #define _WANT_FILE + #include + #undef _WANT_FILE ++#include /* early and without _KERNEL, for FreeBSD 16 */ + #else + #define _KERNEL + #include +@@ -51,12 +72,14 @@ #define _KERNEL #include #include -#include +#include +#include #include #if (__FreeBSD_version >= 600006) || defined(__FreeBSD_kernel__) #include #endif #undef _KERNEL +#include #if (__FreeBSD_version >= 1101001) -@@ -100,7 +104,7 @@ _glibtop_sysdeps_freebsd_dev_inode (glibtop *server, s +@@ -100,7 +123,7 @@ _glibtop_sysdeps_freebsd_dev_inode (glibtop *server, struct vnode *vnode, *inum = 0; *dev = 0; - if (kvm_read (server->machine->kd, (gulong) &vnode->v_tag, + if (kvm_read (server->machine->kd, (gulong) &vnode->v_lock.lock_object.lo_name, (char *) &tagptr, sizeof (tagptr)) != sizeof (tagptr) || kvm_read (server->machine->kd, (gulong) tagptr, (char *) tagstr, sizeof (tagstr)) != sizeof (tagstr)) -@@ -120,7 +124,7 @@ _glibtop_sysdeps_freebsd_dev_inode (glibtop *server, s +@@ -120,7 +143,7 @@ _glibtop_sysdeps_freebsd_dev_inode (glibtop *server, struct vnode *vnode, return; } - if (kvm_read (server->machine->kd, (gulong) VTOI(vn), (char *) &inode, + if (kvm_read (server->machine->kd, (gulong) ((struct inode *)(vn)->v_data), (char *) &inode, sizeof (inode)) != sizeof (inode)) { glibtop_warn_io_r (server, "kvm_read (inode)");