[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