]>
Commit | Line | Data |
---|---|---|
537401bb MT |
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 | |
3 | @@ -157,7 +157,6 @@ | |
4 | # include <sys/procfs.h> | |
5 | #endif | |
6 | #include <sys/user.h> | |
7 | -#include <sys/ustat.h> | |
8 | #include <linux/cyclades.h> | |
9 | #include <linux/if_eql.h> | |
10 | #include <linux/if_plip.h> | |
11 | @@ -250,7 +249,19 @@ | |
12 | #endif // SANITIZER_LINUX || SANITIZER_FREEBSD | |
13 | ||
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 | |
25 | +#else | |
26 | +#error Unknown size of struct ustat | |
27 | +#endif | |
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 |