about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJohn Kelly <johnharrykelly@gmail.com>2023-04-27 17:39:58 +0100
committerJohn Kelly <johnharrykelly@gmail.com>2023-04-27 17:39:58 +0100
commit1b390f44cfefa3a83af6056f136964e24c22af66 (patch)
treedb9081f76ce63ccbdfa56451eaba7048e1f98a2d
parent6ce22733b973355573efd1e6294e585460e90e17 (diff)
downloadrust-1b390f44cfefa3a83af6056f136964e24c22af66.tar.gz
rust-1b390f44cfefa3a83af6056f136964e24c22af66.zip
Skip rustc version detection on macOS
-rw-r--r--src/bootstrap/bootstrap.py31
1 files changed, 18 insertions, 13 deletions
diff --git a/src/bootstrap/bootstrap.py b/src/bootstrap/bootstrap.py
index 680a8da6adf..98e62f00110 100644
--- a/src/bootstrap/bootstrap.py
+++ b/src/bootstrap/bootstrap.py
@@ -209,19 +209,24 @@ def default_build_triple(verbose):
     # install, use their preference. This fixes most issues with Windows builds
     # being detected as GNU instead of MSVC.
     default_encoding = sys.getdefaultencoding()
-    try:
-        version = subprocess.check_output(["rustc", "--version", "--verbose"],
-                stderr=subprocess.DEVNULL)
-        version = version.decode(default_encoding)
-        host = next(x for x in version.split('\n') if x.startswith("host: "))
-        triple = host.split("host: ")[1]
-        if verbose:
-            print("detected default triple {} from pre-installed rustc".format(triple))
-        return triple
-    except Exception as e:
-        if verbose:
-            print("pre-installed rustc not detected: {}".format(e))
-            print("falling back to auto-detect")
+
+    if sys.platform == 'darwin':
+        print("not using rustc detection as it is unreliable on macOS")
+        print("falling back to auto-detect")
+    else:
+        try:
+            version = subprocess.check_output(["rustc", "--version", "--verbose"],
+                    stderr=subprocess.DEVNULL)
+            version = version.decode(default_encoding)
+            host = next(x for x in version.split('\n') if x.startswith("host: "))
+            triple = host.split("host: ")[1]
+            if verbose:
+                print("detected default triple {} from pre-installed rustc".format(triple))
+            return triple
+        except Exception as e:
+            if verbose:
+                print("pre-installed rustc not detected: {}".format(e))
+                print("falling back to auto-detect")
 
     required = sys.platform != 'win32'
     ostype = require(["uname", "-s"], exit=required)