From d56c6cf7a4fe2b7e5543d58a786efc768b7370c2 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Fri, 2 Jun 2017 15:51:27 -0700 Subject: Work around uname(2) on Apple mobile OSes not returning the proper arch Task-number: QTBUG-61205 Change-Id: Ia3e896da908f42939148fffd14c46fc991650f6f Reviewed-by: Jake Petroules --- src/corelib/global/qglobal.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/corelib/global/qglobal.cpp b/src/corelib/global/qglobal.cpp index 14853b3687..2176bd8d4a 100644 --- a/src/corelib/global/qglobal.cpp +++ b/src/corelib/global/qglobal.cpp @@ -86,6 +86,12 @@ # include #endif +#if defined(Q_OS_DARWIN) +# include +# include +# include +#endif + #ifdef Q_OS_UNIX #include #include @@ -2437,6 +2443,20 @@ QString QSysInfo::currentCpuArchitecture() case PROCESSOR_ARCHITECTURE_IA64: return QStringLiteral("ia64"); } +#elif defined(Q_OS_DARWIN) + cpu_type_t type; + size_t size = sizeof(type); + sysctlbyname("hw.cputype", &type, &size, NULL, 0); + switch (type) { + case CPU_TYPE_X86: + return QStringLiteral("i386"); + case CPU_TYPE_X86_64: + return QStringLiteral("x86_64"); + case CPU_TYPE_ARM: + return QStringLiteral("arm"); + case CPU_TYPE_ARM64: + return QStringLiteral("arm64"); + } #elif defined(Q_OS_UNIX) long ret = -1; struct utsname u; -- cgit v1.2.3