[compiler-rt] 54c5224 - [compiler-rt] Disable QSORT interception on watchOS and tvOS.

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 26 01:40:00 PST 2019


Author: Florian Hahn
Date: 2019-12-26T10:39:29+01:00
New Revision: 54c522420347e58aa7bae1892cf5c5672b57c875

URL: https://github.com/llvm/llvm-project/commit/54c522420347e58aa7bae1892cf5c5672b57c875
DIFF: https://github.com/llvm/llvm-project/commit/54c522420347e58aa7bae1892cf5c5672b57c875.diff

LOG: [compiler-rt] Disable QSORT interception on watchOS and tvOS.

Building the sanitizers for watchOS currently fails with
    sanitizer_common_interceptors.inc:9656:8: error: thread-local storage is not supported for the current target
    static THREADLOCAL SIZE_T qsort_size;

I've also speculatively disabled QSORT interception for tvOS to unblock
failing builds. I'll ask someone with more sanitizer knowledge to check
after the holidays.

Added: 
    

Modified: 
    compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h

Removed: 
    


################################################################################
diff  --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h b/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
index 08937122e0bc..4cc69af1241d 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
@@ -96,6 +96,18 @@
 # define SI_IOSSIM 0
 #endif
 
+#if SANITIZER_WATCHOS
+# define SI_WATCHOS 1
+#else
+# define SI_WATCHOS 0
+#endif
+
+#if SANITIZER_TVOS
+# define SI_TVOS 1
+#else
+# define SI_TVOS 0
+#endif
+
 #if SANITIZER_FUCHSIA
 # define SI_NOT_FUCHSIA 0
 #else
@@ -581,7 +593,8 @@
 #define SANITIZER_INTERCEPT_ATEXIT SI_NETBSD
 #define SANITIZER_INTERCEPT_PTHREAD_ATFORK SI_NETBSD
 #define SANITIZER_INTERCEPT_GETENTROPY SI_FREEBSD
-#define SANITIZER_INTERCEPT_QSORT (SI_POSIX && !SI_IOSSIM)
+#define SANITIZER_INTERCEPT_QSORT \
+  (SI_POSIX && !SI_IOSSIM && !SI_WATCHOS && !SI_TVOS)
 #define SANITIZER_INTERCEPT_QSORT_R (SI_LINUX && !SI_ANDROID)
 
 #endif  // #ifndef SANITIZER_PLATFORM_INTERCEPTORS_H


        


More information about the llvm-commits mailing list