util/cpuinfo-ppc: Fix building on OpenBSD

OpenBSD does not support AT_HWCAP.

Signed-off-by: Brad Smith <brad@comstyle.com>
Message-Id: <ZnzM1T6Vo1Q0yAH-@humpty.home.comstyle.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Brad Smith 2024-06-26 22:22:13 -04:00 committed by Richard Henderson
parent 6746482d12
commit 272d3decc1
1 changed files with 12 additions and 8 deletions

View File

@ -6,11 +6,13 @@
#include "qemu/osdep.h" #include "qemu/osdep.h"
#include "host/cpuinfo.h" #include "host/cpuinfo.h"
#include <asm/cputable.h> #ifdef CONFIG_LINUX
#ifdef CONFIG_GETAUXVAL # include <asm/cputable.h>
# include <sys/auxv.h> # ifdef CONFIG_GETAUXVAL
#else # include <sys/auxv.h>
# include "elf.h" # else
# include "elf.h"
# endif
#endif #endif
unsigned cpuinfo; unsigned cpuinfo;
@ -19,16 +21,17 @@ unsigned cpuinfo;
unsigned __attribute__((constructor)) cpuinfo_init(void) unsigned __attribute__((constructor)) cpuinfo_init(void)
{ {
unsigned info = cpuinfo; unsigned info = cpuinfo;
unsigned long hwcap, hwcap2;
if (info) { if (info) {
return info; return info;
} }
hwcap = qemu_getauxval(AT_HWCAP);
hwcap2 = qemu_getauxval(AT_HWCAP2);
info = CPUINFO_ALWAYS; info = CPUINFO_ALWAYS;
#ifdef CONFIG_LINUX
unsigned long hwcap = qemu_getauxval(AT_HWCAP);
unsigned long hwcap2 = qemu_getauxval(AT_HWCAP2);
/* Version numbers are monotonic, and so imply all lower versions. */ /* Version numbers are monotonic, and so imply all lower versions. */
if (hwcap2 & PPC_FEATURE2_ARCH_3_1) { if (hwcap2 & PPC_FEATURE2_ARCH_3_1) {
info |= CPUINFO_V3_1 | CPUINFO_V3_0 | CPUINFO_V2_07 | CPUINFO_V2_06; info |= CPUINFO_V3_1 | CPUINFO_V3_0 | CPUINFO_V2_07 | CPUINFO_V2_06;
@ -58,6 +61,7 @@ unsigned __attribute__((constructor)) cpuinfo_init(void)
} }
} }
} }
#endif
cpuinfo = info; cpuinfo = info;
return info; return info;