[git commit] *: work around sysinfo.h versus linux/*.h problems

Denys Vlasenko vda.linux at googlemail.com
Tue Jul 26 11:42:12 UTC 2011


commit: http://git.busybox.net/busybox/commit/?id=67905e2d7c6ee273b753af22fb22de0ebec918c1
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 include/libbb.h |   10 ++++++----
 init/init.c     |    3 ++-
 procps/free.c   |    3 +++
 procps/ps.c     |    3 +++
 procps/uptime.c |    4 ++++
 5 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/include/libbb.h b/include/libbb.h
index 3d31ff2..63d0419 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -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 --git a/init/init.c b/init/init.c
index ff9dc06..645f694 100644
--- a/init/init.c
+++ b/init/init.c
@@ -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 --git a/procps/free.c b/procps/free.c
index ca75313..47f2fc3 100644
--- a/procps/free.c
+++ b/procps/free.c
@@ -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 --git a/procps/ps.c b/procps/ps.c
index 7537118..dcc0f7b 100644
--- a/procps/ps.c
+++ b/procps/ps.c
@@ -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 --git a/procps/uptime.c b/procps/uptime.c
index 1a7da46..7432362 100644
--- a/procps/uptime.c
+++ b/procps/uptime.c
@@ -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 */
-- 
1.7.3.4



More information about the busybox-cvs mailing list