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 <lohmaier+LibreOffice@googlemail.com>
This commit is contained in:
Christian Lohmaier 2022-08-16 20:19:21 +02:00
parent 64c60a6793
commit de3fcf4bea

View file

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