Re: buildkernel failure in net/toeplitz.c (commit 3b281d1421a78b588c5fc4182009ce62d8823d95)
- Reply: Ian FREISLICH : "Re:_buildkernel_failure_in_net/toeplitz.c_(co mmit_3b281d1421a78b588c5fc4182009ce62d8823d95)"
- Reply: Mark Johnston : "Re: buildkernel failure in net/toeplitz.c (commit 3b281d1421a78b588c5fc4182009ce62d8823d95)"
- In reply to: Ian FREISLICH : "buildkernel failure in net/toeplitz.c (commit 3b281d1421a78b588c5fc4182009ce62d8823d95)"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 24 Feb 2025 07:52:14 UTC
> On Feb 24, 2025, at 12:42 PM, Ian FREISLICH <ianfreislich@gmail.com> wrote: > > Hi > > Building a kernel today failed with: > > -Werror /usr/src/sys/net/toeplitz.c > In file included from /usr/src/sys/net/toeplitz.c:29: > In file included from /usr/src/sys/net/rss_config.h:33: > /usr/src/sys/netinet/in.h:692:23: error: call to undeclared function 'htonl'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration] > 692 | return (in.s_addr == htonl(INADDR_BROADCAST) || > | ^ > In file included from /usr/src/sys/net/toeplitz.c:32: > In file included from /usr/src/sys/sys/systm.h:98: > /usr/src/sys/sys/param.h:343:13: error: conflicting types for 'htonl' > 343 | __uint32_t htonl(__uint32_t); > | ^ > /usr/src/sys/netinet/in.h:692:23: note: previous implicit declaration is here > 692 | return (in.s_addr == htonl(INADDR_BROADCAST) || > > I think this is a result of changes to netinet/in.h (3b281d1421a78) which added a static inline function using ntohl() which is not defined in kernel use. > > Ian > May you please have a try with this patch ? ``` diff --git a/sys/netinet/in.h b/sys/netinet/in.h index 0925e3aa7669..4dad4e4fed4d 100644 --- a/sys/netinet/in.h +++ b/sys/netinet/in.h @@ -689,8 +689,8 @@ void in_ifdetach(struct ifnet *); static inline bool in_broadcast(struct in_addr in) { - return (in.s_addr == htonl(INADDR_BROADCAST) || - in.s_addr == htonl(INADDR_ANY)); + return (in.s_addr == INADDR_BROADCAST || + in.s_addr == INADDR_ANY); } ``` The `htonl` is pointless here, as INADDR_BROADCAST is all 1s, and INADDR_ANY is all 0s. Best regards, Zhenlei