Subject: Re: 2.6.28-git1 build failure

From: Ingo Molnar <[email-masked]>
Date: Mon, 29 Dec 2008 10:24:36 +0100

* Wang Chen <[email-masked]> wrote:

> Randy Dunlap said the following on 2008-12-29 12:36:
> > drivers/built-in.o: In function `addr_resolve_remote':
> > addr.c:(.text+0x12fe75): undefined reference to `ip6_route_output'
> > drivers/built-in.o: In function `rdma_translate_ip':
> > (.text+0x1301a7): undefined reference to `ipv6_chk_addr'
> > drivers/built-in.o: In function `rdma_resolve_ip':
> > (.text+0x1303a9): undefined reference to `ipv6_chk_addr'
> > drivers/built-in.o: In function `rdma_resolve_ip':
> > (.text+0x13051b): undefined reference to `ip6_route_output'
> > 
> > when CONFIG_IPV6=n.
> > 
> 
> Aleksey added IPv6 function to it but not change the Kconfig file.
> The following patch will temporarily fix this build failure.
> But IMHO separating the IPv4/IPv6 parts or using #ifdef would be better.
> 
> Signed-off-by: Wang Chen <[email-masked]>
> ---
> diff --git a/drivers/infiniband/Kconfig b/drivers/infiniband/Kconfig
> index a5dc78a..9535e13 100644
> --- a/drivers/infiniband/Kconfig
> +++ b/drivers/infiniband/Kconfig
> @@ -36,7 +36,7 @@ config INFINIBAND_USER_MEM
>  
>  config INFINIBAND_ADDR_TRANS
>  	bool
> -	depends on INET
> +	depends on INET && IPV6
>  	default y
>  

that's not good enough yet:

net/built-in.o: In function `rpcrdma_ep_disconnect':
(.text+0xf12c8): undefined reference to `rdma_disconnect'
net/built-in.o: In function `rpcrdma_create_id':
verbs.c:(.text+0xf13f9): undefined reference to `rdma_create_id'
verbs.c:(.text+0xf1448): undefined reference to `rdma_resolve_addr'
verbs.c:(.text+0xf14a7): undefined reference to `rdma_resolve_route'
verbs.c:(.text+0xf14f9): undefined reference to `rdma_destroy_id'
net/built-in.o: In function `rpcrdma_ep_connect':
(.text+0xf15c4): undefined reference to `rdma_destroy_id'
net/built-in.o: In function `rpcrdma_ep_connect':
(.text+0xf15ce): undefined reference to `rdma_destroy_qp'
net/built-in.o: In function `rpcrdma_ep_connect':
(.text+0xf15d6): undefined reference to `rdma_destroy_id'
net/built-in.o: In function `rpcrdma_ep_connect':
(.text+0xf15e9): undefined reference to `rdma_create_qp'
net/built-in.o: In function `rpcrdma_ep_connect':
(.text+0xf16a3): undefined reference to `rdma_connect'
net/built-in.o: In function `rpcrdma_ep_destroy':
(.text+0xf1c28): undefined reference to `rdma_destroy_qp'
net/built-in.o: In function `rpcrdma_ia_close':
(.text+0xf223f): undefined reference to `rdma_destroy_qp'
net/built-in.o: In function `rpcrdma_ia_close':
(.text+0xf2247): undefined reference to `rdma_destroy_id'
net/built-in.o: In function `rpcrdma_ia_open':
(.text+0xf2503): undefined reference to `rdma_destroy_id'
net/built-in.o: In function `svc_rdma_detach':
svc_rdma_transport.c:(.text+0xf2b04): undefined reference to `rdma_disconnect'
net/built-in.o: In function `svc_rdma_create':
svc_rdma_transport.c:(.text+0xf3003): undefined reference to `rdma_create_id'
svc_rdma_transport.c:(.text+0xf303d): undefined reference to `rdma_bind_addr'
svc_rdma_transport.c:(.text+0xf306b): undefined reference to `rdma_listen'
svc_rdma_transport.c:(.text+0xf30ba): undefined reference to `rdma_destroy_id'
net/built-in.o: In function `__svc_rdma_free':
svc_rdma_transport.c:(.text+0xf36f5): undefined reference to `rdma_destroy_id'
net/built-in.o: In function `svc_rdma_accept':
svc_rdma_transport.c:(.text+0xf43d2): undefined reference to `rdma_create_qp'
svc_rdma_transport.c:(.text+0xf43f4): undefined reference to `rdma_create_qp'
svc_rdma_transport.c:(.text+0xf45b2): undefined reference to `rdma_accept'
svc_rdma_transport.c:(.text+0xf4699): undefined reference to `rdma_destroy_id'

with the attached config.

	Ingo