| --- x86_64-linux-gnu-clang-3.6.orig/llvm/projects/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc 2019-08-21 11:38:34.282434856 -0700 |
| +++ x86_64-linux-gnu-clang-3.6/llvm/projects/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc 2019-08-21 11:33:41.327987115 -0700 |
| @@ -159,7 +159,6 @@ |
| # include <sys/procfs.h> |
| #endif |
| #include <sys/user.h> |
| -#include <sys/ustat.h> |
| #include <linux/cyclades.h> |
| #include <linux/if_eql.h> |
| #include <linux/if_plip.h> |
| @@ -251,7 +251,19 @@ |
| #endif // SANITIZER_LINUX || SANITIZER_FREEBSD |
| |
| #if SANITIZER_LINUX && !SANITIZER_ANDROID |
| - unsigned struct_ustat_sz = sizeof(struct ustat); |
| +// Use pre-computed size of struct ustat to avoid <sys/ustat.h> which |
| +// has been removed from glibc 2.28. |
| +#if defined(__aarch64__) || defined(__s390x__) || defined (__mips64) \ |
| + || defined(__powerpc64__) || defined(__arch64__) || defined(__sparcv9) \ |
| + || defined(__x86_64__) |
| +#define SIZEOF_STRUCT_USTAT 32 |
| +#elif defined(__arm__) || defined(__i386__) || defined(__mips__) \ |
| + || defined(__powerpc__) || defined(__s390__) |
| +#define SIZEOF_STRUCT_USTAT 20 |
| +#else |
| +#error Unknown size of struct ustat |
| +#endif |
| + unsigned struct_ustat_sz = SIZEOF_STRUCT_USTAT; |
| unsigned struct_rlimit64_sz = sizeof(struct rlimit64); |
| unsigned struct_statvfs64_sz = sizeof(struct statvfs64); |
| #endif // SANITIZER_LINUX && !SANITIZER_ANDROID |