From de3fcf4bea142fa376b043862ef2bde1db32098f Mon Sep 17 00:00:00 2001 From: Christian Lohmaier Date: Tue, 16 Aug 2022 20:19:21 +0200 Subject: [PATCH] crashreport: __cpuid/__cpuidex are not available on arm64 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit …and from a quick glance similar features are not exposed to userland applications on arm64: https://docs.kernel.org/arm64/cpu-feature-registers.html "The ARM architecture defines a set of feature registers, which describe the capabilities of the CPU/system. Access to these system registers is restricted from EL0 and there is no reliable way for an application to extract this information to make better decisions at runtime.[…]" Thus the CPU information would have to be gathered from the OS, probably from the Windows registry, at least it should be possible to read the name/model that way… Change-Id: I39e3679a7c4c581d8e3e4f71842d7ea7cdc2ba67 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138380 Tested-by: Jenkins Reviewed-by: Christian Lohmaier --- desktop/source/app/crashreport.cxx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop/source/app/crashreport.cxx b/desktop/source/app/crashreport.cxx index a14527c621e2..0458edf9793a 100644 --- a/desktop/source/app/crashreport.cxx +++ b/desktop/source/app/crashreport.cxx @@ -346,6 +346,7 @@ void CrashReporter::writeSystemInfo() #elif defined _WIN32 void CrashReporter::writeSystemInfo() { +#if !defined(_ARM64_) // Get CPU model name and flags. // See https://docs.microsoft.com/en-us/cpp/intrinsics/cpuid-cpuidex // and https://en.wikipedia.org/wiki/CPUID . @@ -456,6 +457,7 @@ void CrashReporter::writeSystemInfo() } if( !flags.isEmpty()) addKeyValue( "CPUFlags", flags.makeStringAndClear(), AddItem ); +#endif // Get total memory. MEMORYSTATUSEX memoryStatus; memoryStatus.dwLength = sizeof( memoryStatus );