72 lines
1.9 KiB
Diff
72 lines
1.9 KiB
Diff
|
diff --git a/lib/sanitizer_common/sanitizer_mac.cpp b/lib/sanitizer_common/sanitizer_mac.cpp
|
||
|
--- a/lib/sanitizer_common/sanitizer_mac.cpp
|
||
|
+++ b/lib/sanitizer_common/sanitizer_mac.cpp
|
||
|
@@ -613,9 +613,15 @@ HandleSignalMode GetHandleSignalMode(int signum) {
|
||
|
// Offset example:
|
||
|
// XNU 17 -- macOS 10.13 -- iOS 11 -- tvOS 11 -- watchOS 4
|
||
|
constexpr u16 GetOSMajorKernelOffset() {
|
||
|
- if (TARGET_OS_OSX) return 4;
|
||
|
- if (TARGET_OS_IOS || TARGET_OS_TV) return 6;
|
||
|
- if (TARGET_OS_WATCH) return 13;
|
||
|
+#if TARGET_OS_OSX
|
||
|
+ return 4;
|
||
|
+#endif
|
||
|
+#if TARGET_OS_IOS || TARGET_OS_TV
|
||
|
+ return 6;
|
||
|
+#endif
|
||
|
+#if TARGET_OS_WATCH
|
||
|
+ return 13;
|
||
|
+#endif
|
||
|
}
|
||
|
|
||
|
using VersStr = char[64];
|
||
|
@@ -627,13 +633,13 @@ static uptr ApproximateOSVersionViaKernelVersion(VersStr vers) {
|
||
|
u16 os_major = kernel_major - offset;
|
||
|
|
||
|
const char *format = "%d.0";
|
||
|
- if (TARGET_OS_OSX) {
|
||
|
- if (os_major >= 16) { // macOS 11+
|
||
|
- os_major -= 5;
|
||
|
- } else { // macOS 10.15 and below
|
||
|
- format = "10.%d";
|
||
|
- }
|
||
|
+#if TARGET_OS_OSX
|
||
|
+ if (os_major >= 16) { // macOS 11+
|
||
|
+ os_major -= 5;
|
||
|
+ } else { // macOS 10.15 and below
|
||
|
+ format = "10.%d";
|
||
|
}
|
||
|
+#endif
|
||
|
return internal_snprintf(vers, sizeof(VersStr), format, os_major);
|
||
|
}
|
||
|
|
||
|
@@ -681,15 +687,14 @@ void ParseVersion(const char *vers, u16 *major, u16 *minor) {
|
||
|
// Aligned versions example:
|
||
|
// macOS 10.15 -- iOS 13 -- tvOS 13 -- watchOS 6
|
||
|
static void MapToMacos(u16 *major, u16 *minor) {
|
||
|
- if (TARGET_OS_OSX)
|
||
|
- return;
|
||
|
-
|
||
|
- if (TARGET_OS_IOS || TARGET_OS_TV)
|
||
|
+#if !TARGET_OS_OSX
|
||
|
+#if TARGET_OS_IOS || TARGET_OS_TV
|
||
|
*major += 2;
|
||
|
- else if (TARGET_OS_WATCH)
|
||
|
+#elif TARGET_OS_WATCH
|
||
|
*major += 9;
|
||
|
- else
|
||
|
+#else
|
||
|
UNREACHABLE("unsupported platform");
|
||
|
+#endif
|
||
|
|
||
|
if (*major >= 16) { // macOS 11+
|
||
|
*major -= 5;
|
||
|
@@ -697,6 +702,7 @@ static void MapToMacos(u16 *major, u16 *minor) {
|
||
|
*minor = *major;
|
||
|
*major = 10;
|
||
|
}
|
||
|
+#endif
|
||
|
}
|
||
|
|
||
|
static MacosVersion GetMacosAlignedVersionInternal() {
|