[sanitizer] struct ustat and a bunch of other definitions are missing on Android.

llvm-svn: 201068
This commit is contained in:
Evgeniy Stepanov 2014-02-10 08:00:24 +00:00
parent 8baa386670
commit c75ef739a1
3 changed files with 12 additions and 10 deletions

View File

@ -920,6 +920,7 @@ POST_SYSCALL(newfstat)(long res, long fd, void *statbuf) {
} }
} }
#if !SANITIZER_ANDROID
PRE_SYSCALL(ustat)(long dev, void *ubuf) {} PRE_SYSCALL(ustat)(long dev, void *ubuf) {}
POST_SYSCALL(ustat)(long res, long dev, void *ubuf) { POST_SYSCALL(ustat)(long res, long dev, void *ubuf) {
@ -927,6 +928,7 @@ POST_SYSCALL(ustat)(long res, long dev, void *ubuf) {
if (ubuf) POST_WRITE(ubuf, struct_ustat_sz); if (ubuf) POST_WRITE(ubuf, struct_ustat_sz);
} }
} }
#endif // !SANITIZER_ANDROID
PRE_SYSCALL(stat64)(const void *filename, void *statbuf) { PRE_SYSCALL(stat64)(const void *filename, void *statbuf) {
if (filename) if (filename)

View File

@ -169,10 +169,10 @@ namespace __sanitizer {
unsigned struct_old_utsname_sz = sizeof(struct old_utsname); unsigned struct_old_utsname_sz = sizeof(struct old_utsname);
unsigned struct_oldold_utsname_sz = sizeof(struct oldold_utsname); unsigned struct_oldold_utsname_sz = sizeof(struct oldold_utsname);
unsigned struct_itimerspec_sz = sizeof(struct itimerspec); unsigned struct_itimerspec_sz = sizeof(struct itimerspec);
unsigned struct_ustat_sz = sizeof(struct ustat);
#endif // SANITIZER_LINUX #endif // SANITIZER_LINUX
#if SANITIZER_LINUX && !SANITIZER_ANDROID #if SANITIZER_LINUX && !SANITIZER_ANDROID
unsigned struct_ustat_sz = sizeof(struct ustat);
unsigned struct_rlimit64_sz = sizeof(struct rlimit64); unsigned struct_rlimit64_sz = sizeof(struct rlimit64);
unsigned struct_timex_sz = sizeof(struct timex); unsigned struct_timex_sz = sizeof(struct timex);
unsigned struct_msqid_ds_sz = sizeof(struct msqid_ds); unsigned struct_msqid_ds_sz = sizeof(struct msqid_ds);

View File

@ -78,21 +78,17 @@ namespace __sanitizer {
// More fields that vary with the kernel version. // More fields that vary with the kernel version.
}; };
extern unsigned struct_utimbuf_sz;
extern unsigned struct_new_utsname_sz;
extern unsigned struct_old_utsname_sz;
extern unsigned struct_oldold_utsname_sz;
extern unsigned struct_msqid_ds_sz;
extern unsigned struct_mq_attr_sz;
extern unsigned struct_timex_sz;
extern unsigned struct_ustat_sz;
extern unsigned struct_rlimit_sz; extern unsigned struct_rlimit_sz;
extern unsigned struct_epoll_event_sz; extern unsigned struct_epoll_event_sz;
extern unsigned struct_sysinfo_sz; extern unsigned struct_sysinfo_sz;
extern unsigned struct_timespec_sz; extern unsigned struct_timespec_sz;
extern unsigned __user_cap_header_struct_sz; extern unsigned __user_cap_header_struct_sz;
extern unsigned __user_cap_data_struct_sz; extern unsigned __user_cap_data_struct_sz;
extern unsigned struct_utimbuf_sz;
extern unsigned struct_new_utsname_sz;
extern unsigned struct_old_utsname_sz;
extern unsigned struct_oldold_utsname_sz;
const unsigned old_sigset_t_sz = sizeof(unsigned long); const unsigned old_sigset_t_sz = sizeof(unsigned long);
const unsigned struct_kexec_segment_sz = 4 * sizeof(unsigned long); const unsigned struct_kexec_segment_sz = 4 * sizeof(unsigned long);
@ -134,7 +130,11 @@ namespace __sanitizer {
#endif // SANITIZER_LINUX #endif // SANITIZER_LINUX
#if SANITIZER_LINUX && !SANITIZER_ANDROID #if SANITIZER_LINUX && !SANITIZER_ANDROID
extern unsigned struct_ustat_sz;
extern unsigned struct_rlimit64_sz; extern unsigned struct_rlimit64_sz;
extern unsigned struct_timex_sz;
extern unsigned struct_msqid_ds_sz;
extern unsigned struct_mq_attr_sz;
extern unsigned struct_statvfs_sz; extern unsigned struct_statvfs_sz;
extern unsigned struct_statvfs64_sz; extern unsigned struct_statvfs64_sz;