Subject: Re: [PATCH v2] tipc: fix build issue when building without IPv6

From: Ying Xue <[email-masked]>
Date: Mon, 23 Mar 2015 11:00:17 +0800

On 03/20/2015 08:35 PM, Marcelo wrote:
> I think David and Willem suggestion were more about the dependencies
> than fixing the build issue itself. I mean, if some part of TIPC really
> needs IPv6 in order to work or something like that.
> 
> So if all we want to do if fix the build issue, I have another suggestion.
> When we have IPV6=m and TIPC=y, just have to use the stub too.
> 
> (cut & pasted)
> --- a/net/tipc/udp_media.c
> +++ b/net/tipc/udp_media.c
> @@ -193,7 +193,7 @@ static int tipc_udp_send_msg(struct net *net, struct
> sk_buff *skb,
>                         .saddr = src->ipv6,
>                         .flowi6_proto = IPPROTO_UDP
>                 };
> -               err = ip6_dst_lookup(ub->ubsock->sk, &ndst, &fl6);
> +               err = ipv6_stub->ipv6_dst_lookup(ub->ubsock->sk, &ndst,
> &fl6);
>                 if (err)
>                         goto tx_error;
>                 ttl = ip6_dst_hoplimit(ndst);
> 
> then it builds fine here. That is, assuming that you can't reach this code
> while
> ipv6 module is unloaded.. (I didn't check that) what do you think?

It seems that your above change is useless to kill the error. For instance, when
I apply it into my project, below build error appears:

net/tipc/udp_media.c: In function ‘tipc_udp_send_msg’:
net/tipc/udp_media.c:196:18: error: ‘const struct ipv6_stub’ has no member named
‘ip6_dst_lookup’
make[2]: *** [net/tipc/udp_media.o] Error 1
make[1]: *** [net/tipc] Error 2
make: *** [net] Error 2

In my opinion, we have to follow David's suggestion dividing the udp_media.c as
an separate module.

Regards,
Ying