@@ -141,6 +141,12 @@ SANITIZER_WEAK_IMPORT void *aligned_alloc(__sanitizer::usize __alignment,
141
141
#define SI_SOLARIS 0
142
142
#endif
143
143
144
+ #if SANITIZER_AIX
145
+ # define SI_NOT_AIX 0
146
+ #else
147
+ # define SI_NOT_AIX 1
148
+ #endif
149
+
144
150
#if SANITIZER_SOLARIS32
145
151
#define SI_SOLARIS32 1
146
152
#else
@@ -161,20 +167,20 @@ SANITIZER_WEAK_IMPORT void *aligned_alloc(__sanitizer::usize __alignment,
161
167
162
168
#define SANITIZER_INTERCEPT_STRLEN SI_NOT_FUCHSIA
163
169
#define SANITIZER_INTERCEPT_STRNLEN (SI_NOT_MAC && SI_NOT_FUCHSIA)
164
- #define SANITIZER_INTERCEPT_STRCMP SI_NOT_FUCHSIA
170
+ #define SANITIZER_INTERCEPT_STRCMP ( SI_NOT_FUCHSIA && SI_NOT_AIX)
165
171
#define SANITIZER_INTERCEPT_STRSTR SI_NOT_FUCHSIA
166
- #define SANITIZER_INTERCEPT_STRCASESTR SI_POSIX
172
+ #define SANITIZER_INTERCEPT_STRCASESTR ( SI_POSIX && SI_NOT_AIX)
167
173
#define SANITIZER_INTERCEPT_STRTOK SI_NOT_FUCHSIA
168
174
#define SANITIZER_INTERCEPT_STRCHR SI_NOT_FUCHSIA
169
- #define SANITIZER_INTERCEPT_STRCHRNUL SI_POSIX_NOT_MAC
175
+ #define SANITIZER_INTERCEPT_STRCHRNUL ( SI_POSIX_NOT_MAC && SI_NOT_AIX)
170
176
#define SANITIZER_INTERCEPT_STRRCHR SI_NOT_FUCHSIA
171
177
#define SANITIZER_INTERCEPT_STRSPN SI_NOT_FUCHSIA
172
178
#define SANITIZER_INTERCEPT_STRPBRK SI_NOT_FUCHSIA
173
179
#define SANITIZER_INTERCEPT_TEXTDOMAIN SI_LINUX_NOT_ANDROID || SI_SOLARIS
174
180
#define SANITIZER_INTERCEPT_STRCASECMP SI_POSIX
175
181
#define SANITIZER_INTERCEPT_MEMSET 1
176
- #define SANITIZER_INTERCEPT_MEMMOVE 1
177
- #define SANITIZER_INTERCEPT_MEMCPY 1
182
+ #define SANITIZER_INTERCEPT_MEMMOVE SI_NOT_AIX
183
+ #define SANITIZER_INTERCEPT_MEMCPY SI_NOT_AIX
178
184
#define SANITIZER_INTERCEPT_MEMCMP SI_NOT_FUCHSIA
179
185
#define SANITIZER_INTERCEPT_BCMP \
180
186
SANITIZER_INTERCEPT_MEMCMP && \
@@ -233,18 +239,21 @@ SANITIZER_WEAK_IMPORT void *aligned_alloc(__sanitizer::usize __alignment,
233
239
#define SANITIZER_INTERCEPT_ISOC99_SCANF SI_GLIBC
234
240
235
241
#ifndef SANITIZER_INTERCEPT_PRINTF
236
- #define SANITIZER_INTERCEPT_PRINTF SI_POSIX
237
- #define SANITIZER_INTERCEPT_PRINTF_L (SI_FREEBSD || SI_NETBSD)
238
- #define SANITIZER_INTERCEPT_ISOC99_PRINTF SI_GLIBC
242
+ # define SANITIZER_INTERCEPT_ASPRINTF SI_NOT_AIX
243
+ # define SANITIZER_INTERCEPT_VASPRINTF SI_NOT_AIX
244
+ # define SANITIZER_INTERCEPT_PRINTF SI_POSIX
245
+ # define SANITIZER_INTERCEPT_PRINTF_L (SI_FREEBSD || SI_NETBSD)
246
+ # define SANITIZER_INTERCEPT_ISOC99_PRINTF SI_GLIBC
239
247
#endif
240
248
241
249
#define SANITIZER_INTERCEPT_SETPROCTITLE (SI_FREEBSD || SI_NETBSD)
242
250
243
251
#define SANITIZER_INTERCEPT___PRINTF_CHK \
244
252
(SANITIZER_INTERCEPT_PRINTF && SI_GLIBC)
245
253
246
- #define SANITIZER_INTERCEPT_FREXP SI_NOT_FUCHSIA
247
- #define SANITIZER_INTERCEPT_FREXPF SI_POSIX
254
+ // AIX libc does not export FREXP and FREXPF.
255
+ #define SANITIZER_INTERCEPT_FREXP (SI_NOT_FUCHSIA && SI_NOT_AIX)
256
+ #define SANITIZER_INTERCEPT_FREXPF (SI_POSIX && SI_NOT_AIX)
248
257
#define SANITIZER_INTERCEPT_FREXPL SI_POSIX
249
258
250
259
#define SANITIZER_INTERCEPT_GETPWNAM_AND_FRIENDS SI_POSIX
@@ -294,7 +303,7 @@ SANITIZER_WEAK_IMPORT void *aligned_alloc(__sanitizer::usize __alignment,
294
303
#define SANITIZER_INTERCEPT_ACCEPT4 \
295
304
(SI_LINUX_NOT_ANDROID || SI_NETBSD || SI_FREEBSD)
296
305
#define SANITIZER_INTERCEPT_PACCEPT SI_NETBSD
297
- #define SANITIZER_INTERCEPT_MODF SI_POSIX
306
+ #define SANITIZER_INTERCEPT_MODF ( SI_POSIX && SI_NOT_AIX)
298
307
#define SANITIZER_INTERCEPT_RECVMSG SI_POSIX
299
308
#define SANITIZER_INTERCEPT_SENDMSG SI_POSIX
300
309
#define SANITIZER_INTERCEPT_RECVMMSG SI_LINUX
@@ -329,8 +338,9 @@ SANITIZER_WEAK_IMPORT void *aligned_alloc(__sanitizer::usize __alignment,
329
338
#define SANITIZER_INTERCEPT___WCSXFRM_L SI_LINUX
330
339
#define SANITIZER_INTERCEPT_WCSNRTOMBS \
331
340
(SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID || SI_SOLARIS)
332
- #define SANITIZER_INTERCEPT_WCRTOMB \
333
- (SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID || SI_SOLARIS)
341
+ #define SANITIZER_INTERCEPT_WCRTOMB \
342
+ (SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID || SI_SOLARIS || \
343
+ !SI_NOT_AIX)
334
344
#define SANITIZER_INTERCEPT_WCTOMB \
335
345
(SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID || SI_SOLARIS)
336
346
#define SANITIZER_INTERCEPT_TCGETATTR SI_LINUX_NOT_ANDROID || SI_SOLARIS
@@ -370,7 +380,8 @@ SANITIZER_WEAK_IMPORT void *aligned_alloc(__sanitizer::usize __alignment,
370
380
#define SANITIZER_INTERCEPT_GETMNTENT_R SI_LINUX_NOT_ANDROID
371
381
#define SANITIZER_INTERCEPT_STATFS \
372
382
(SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID || SI_SOLARIS)
373
- #define SANITIZER_INTERCEPT_STATFS64 SI_GLIBC && SANITIZER_HAS_STATFS64
383
+ #define SANITIZER_INTERCEPT_STATFS64 \
384
+ ((SI_GLIBC || !SI_NOT_AIX) && SANITIZER_HAS_STATFS64)
374
385
#define SANITIZER_INTERCEPT_STATVFS \
375
386
(SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID)
376
387
#define SANITIZER_INTERCEPT_STATVFS64 SI_GLIBC
@@ -419,10 +430,10 @@ SANITIZER_WEAK_IMPORT void *aligned_alloc(__sanitizer::usize __alignment,
419
430
#define SANITIZER_INTERCEPT_TTYNAME_R SI_POSIX
420
431
#define SANITIZER_INTERCEPT_TEMPNAM SI_POSIX
421
432
#define SANITIZER_INTERCEPT_SINCOS SI_LINUX || SI_SOLARIS
422
- #define SANITIZER_INTERCEPT_REMQUO SI_POSIX
423
- #define SANITIZER_INTERCEPT_REMQUOL (SI_POSIX && !SI_NETBSD)
424
- #define SANITIZER_INTERCEPT_LGAMMA SI_POSIX
425
- #define SANITIZER_INTERCEPT_LGAMMAL (SI_POSIX && !SI_NETBSD)
433
+ #define SANITIZER_INTERCEPT_REMQUO ( SI_POSIX && SI_NOT_AIX)
434
+ #define SANITIZER_INTERCEPT_REMQUOL (SI_POSIX && !SI_NETBSD && SI_NOT_AIX )
435
+ #define SANITIZER_INTERCEPT_LGAMMA ( SI_POSIX && SI_NOT_AIX)
436
+ #define SANITIZER_INTERCEPT_LGAMMAL (SI_POSIX && !SI_NETBSD && SI_NOT_AIX )
426
437
#define SANITIZER_INTERCEPT_LGAMMA_R (SI_FREEBSD || SI_LINUX || SI_SOLARIS)
427
438
#define SANITIZER_INTERCEPT_LGAMMAL_R SI_LINUX_NOT_ANDROID || SI_SOLARIS
428
439
#define SANITIZER_INTERCEPT_DRAND48_R SI_GLIBC
@@ -505,11 +516,13 @@ SANITIZER_WEAK_IMPORT void *aligned_alloc(__sanitizer::usize __alignment,
505
516
#define SANITIZER_INTERCEPT_EVENTFD_READ_WRITE (SI_LINUX || SI_FREEBSD)
506
517
507
518
#define SI_STAT_LINUX (SI_LINUX && __GLIBC_PREREQ(2 , 33 ))
508
- #define SANITIZER_INTERCEPT_STAT \
509
- (SI_FREEBSD || SI_MAC || SI_ANDROID || SI_NETBSD || SI_SOLARIS || \
510
- SI_STAT_LINUX)
511
- #define SANITIZER_INTERCEPT_STAT64 SI_STAT_LINUX && SANITIZER_HAS_STAT64
512
- #define SANITIZER_INTERCEPT_LSTAT (SI_NETBSD || SI_FREEBSD || SI_STAT_LINUX)
519
+ #define SANITIZER_INTERCEPT_STAT \
520
+ (SI_FREEBSD || SI_MAC || SI_ANDROID || SI_NETBSD || SI_SOLARIS || \
521
+ SI_STAT_LINUX || !SI_NOT_AIX)
522
+ #define SANITIZER_INTERCEPT_STAT64 \
523
+ ((SI_STAT_LINUX || !SI_NOT_AIX) && SANITIZER_HAS_STAT64)
524
+ #define SANITIZER_INTERCEPT_LSTAT \
525
+ (SI_NETBSD || SI_FREEBSD || SI_STAT_LINUX || !SI_NOT_AIX)
513
526
#define SANITIZER_INTERCEPT___XSTAT \
514
527
((!SANITIZER_INTERCEPT_STAT && SI_POSIX) || SI_STAT_LINUX)
515
528
#define SANITIZER_INTERCEPT___XSTAT64 SI_GLIBC
@@ -578,7 +591,7 @@ SANITIZER_WEAK_IMPORT void *aligned_alloc(__sanitizer::usize __alignment,
578
591
#define SANITIZER_INTERCEPT_PROTOENT_R SI_GLIBC
579
592
#define SANITIZER_INTERCEPT_NETENT (SI_LINUX || SI_NETBSD || SI_FREEBSD)
580
593
#define SANITIZER_INTERCEPT_SETVBUF \
581
- (SI_NETBSD || SI_FREEBSD || SI_LINUX || SI_MAC)
594
+ (SI_NETBSD || SI_FREEBSD || SI_LINUX || SI_MAC || !SI_NOT_AIX )
582
595
#define SANITIZER_INTERCEPT_GETMNTINFO (SI_NETBSD || SI_FREEBSD || SI_MAC)
583
596
#define SANITIZER_INTERCEPT_MI_VECTOR_HASH SI_NETBSD
584
597
#define SANITIZER_INTERCEPT_GETVFSSTAT SI_NETBSD
0 commit comments