desktop/source/app/crashreport.cxx |    2 ++
 1 file changed, 2 insertions(+)

New commits:
commit 8e36f76a4bc5d5d4a451dbad9f2e0780f8045d21
Author:     Christian Lohmaier <[email protected]>
AuthorDate: Tue Aug 16 20:19:21 2022 +0200
Commit:     Michael Stahl <[email protected]>
CommitDate: Mon Aug 22 11:47:00 2022 +0200

    crashreport: __cpuid/__cpuidex are not available on arm64
    
    …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 <[email protected]>
    (cherry picked from commit edaf09a4c7d4f931b012725adf9e9c443a2d3fb4)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138427
    Reviewed-by: Michael Stahl <[email protected]>

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 );

Reply via email to