--- mesonbuild/environment.py.orig	2023-12-01 21:19:37
+++ mesonbuild/environment.py	2023-12-01 21:24:12
@@ -15,6 +15,7 @@
 
 import itertools
 import os, platform, re, sys, shutil
+import subprocess
 import typing as T
 import collections
 
@@ -283,6 +284,21 @@
         if compiler.id == 'gcc' and compiler.has_builtin_define('__i386__'):
             return 'x86'
     return os_arch
+
+def detect_osx_arch() -> str:
+    """
+    per #6187, handle early Mac 64-bit Intel CPU with 64-bit OSX using a **32-bit kernel**
+    testing this requires old MacOS and hardware, not easily available for cloud CI,
+    so users needing this functionality may kindly need to help with debugging info.
+    """
+    try:
+        ret = subprocess.run(['sysctl', '-n', 'hw.cpu64bit_capable'],
+                             universal_newlines=True, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL).stdout
+        trial = 'x86_64' if ret.strip() == '1' else 'x86'
+    except subprocess.SubprocessError:
+        # very old MacOS version with implicit 32-bit CPU due to calling if-elif stack
+        trial = 'x86'
+    return trial
 
 def any_compiler_has_define(compilers: CompilersDict, define: str) -> bool:
     for c in compilers.values():
@@ -308,7 +324,11 @@
     else:
         trial = platform.machine().lower()
     if trial.startswith('i') and trial.endswith('86'):
-        trial = 'x86'
+        if mesonlib.is_osx():
+            # handle corner case with early Mac 64-bit CPU and older OSX
+            trial = detect_osx_arch()
+        else:
+            trial = 'x86'
     elif trial == 'bepc':
         trial = 'x86'
     elif trial == 'arm64':
