diff -uPr isboot-kmod.orig/Makefile isboot-kmod/Makefile --- isboot-kmod.orig/Makefile 2018-01-11 07:18:01.000000000 -0700 +++ isboot-kmod/Makefile 2018-02-06 14:56:23.654737000 -0700 @@ -2,7 +2,7 @@ PORTNAME= isboot-kmod PORTVERSION= 0.2.13 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= net MASTER_SITES= http://www.peach.ne.jp/archives/isboot/ DISTNAME= isboot-${PORTVERSION} @@ -12,9 +12,7 @@ LICENSE= BSD2CLAUSE -BROKEN_aarch64= fails to compile: /usr/src/sys/sys/bus.h:724:10: fatal error: 'device_if.h' file not found BROKEN_armv6= fails to compile: implicit declaration of function 'cp15_pmccntr_get' is invalid in C99 -BROKEN_armv7= fails to compile: /usr/src/sys/sys/bus.h:724:10: fatal error: 'device_if.h' file not found BROKEN_powerpc64= fails to compile: pcpu.h: size of array '__assert_0' is negative USES= kmod uidfix diff -uPr isboot-kmod.orig/files/patch-Makefile isboot-kmod/files/patch-Makefile --- isboot-kmod.orig/files/patch-Makefile 1969-12-31 17:00:00.000000000 -0700 +++ isboot-kmod/files/patch-Makefile 2018-01-29 10:24:27.372206000 -0700 @@ -0,0 +1,10 @@ +--- Makefile.orig 2015-09-23 22:33:04.000000000 -0600 ++++ Makefile 2018-01-29 10:20:10.453188000 -0700 +@@ -6,6 +6,7 @@ + SRCS= isboot.c ibft.c iscsi.c + SRCS+= isboot.h ibft.h iscsi_compat.h + SRCS+= opt_cam.h ++SRCS+= device_if.h bus_if.h + #CFLAGS+= -DVIMAGE + #CFLAGS+= -DIBFT_VERBOSE + #CFLAGS+= -DDEBUG diff -uPr isboot-kmod.orig/files/patch-isboot.c isboot-kmod/files/patch-isboot.c --- isboot-kmod.orig/files/patch-isboot.c 2016-05-06 08:34:57.000000000 -0600 +++ isboot-kmod/files/patch-isboot.c 2018-02-06 14:24:47.447244000 -0700 @@ -1,6 +1,14 @@ ---- isboot.c.orig 2015-11-05 16:50:51 UTC -+++ isboot.c -@@ -347,9 +347,9 @@ isboot_set_v4gw(struct sockaddr_in *gate +--- isboot.c.orig 2015-11-05 09:50:51.000000000 -0700 ++++ isboot.c 2018-02-06 14:23:24.479249000 -0700 +@@ -38,6 +38,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -347,9 +348,9 @@ netmask.sin_addr.s_addr = htonl(0); /* delete gateway if exists */ @@ -12,7 +20,7 @@ if (error) { if (error != ESRCH) { printf("rtrequest RTM_DELETE error %d\n", -@@ -359,9 +359,9 @@ isboot_set_v4gw(struct sockaddr_in *gate +@@ -359,9 +360,9 @@ } /* set new default gateway */ @@ -24,7 +32,7 @@ if (error) { printf("rtrequest RTM_ADD error %d\n", error); return (error); -@@ -391,9 +391,9 @@ isboot_set_v6gw(struct sockaddr_in6 *gat +@@ -391,9 +392,9 @@ memset(&netmask.sin6_addr, 0, 16); /* delete gateway if exists */ @@ -36,7 +44,7 @@ if (error) { if (error != ESRCH) { printf("rtrequest RTM_DELETE error %d\n", -@@ -403,9 +403,9 @@ isboot_set_v6gw(struct sockaddr_in6 *gat +@@ -403,9 +404,9 @@ } /* set new default gateway */ @@ -48,3 +56,42 @@ if (error) { printf("rtrequest RTM_ADD error %d\n", error); return (error); +@@ -417,28 +418,36 @@ + isboot_ifup(struct ifnet *ifp) + { + struct ifreq ifr; ++ struct socket *so; + struct thread *td; + int error; + + memset(&ifr, 0, sizeof(ifr)); + td = curthread; + ++ error = socreate(AF_INET, &so, SOCK_DGRAM, 0, td->td_ucred, td); ++ if (error) { ++ printf("%s: socreate, error=%d\n", __func__, error); ++ return (error); ++ } ++ + /* boot NIC */ + strlcpy(ifr.ifr_name, ifp->if_xname, sizeof(ifr.ifr_name)); + + /* set IFF_UP */ +- error = ifioctl(NULL, SIOCGIFFLAGS, (caddr_t)&ifr, td); ++ error = ifioctl(so, SIOCGIFFLAGS, (caddr_t)&ifr, td); + if (error) { + printf("ifioctl SIOCGIFFLAGS\n"); + return (error); + } + ifr.ifr_flags |= IFF_UP; +- error = ifioctl(NULL, SIOCSIFFLAGS, (caddr_t)&ifr, td); ++ error = ifioctl(so, SIOCSIFFLAGS, (caddr_t)&ifr, td); + if (error) { + printf("ifioctl SIOCSIFFLAGS\n"); + return (error); + } + ++ soclose(so); + return (0); + } + diff -uPr isboot-kmod.orig/files/patch-iscsi.c isboot-kmod/files/patch-iscsi.c --- isboot-kmod.orig/files/patch-iscsi.c 1969-12-31 17:00:00.000000000 -0700 +++ isboot-kmod/files/patch-iscsi.c 2018-01-29 10:24:54.854580000 -0700 @@ -0,0 +1,27 @@ +--- iscsi.c.orig 2015-11-05 09:50:51.000000000 -0700 ++++ iscsi.c 2018-01-29 10:20:00.586277000 -0700 +@@ -1070,9 +1070,11 @@ + return (n); + } + +- +-#if __FreeBSD_version >= 1100000 ++#if __FreeBSD_version >= 1200051 + static void ++isboot_free_mbufext(struct mbuf *m) ++#elif __FreeBSD_version >= 1100000 ++static void + isboot_free_mbufext(struct mbuf *m, void *p, void *optarg) + #elif __FreeBSD_version >= 1000050 && __FreeBSD_version < 1100000 + static int +@@ -1082,7 +1084,9 @@ + isboot_free_mbufext(void *p, void *optarg) + #endif + { +- ++#if __FreeBSD_version >= 1200051 ++ void *p = m->m_ext.ext_arg1; ++#endif + ISBOOT_TRACE("isboot_free_mbufext\n"); + if (p == NULL) + #if __FreeBSD_version >= 1000050 && __FreeBSD_version < 1100000