Fix for issue 9164
diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py
index 50c8133..28731df 100644
--- a/Lib/sysconfig.py
+++ b/Lib/sysconfig.py
@@ -660,8 +660,7 @@
                 cflags = get_config_vars().get('CFLAGS')
 
                 archs = re.findall('-arch\s+(\S+)', cflags)
-                archs.sort()
-                archs = tuple(archs)
+                archs = tuple(sorted(set(archs)))
 
                 if len(archs) == 1:
                     machine = archs[0]
diff --git a/Misc/NEWS b/Misc/NEWS
index debfb0c..b72e78a 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -470,6 +470,8 @@
 Library
 -------
 
+- Issue #9164: Ensure that sysconfig handles duplicate -arch flags in CFLAGS
+
 - Issue #7646: The fnmatch pattern cache no longer grows without bound.
 
 - Issue #9136: Fix 'dictionary changed size during iteration'