Sure. When the file is compiled, i.e. CONFIG_NETFILTER_XT_TARGET_REDIRECT is selected, all headers will be included and all functions inside the file will be compiled, regardless of other Kconfig options. This means redirect_tg6 and redirect_tg4 will be compiled (which doesn't necessarily mean they will be _called_) but the linker needs to resolve nf_nat_redirect_ipv4() due to the compilation of the redirect_tg4() function. nf_nat_redirect_ip4() is defined in net/ipv4/netfilter/nf_nat_redirect_ipv4.c but this file is only included into the build when CONFIG_NF_NAT_REDIRECT_IPV4 is enabled. Now when a kernel config enables CONFIG_NETFILTER_XT_TARGET_REDIRECT but _not_ CONFIG_NF_NAT_REDIRECT_IPV4, the declaration of nf_nat_redirect_ipv4() from the header <net/netfilter/ipv4/nf_nat_redirect.h> will have no definition (i.e., no implementation), causing the linker to report an "undefined reference". Same logic goes for nf_nat_redirect_ipv6(). Hope this helps, Andreas On 26.11.2014 11:24, Florian Westphal wrote: > Andreas Ruprecht <rupran@xxxxxxxxxxxx> wrote: >> Additionally it is necessary to provide stubs for the >> nf_nat_redirect_ipv{4,6} functions in case the header is included but >> the corresponding Kconfig feature is not enabled. > > Hmmm, not following. > > Can you elaborate? > > Under which circumstances do we have a call to nf_nat_redirect_ipv4() > (i.e., linker error) but can safely do a noop operation instead of the > requested nat redirect...? > -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html