Thread (8 messages) 8 messages, 5 authors, 2007-02-25

Re: 2.6.20-git8 fails compile -- net/built-in.o __ipv6_addr_type

flat view

From: Adrian Bunk <hidden>
Date: 2007-02-24 22:50:22
Also in: lkml

Possibly related (same subject, not in this thread)

On Tue, Feb 13, 2007 at 11:55:10AM +0900, YOSHIFUJI Hideaki / 吉藤英明 wrote:
quoted hunk ↗ jump to hunk
In article [ref] (at Mon, 12 Feb 2007 21:35:59 -0500 (EST)), Pete Clements [off-list ref] says:
quoted
Quoting YOSHIFUJIHideaki/=?iso-2022-jp?B?GyRCNUhGIzFRTEAbKEI=?=
  > In article [ref] (at Mon, 12 Feb 2007 18:12:16 -0800), Andrew Morton [off-list ref] says:
  > 
  > > > On Mon, 12 Feb 2007 20:10:13 -0500 (EST) Pete Clements [off-list ref] wrote:
  > > > 2.6.20-git8 fails compile:
  > > > 
  > > >   CHK     include/linux/compile.h
  > > >   UPD     include/linux/compile.h
  > > >   CC      init/version.o
  > > >   LD      init/built-in.o
  > > >   LD      .tmp_vmlinux1
  > > > net/built-in.o: In function `svc_udp_recvfrom':
  > > > svcsock.c:(.text+0x61be4): undefined reference to `__ipv6_addr_type'
  > > > make: *** [.tmp_vmlinux1] Error 1
  > > > 
  > > 
  > > Please send the .config.
  > 
  > and, the gcc version...
  > 
  > --yoshfuji
  > -

git 7 compiled just fine.
Ah, this is because of new ipv6 support in sunrpc code.
Enable it if it is statically compiled.

Alternatively, we could 
- export __ipv6_addr_type in new net/ipv6/addrconf_core.c
or
- introduce tiny inline for chcking if the address is link-local.

Signed-off-by: YOSHIFUJI Hideaki <redacted>
diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
index 63ae947..27dcb31 100644
--- a/net/sunrpc/svcsock.c
+++ b/net/sunrpc/svcsock.c
@@ -107,12 +107,12 @@ static inline void svc_reclassify_socket
 		sock_lock_init_class_and_name(sk, "slock-AF_INET-NFSD",
 		    &svc_slock_key[0], "sk_lock-AF_INET-NFSD", &svc_key[0]);
 		break;
-
+#ifdef CONFIG_IPV6
 	case AF_INET6:
 		sock_lock_init_class_and_name(sk, "slock-AF_INET6-NFSD",
 		    &svc_slock_key[1], "sk_lock-AF_INET6-NFSD", &svc_key[1]);
 		break;
-
+#endif
 	default:
 		BUG();
 	}
@@ -131,7 +131,7 @@ static char *__svc_print_addr(struct soc
 			NIPQUAD(((struct sockaddr_in *) addr)->sin_addr),
 			htons(((struct sockaddr_in *) addr)->sin_port));
 		break;
-#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
+#if defined(CONFIG_IPV6)
...

In the CONFIG_IPV6=m, CONFIG_SUNRPC=m case, this will result in no IPV6 
support here.

If you are going this way, a Kconfig helper variable might be better:

config SUNRPC_IPV6
	bool
	default y if (SUNRPC=y && IPV6=y) || (SUNRPC=m && IPV6) 


cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help