On Tue, 2008-02-19 at 15:01 +0100, Patrick McHardy wrote: > David Woodhouse wrote: > >> +union nf_inet_addr { > >> + u_int32_t all[4]; > >> + __be32 ip; > >> + __be32 ip6[4]; > >> +}; > >> + > >> #ifdef __KERNEL__ > >> #ifdef CONFIG_NETFILTER > > > > This breaks the busybox build: > > > > CC ipsvd/tcpudp.o > > In file included from /usr/include/linux/netfilter_ipv4.h:8, > > from ipsvd/tcpudp.c:33: > > /usr/include/linux/netfilter.h:40: error: expected specifier-qualifier-list > > before 'u_int32_t' > > > > What is this 'u_int32_t' nonsense anyway? > > > > If a user-visible header is likely to be included by libc directly from > > a 'standard' header, it may not require <stdint.h>. Therefore it should > > use the system-specific types such as '__u32'. > > Right, I queued this patch to fix it.
That does the trick -- but are we using u_int32_t elsewhere in user-visible headers? Does it work there? How? > > A later commit adds struct in_addr and struct in6_addr to this union > > too, which breaks busybox even harder. > > Thats odd, the iptables headers have always used struct in_addr and > struct in6_addr in struct ipt_ip/struct ip6t_ip6, which are also > used by userspace. What is "ipsvd/tcpudp.c"? I couldn't find it in > the Debian busybox source. It's in busybox 1.9.1. Just including <netinet/in.h> seems to be sufficient to make it happy again. I wonder if netfilter.h should include that for itself? -- dwmw2 -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html