Skip to content

Commit

Permalink
net/aoe: fix build on FreeBSD 12
Browse files Browse the repository at this point in the history
Still broken on FreeBSD 13+, but for a different reason now:

aoenet.c:313:22: error: use of undeclared identifier 'ifnet'; did you mean 'ifunit'?
        IFNET_FOREACH(ifp, &ifnet, if_link) {
                            ^~~~~
                            ifunit

PR:		239891
MFH:		2023Q3
  • Loading branch information
chadf authored and clausecker committed Aug 9, 2023
1 parent f5fac23 commit ac47064
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 7 deletions.
13 changes: 6 additions & 7 deletions net/aoe/Makefile
@@ -1,23 +1,22 @@
PORTNAME= aoe
PORTVERSION= 1.2.0
PORTREVISION= 2
PORTREVISION= 3
CATEGORIES= net
MASTER_SITES= http://www.son.org/download/
MASTER_SITES= https://people.freebsd.org/~sson/aoe/
DISTNAME= ${PORTNAME}-freebsd-${PORTVERSION}

MAINTAINER= ports@FreeBSD.org
COMMENT= FreeBSD driver for ATA over Ethernet (AoE)
WWW= http://www.coraid.com/support/freebsd/

DEPRECATED= Broken in all supported releases for more than an year
EXPIRATION_DATE= 2023-08-15
LICENSE= BSD2CLAUSE

BROKEN_aarch64= fails to compile: redefinition of frame
BROKEN_armv6= fails to compile: implicit declaration of function 'cp15_pmccntr_get' is invalid in C99
BROKEN_armv7= fails to compile: redefinition of frame
BROKEN_sparc64= fails to compile: redefinition of frame
BROKEN_FreeBSD_12= no member named 'tqh_first' in 'struct ifnethead'
BROKEN_FreeBSD_13= no member named 'tqh_first' in 'struct ifnethead'
BROKEN_FreeBSD_14= no member named 'tqh_first' in 'struct ifnethead'
BROKEN_FreeBSD_13= use of undeclared identifier 'ifnet'
BROKEN_FreeBSD_14= use of undeclared identifier 'ifnet'

USES= kmod

Expand Down
51 changes: 51 additions & 0 deletions net/aoe/files/patch-aoenet.c
Expand Up @@ -207,3 +207,54 @@
case IFT_ETHER:
case IFT_FASTETHER:
case IFT_GIGABITETHERNET:
--- aoenet.c.orig 2019-08-14 20:53:51.415030000 -0700
+++ aoenet.c 2019-08-14 20:58:53.326160000 -0700
@@ -85,6 +85,12 @@
#endif
#define IFLISTSZ 1024

+#if __FreeBSD_version >= 1200000
+#define IFNET_FOREACH(v, h, e) CK_STAILQ_FOREACH(v, h, e)
+#else
+#define IFNET_FOREACH(v, h, e) TAILQ_FOREACH(v, h, e)
+#endif
+
static char aoe_iflist[IFLISTSZ];

static int sysctl_aoe_iflist(SYSCTL_HANDLER_ARGS);
@@ -304,7 +310,7 @@
h->ah_cmd = AOECMD_CFG;

IFNET_RLOCK();
- TAILQ_FOREACH(ifp, &ifnet, if_link) {
+ IFNET_FOREACH(ifp, &ifnet, if_link) {
if (!is_aoe_netif(ifp))
continue;
memcpy(h->ah_src, IFPADDR(ifp), sizeof(h->ah_src));
@@ -506,7 +512,7 @@

#ifdef FORCE_NETWORK_HOOK
IFNET_RLOCK();
- TAILQ_FOREACH(ifp, &ifnet, if_link) {
+ IFNET_FOREACH(ifp, &ifnet, if_link) {
if (!is_aoe_netif(ifp)) {
if (ifp->if_input == aoe_ether_input)
ifp->if_input = old_ether_input;
@@ -531,7 +537,7 @@
struct ifnet *ifp;

IFNET_RLOCK();
- TAILQ_FOREACH(ifp, &ifnet, if_link) {
+ IFNET_FOREACH(ifp, &ifnet, if_link) {
#if __FreeBSD_version >= 1100030
switch (ifp->if_type) {
#else
@@ -564,7 +570,7 @@
struct ifnet *ifp;

IFNET_RLOCK();
- TAILQ_FOREACH(ifp, &ifnet, if_link) {
+ IFNET_FOREACH(ifp, &ifnet, if_link) {
#if __FreeBSD_version >= 1100030
switch (ifp->if_type) {
#else

0 comments on commit ac47064

Please sign in to comment.