From 42b72b125d07dbc8fb3145fc10a8f332961bc0ba Mon Sep 17 00:00:00 2001 From: Sarah Oslund Date: Tue, 21 Sep 2021 08:51:46 -0700 Subject: [PATCH] Add check for translations in mac pkg installers (#7919) --- .../src/GenerateMacOSDistributionFile.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Microsoft.DotNet.Build.Tasks.Installers/src/GenerateMacOSDistributionFile.cs b/src/Microsoft.DotNet.Build.Tasks.Installers/src/GenerateMacOSDistributionFile.cs index a720fcbefe2..fd36cd6251c 100644 --- a/src/Microsoft.DotNet.Build.Tasks.Installers/src/GenerateMacOSDistributionFile.cs +++ b/src/Microsoft.DotNet.Build.Tasks.Installers/src/GenerateMacOSDistributionFile.cs @@ -45,14 +45,18 @@ function IsX64Machine() { var machine = system.sysctl(""hw.machine""); var cputype = system.sysctl(""hw.cputype""); var cpu64 = system.sysctl(""hw.cpu64bit_capable""); + var translated = system.sysctl(""sysctl.proc_translated""); system.log(""Machine type: "" + machine); system.log(""Cpu type: "" + cputype); system.log(""64-bit: "" + cpu64); - + system.log(""Translated: "" + translated); + // From machine.h // CPU_TYPE_X86_64 = CPU_TYPE_X86 | CPU_ARCH_ABI64 = 0x010000007 = 16777223 // CPU_TYPE_X86 = 7 var result = machine == ""amd64"" || machine == ""x86_64"" || cputype == ""16777223"" || (cputype == ""7"" && cpu64 == ""1""); + // We may be running under translation (Rosetta) that makes it seem like system is x64, if so assume machine is not actually x64 + result = result && (translated != ""1""); system.log(""IsX64Machine: "" + result); return result; }