On Wed, Jun 19, 2019 at 7:46 PM Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx> wrote: > > On Wed, Jun 19, 2019 at 02:54:36PM +0200, Arnd Bergmann wrote: > > When either CONFIG_IPV6 or CONFIG_SYN_COOKIES are disabled, the kernel > > fails to build: > > > > include/linux/netfilter_ipv6.h:180:9: error: implicit declaration of function '__cookie_v6_init_sequence' > > [-Werror,-Wimplicit-function-declaration] > > return __cookie_v6_init_sequence(iph, th, mssp); > > include/linux/netfilter_ipv6.h:194:9: error: implicit declaration of function '__cookie_v6_check' > > [-Werror,-Wimplicit-function-declaration] > > return __cookie_v6_check(iph, th, cookie); > > net/ipv6/netfilter.c:237:26: error: use of undeclared identifier '__cookie_v6_init_sequence'; did you mean 'cookie_init_sequence'? > > net/ipv6/netfilter.c:238:21: error: use of undeclared identifier '__cookie_v6_check'; did you mean '__cookie_v4_check'? > > > > Fix the IS_ENABLED() checks to match the function declaration > > and definitions for these. > > I made this: > > https://patchwork.ozlabs.org/patch/1117735/ > > Basically it does: > > +#endif > +#if IS_MODULE(CONFIG_IPV6) && defined(CONFIG_SYN_COOKIES) > .cookie_init_sequence = __cookie_v6_init_sequence, > .cookie_v6_check = __cookie_v6_check, > #endif > > If CONFIG_IPV6=n, then net/ipv6/netfilter.c is never compiled. > > Unless I'm missing anything, I'd prefer my patch because it's a bit > less of ifdefs 8-) That takes care of the link error, but not the "implicit declaration" when netfilter_ipv6.h is included without SYN_COOKIES. My patch addresses both issues together since they are strongly related. Arnd