1 --- libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc 2018/04/25 07:39:32 259630
2 +++ libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc 2018/05/24 20:07:25 260687
4 # include <sys/procfs.h>
7 -#include <sys/ustat.h>
8 #include <linux/cyclades.h>
9 #include <linux/if_eql.h>
10 #include <linux/if_plip.h>
12 #endif // SANITIZER_LINUX || SANITIZER_FREEBSD
14 #if SANITIZER_LINUX && !SANITIZER_ANDROID
15 - unsigned struct_ustat_sz = sizeof(struct ustat);
16 + // Use pre-computed size of struct ustat to avoid <sys/ustat.h> which
17 + // has been removed from glibc 2.28.
18 +#if defined(__aarch64__) || defined(__s390x__) || defined (__mips64) \
19 + || defined(__powerpc64__) || defined(__arch64__) || defined(__sparcv9) \
20 + || defined(__x86_64__)
21 +#define SIZEOF_STRUCT_USTAT 32
22 +#elif defined(__arm__) || defined(__i386__) || defined(__mips__) \
23 + || defined(__powerpc__) || defined(__s390__)
24 +#define SIZEOF_STRUCT_USTAT 20
26 +#error Unknown size of struct ustat
28 + unsigned struct_ustat_sz = SIZEOF_STRUCT_USTAT;
29 unsigned struct_rlimit64_sz = sizeof(struct rlimit64);
30 unsigned struct_statvfs64_sz = sizeof(struct statvfs64);
31 #endif // SANITIZER_LINUX && !SANITIZER_ANDROID