use HW_NCPUONLINE instead of HW_NCPU for correct core count

Index: rts/lib/libcpuid/libcpuid/cpuid_main.c
--- rts/lib/libcpuid/libcpuid/cpuid_main.c.orig
+++ rts/lib/libcpuid/libcpuid/cpuid_main.c
@@ -290,7 +290,13 @@ static bool set_cpu_affinity(logical_cpu_t logical_cpu
 
 static int get_total_cpus(void)
 {
+#ifdef __OpenBSD__
+	// hyperthreading disabled by default on OpenBSD;
+	// NCPUONLINE returns the actual number of available (online) CPUs
+	int mib[2] = { CTL_HW, HW_NCPUONLINE };
+#else
 	int mib[2] = { CTL_HW, HW_NCPU };
+#endif
 	int ncpus;
 	size_t len = sizeof(ncpus);
 	if (sysctl(mib, 2, &ncpus, &len, (void *) 0, 0) != 0) return 1;
