forked from OSchip/llvm-project
[libsanitizer] Define SANITIZER_IOS when building for iOS or iOS simulator.
Do not use struct stat64 and struct statfs64 when building for iOS, where __DARWIN_ONLY_64_BIT_INO_T is set to 1. llvm-svn: 193775
This commit is contained in:
parent
907305377a
commit
ac501f0250
|
|
@ -25,8 +25,15 @@
|
|||
|
||||
#if defined(__APPLE__)
|
||||
# define SANITIZER_MAC 1
|
||||
# include <TargetConditionals.h>
|
||||
# if TARGET_OS_IPHONE
|
||||
# define SANITIZER_IOS 1
|
||||
# else
|
||||
# define SANITIZER_IOS 0
|
||||
# endif
|
||||
#else
|
||||
# define SANITIZER_MAC 0
|
||||
# define SANITIZER_IOS 0
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32)
|
||||
|
|
|
|||
|
|
@ -41,6 +41,12 @@
|
|||
# define SI_MAC 0
|
||||
#endif
|
||||
|
||||
#if SANITIZER_IOS
|
||||
# define SI_IOS 1
|
||||
#else
|
||||
# define SI_IOS 0
|
||||
#endif
|
||||
|
||||
# define SANITIZER_INTERCEPT_STRCMP 1
|
||||
# define SANITIZER_INTERCEPT_STRCASECMP SI_NOT_WINDOWS
|
||||
|
||||
|
|
@ -129,7 +135,8 @@
|
|||
# define SANITIZER_INTERCEPT_GETMNTENT SI_LINUX
|
||||
# define SANITIZER_INTERCEPT_GETMNTENT_R SI_LINUX_NOT_ANDROID
|
||||
# define SANITIZER_INTERCEPT_STATFS SI_NOT_WINDOWS
|
||||
# define SANITIZER_INTERCEPT_STATFS64 SI_MAC || SI_LINUX_NOT_ANDROID
|
||||
# define SANITIZER_INTERCEPT_STATFS64 \
|
||||
(SI_MAC && !SI_IOS) || SI_LINUX_NOT_ANDROID
|
||||
# define SANITIZER_INTERCEPT_STATVFS SI_LINUX_NOT_ANDROID
|
||||
# define SANITIZER_INTERCEPT_STATVFS64 SI_LINUX_NOT_ANDROID
|
||||
# define SANITIZER_INTERCEPT_INITGROUPS SI_NOT_WINDOWS
|
||||
|
|
|
|||
|
|
@ -122,7 +122,9 @@
|
|||
namespace __sanitizer {
|
||||
unsigned struct_utsname_sz = sizeof(struct utsname);
|
||||
unsigned struct_stat_sz = sizeof(struct stat);
|
||||
#if !SANITIZER_IOS
|
||||
unsigned struct_stat64_sz = sizeof(struct stat64);
|
||||
#endif // !SANITIZER_IOS
|
||||
unsigned struct_rusage_sz = sizeof(struct rusage);
|
||||
unsigned struct_tm_sz = sizeof(struct tm);
|
||||
unsigned struct_passwd_sz = sizeof(struct passwd);
|
||||
|
|
@ -143,9 +145,9 @@ namespace __sanitizer {
|
|||
unsigned struct_sched_param_sz = sizeof(struct sched_param);
|
||||
unsigned struct_statfs_sz = sizeof(struct statfs);
|
||||
|
||||
#if SANITIZER_MAC
|
||||
#if SANITIZER_MAC && !SANITIZER_IOS
|
||||
unsigned struct_statfs64_sz = sizeof(struct statfs64);
|
||||
#endif
|
||||
#endif // SANITIZER_MAC && !SANITIZER_IOS
|
||||
|
||||
#if !SANITIZER_ANDROID
|
||||
unsigned ucontext_t_sz = sizeof(ucontext_t);
|
||||
|
|
|
|||
|
|
@ -21,7 +21,9 @@
|
|||
namespace __sanitizer {
|
||||
extern unsigned struct_utsname_sz;
|
||||
extern unsigned struct_stat_sz;
|
||||
#if !SANITIZER_IOS
|
||||
extern unsigned struct_stat64_sz;
|
||||
#endif
|
||||
extern unsigned struct_rusage_sz;
|
||||
extern unsigned struct_passwd_sz;
|
||||
extern unsigned struct_group_sz;
|
||||
|
|
|
|||
Loading…
Reference in New Issue