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

From: Marcelo Ricardo Leitner <[email-masked]>
Date: Mon, 23 Mar 2015 08:33:54 -0300

On 23-03-2015 00:00, Ying Xue wrote:
> 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.

If you had checked which members ipv6_stub has, you would have noticed 
the member name has an extra 'v' than the actual function name.
ip6_ -> ipv6_

How it goes then?

Regards,
Marcelo