[compiler-rt] bd88991 - Revert "[Darwin] Fix OS version checks inside simulators"
Julian Lettner via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 16 11:47:47 PDT 2020
Author: Julian Lettner
Date: 2020-07-16T11:47:41-07:00
New Revision: bd88991a011be895ba73fe07015df25e1e55992e
URL: https://github.com/llvm/llvm-project/commit/bd88991a011be895ba73fe07015df25e1e55992e
DIFF: https://github.com/llvm/llvm-project/commit/bd88991a011be895ba73fe07015df25e1e55992e.diff
LOG: Revert "[Darwin] Fix OS version checks inside simulators"
This reverts commit b16dfbead21a458799a0dab96599eb15f5d9b7ea.
Accidental push, reverting and creating a new revision.
Added:
Modified:
compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
compiler-rt/lib/sanitizer_common/tests/sanitizer_mac_test.cpp
Removed:
################################################################################
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
index 883786e867e7..db8a09e6f0de 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
@@ -606,32 +606,9 @@ HandleSignalMode GetHandleSignalMode(int signum) {
return result;
}
-void ParseVersion(const char *vers, u16 *major, u16 *minor) {
- // Format: <major>.<minor>[.<patch>]\0
- CHECK_GE(internal_strlen(vers), 3);
- const char *p = vers;
- *major = internal_simple_strtoll(p, &p, /*base=*/10);
- CHECK_EQ(*p, '.');
- p += 1;
- *minor = internal_simple_strtoll(p, &p, /*base=*/10);
-}
-
-// Aligned versions example:
-// Darwin 19 -- macOS 10.15 -- iOS 13 -- tvOS 13 -- watchOS 6
-static u16 GetDarwinKernelMajorFromOSMajor(u16 os_major) {
- u16 offset;
- if (SANITIZER_IOS || SANITIZER_TVOS)
- offset = 6;
- else if (SANITIZER_WATCHOS)
- offset = 13;
- else // macOS
- UNREACHABLE("GetDarwinKernelMajorFromOSMajor() does not support macOS");
-
- return os_major + offset;
-}
-
// This corresponds to Triple::getMacOSXVersion() in the Clang driver.
-static MacosVersion GetMacosVersionFromDarwinMajor(u16 kernel_major) {
+static MacosVersion GetMacosAlignedVersionInternal() {
+ u16 kernel_major = GetDarwinKernelVersion().major;
// Darwin 0-3 -> unsupported
// Darwin 4-19 -> macOS 10.x
// Darwin 20+ -> macOS 11+
@@ -647,22 +624,6 @@ static MacosVersion GetMacosVersionFromDarwinMajor(u16 kernel_major) {
return MacosVersion(major, minor);
}
-static MacosVersion GetMacosAlignedVersionInternal() {
- if (SANITIZER_IOSSIM) {
- if (auto vers = GetEnv("SIMULATOR_RUNTIME_VERSION")) {
- u16 major, minor;
- ParseVersion(vers, &major, &minor);
- u16 kernel_major = GetDarwinKernelMajorFromOSMajor(major);
- return GetMacosVersionFromDarwinMajor(kernel_major);
- }
- Report("WARNING: Running in simulator but SIMULATOR_RUNTIME_VERSION env "
- "var is not set.\n");
- }
-
- u16 kernel_major = GetDarwinKernelVersion().major;
- return GetMacosVersionFromDarwinMajor(kernel_major);
-}
-
static_assert(sizeof(MacosVersion) == sizeof(atomic_uint32_t::Type),
"MacosVersion cache size");
static atomic_uint32_t cached_macos_version;
@@ -678,14 +639,24 @@ MacosVersion GetMacosAlignedVersion() {
return *reinterpret_cast<MacosVersion *>(&result);
}
+void ParseVersion(const char *vers, u16 *major, u16 *minor) {
+ // Format: <major>.<minor>.<patch>\0
+ CHECK_GE(internal_strlen(vers), 5);
+ const char *p = vers;
+ *major = internal_simple_strtoll(p, &p, /*base=*/10);
+ CHECK_EQ(*p, '.');
+ p += 1;
+ *minor = internal_simple_strtoll(p, &p, /*base=*/10);
+}
+
DarwinKernelVersion GetDarwinKernelVersion() {
- char vers[100];
- size_t len = sizeof(vers);
- int res = internal_sysctlbyname("kern.osrelease", vers, &len, nullptr, 0);
+ char buf[100];
+ size_t len = sizeof(buf);
+ int res = internal_sysctlbyname("kern.osrelease", buf, &len, nullptr, 0);
CHECK_EQ(res, 0);
u16 major, minor;
- ParseVersion(vers, &major, &minor);
+ ParseVersion(buf, &major, &minor);
return DarwinKernelVersion(major, minor);
}
diff --git a/compiler-rt/lib/sanitizer_common/tests/sanitizer_mac_test.cpp b/compiler-rt/lib/sanitizer_common/tests/sanitizer_mac_test.cpp
index db5cbce7cbee..c8658ea55d03 100644
--- a/compiler-rt/lib/sanitizer_common/tests/sanitizer_mac_test.cpp
+++ b/compiler-rt/lib/sanitizer_common/tests/sanitizer_mac_test.cpp
@@ -22,35 +22,6 @@
namespace __sanitizer {
-void ParseVersion(const char *vers, u16 *major, u16 *minor);
-
-TEST(SanitizerMac, ParseVersion) {
- u16 major, minor;
-
- ParseVersion("11.22.33", &major, &minor);
- EXPECT_EQ(major, 11); EXPECT_EQ(minor, 22);
-
- ParseVersion("1.2", &major, &minor);
- EXPECT_EQ(major, 1); EXPECT_EQ(minor, 2);
-}
-
-#if SANITIZER_IOSSIM
-TEST(SanitizerMac, GetMacosAlignedVersion) {
- const char *vers_str;
- if (SANITIZER_IOS || SANITIZER_TVOS) {
- vers_str = "13.0";
- } else if (SANITIZER_WATCHOS) {
- vers_str = "6.5";
- } else {
- FAIL() << "unsupported simulator runtime";
- }
- setenv("SIMULATOR_RUNTIME_VERSION", vers_str, /*overwrite=*/1);
-
- MacosVersion vers = GetMacosAlignedVersion();
- EXPECT_EQ(vers.major, 10);
- EXPECT_EQ(vers.minor, 15);
-}
-#else
TEST(SanitizerMac, GetMacosAlignedVersion) {
MacosVersion vers = GetMacosAlignedVersion();
u16 kernel_major = GetDarwinKernelVersion().major;
@@ -60,7 +31,15 @@ TEST(SanitizerMac, GetMacosAlignedVersion) {
EXPECT_EQ(vers.major, expected_major);
EXPECT_EQ(vers.minor, expected_minor);
}
-#endif
+
+void ParseVersion(const char *vers, u16 *major, u16 *minor);
+
+TEST(SanitizerMac, ParseVersion) {
+ u16 major, minor;
+ ParseVersion("11.22.33", &major, &minor);
+ EXPECT_EQ(major, 11);
+ EXPECT_EQ(minor, 22);
+}
TEST(SanitizerMac, GetDarwinKernelVersion) {
DarwinKernelVersion vers = GetDarwinKernelVersion();
More information about the llvm-commits
mailing list