Skip to content

Commit 70853b4

Browse files
committed
fix: Detection of HW caps and Num Cpus for FreeBSD(R) and OpenBSD(R)
Signed-off-by: Martin Filla <freebsd@sysctl.cz>
1 parent d9f0a9c commit 70853b4

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

src/common/cpuinfo/CpuInfo.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
#elif (defined(__APPLE__)) && defined(__aarch64__)
6161
#include <sys/sysctl.h>
6262
#include <sys/types.h>
63-
#elif (defined(__OpenBSD__) || defined(__FreeBSD__))
63+
#elif (defined(__OpenBSD__) || defined(__FreeBSD__)) && defined(__aarch64__)
6464
#include <sys/auxv.h>
6565
#include <sys/sysctl.h>
6666
#include <sys/types.h>
@@ -400,7 +400,8 @@ CpuInfo CpuInfo::build()
400400

401401
CpuInfo info(isa, cpus_model);
402402
return info;
403-
#elif defined(__OpenBSD__) || defined(__FreeBSD__)
403+
#elif defined(__arm__) && (defined(__OpenBSD__) || defined(__FreeBSD__)) /* if !defined(_WIN64) && !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) &&
404+
!defined(__FreeBSD__) && !defined(__QNX__) && (defined(__arm__) || defined(__aarch64__)) */
404405
int mib[2] = {0, 0};
405406
int ncpu = {1};
406407
size_t len = sizeof(ncpu);
@@ -418,7 +419,7 @@ CpuInfo CpuInfo::build()
418419
return info;
419420
#elif (BARE_METAL) && \
420421
defined( \
421-
__aarch64__) /* !defined(BARE_METAL) && !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__QNX__) && (defined(__arm__) || defined(__aarch64__)) */
422+
__aarch64__) /* #elif defined(__arm__) && (defined(__OpenBSD__) || defined(__FreeBSD__)) */
422423

423424
// Assume single CPU in bare metal mode. Just read the ID register and feature bits directly.
424425
uint64_t isar0 = 0, isar1 = 0, pfr0 = 0, pfr1 = 0, svefr0 = 0, smefr0 = 0, midr = 0;

0 commit comments

Comments
 (0)