2005-09-11 18:19:32

by Mika Kukkonen

[permalink] [raw]
Subject: [PATCH] Fix allnoconfig compile with gcc 4 (take 2)

With allnoconfig and gcc 4 from SUSE 10 RC1:
gcc version 4.0.2 20050901 (prerelease) (SUSE Linux)
I get following error:
CC init/main.o
In file included from include/linux/netdevice.h:29,
from include/net/sock.h:48,
from init/main.c:50:
include/linux/if_ether.h:114: error: array type has incomplete element type

Fixed by surrounding offending line with #ifdef CONFIG_SYSCTL as
discussed.

When I turned CONFIG_NET and CONFIG_SYSCTL on, I noticed also that
net/sysctl_net.c should #include <net/sock.h> unconditionally to avoid
similar error with core_table[] (also fixed in following patch).

Signed-of-by: Mika Kukkonen <[email protected]>

Index: linux-2.6/net/sysctl_net.c
===================================================================
--- linux-2.6.orig/net/sysctl_net.c
+++ linux-2.6/net/sysctl_net.c
@@ -15,6 +15,7 @@
#include <linux/config.h>
#include <linux/mm.h>
#include <linux/sysctl.h>
+#include <net/sock.h>

#ifdef CONFIG_INET
#include <net/ip.h>
Index: linux-2.6/include/linux/if_ether.h
===================================================================
--- linux-2.6.orig/include/linux/if_ether.h
+++ linux-2.6/include/linux/if_ether.h
@@ -111,7 +111,10 @@ static inline struct ethhdr *eth_hdr(con
return (struct ethhdr *)skb->mac.raw;
}

+#ifdef CONFIG_SYSCTL
extern struct ctl_table ether_table[];
#endif

+#endif
+
#endif /* _LINUX_IF_ETHER_H */