*: work around sysinfo.h versus linux/*.h problems
No binary (build failed)
—
(log yok)
| @@ -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> | |
| @@ -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 */ | |
| @@ -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; | |
| @@ -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 | |
| @@ -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 */ | |