On Tue, Jul 26, 2011 at 12:18 AM, Douglas Mencken <dougmenc...@gmail.com> wrote:
> Denys, no! It doesn't work too.
>
>  CC      networking/tcpudp.o
> In file included from /usr/include/linux/sysctl.h:25:0,
>                 from /usr/include/linux/netfilter.h:6,
>                 from /usr/include/linux/netfilter_ipv4.h:8,
>                 from networking/tcpudp.c:74:
> /usr/include/linux/kernel.h:12:8: error: redefinition of 'struct sysinfo'
> /usr/include/sys/sysinfo.h:28:8: note: originally defined here
> make[1]: *** [networking/tcpudp.o] Error 1
> make: *** [networking] Error 2

I'm committing the attached patch.

Please try current git and let me know if the problem is still there.
-- 
vda
diff -d -urpN busybox.2/include/libbb.h busybox.3/include/libbb.h
--- busybox.2/include/libbb.h	2011-07-25 11:05:18.000000000 +0200
+++ busybox.3/include/libbb.h	2011-07-26 13:38:04.967443220 +0200
@@ -52,10 +52,12 @@
 #ifdef HAVE_SYS_STATFS_H
 # include <sys/statfs.h>
 #endif
-/* struct sysinfo is linux-specific */
-#ifdef __linux__
-# include <sys/sysinfo.h>
-#endif
+/* Don't do this here:
+ * #include <sys/sysinfo.h>
+ * Some linux/ includes pull in conflicting definition
+ * of struct sysinfo (only in some toolchanins), which breaks build.
+ * Include sys/sysinfo.h only in those files which need it.
+ */
 #if ENABLE_SELINUX
 # include <selinux/selinux.h>
 # include <selinux/context.h>
diff -d -urpN busybox.2/init/init.c busybox.3/init/init.c
--- busybox.2/init/init.c	2011-06-02 17:41:47.000000000 +0200
+++ busybox.3/init/init.c	2011-07-26 13:38:49.287571142 +0200
@@ -113,7 +113,8 @@
 #include <paths.h>
 #include <sys/resource.h>
 #ifdef __linux__
-#include <linux/vt.h>
+# include <linux/vt.h>
+# include <sys/sysinfo.h>
 #endif
 #include "reboot.h" /* reboot() constants */
 
diff -d -urpN busybox.2/procps/free.c busybox.3/procps/free.c
--- busybox.2/procps/free.c	2011-06-02 17:41:47.000000000 +0200
+++ busybox.3/procps/free.c	2011-07-26 13:32:55.837096172 +0200
@@ -22,6 +22,9 @@
 //usage:       "Total:       386144       257128       129016\n"
 
 #include "libbb.h"
+#ifdef __linux__
+# include <sys/sysinfo.h>
+#endif
 
 struct globals {
 	unsigned mem_unit;
diff -d -urpN busybox.2/procps/ps.c busybox.3/procps/ps.c
--- busybox.2/procps/ps.c	2011-06-20 11:48:49.000000000 +0200
+++ busybox.3/procps/ps.c	2011-07-26 13:32:25.065439926 +0200
@@ -62,6 +62,9 @@ enum { MAX_WIDTH = 2*1024 };
 
 #if ENABLE_DESKTOP
 
+#ifdef __linux__
+# include <sys/sysinfo.h>
+#endif
 #include <sys/times.h> /* for times() */
 #ifndef AT_CLKTCK
 # define AT_CLKTCK 17
diff -d -urpN busybox.2/procps/uptime.c busybox.3/procps/uptime.c
--- busybox.2/procps/uptime.c	2011-06-02 17:41:47.000000000 +0200
+++ busybox.3/procps/uptime.c	2011-07-26 13:33:03.965010472 +0200
@@ -25,6 +25,10 @@
 //usage:       "  1:55pm  up  2:30, load average: 0.09, 0.04, 0.00\n"
 
 #include "libbb.h"
+#ifdef __linux__
+# include <sys/sysinfo.h>
+#endif
+
 
 #ifndef FSHIFT
 # define FSHIFT 16              /* nr of bits of precision */
_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to