2008-12-29 04:36:43

by Randy Dunlap

[permalink] [raw]
Subject: 2.6.28-git1 build failure

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.

--
~Randy


2008-12-29 07:44:52

by Wang Chen

[permalink] [raw]
Subject: Re: 2.6.28-git1 build failure

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 protected]>
---
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

source "drivers/infiniband/hw/mthca/Kconfig"

2008-12-29 09:25:38

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.28-git1 build failure


* Wang Chen <[email protected]> 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 protected]>
> ---
> 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


Attachments:
(No filename) (3.56 kB)
config (66.94 kB)
Download all attachments

2008-12-29 09:33:56

by Wang Chen

[permalink] [raw]
Subject: Re: 2.6.28-git1 build failure

Ingo Molnar said the following on 2008-12-29 17:24:
> * Wang Chen <[email protected]> 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 protected]>
>> ---
>> 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:
>

Aleksey will fix it by adding #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) now.
See another thread "linux-next: origin tree build failure" :)

> 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
>