Add cpuid-tycho

This commit is contained in:
c0dev0id 2022-12-19 01:56:07 +01:00
parent ab1dac7ff6
commit 30a0150d81
7 changed files with 136 additions and 0 deletions

View File

@ -0,0 +1,28 @@
# $OpenBSD$
ONLY_FOR_ARCHS= i386 amd64
COMMENT= dump and decode x86 CPUID information
GH_ACCOUNT= tycho
GH_PROJECT= cpuid
GH_TAGNAME= 1.8.2
PKGNAME= cpuid-tycho-${GH_TAGNAME}
CATEGORIES= sysutils
MAINTAINER= Stuart Henderson <sthen@openbsd.org>
# ISC
PERMIT_PACKAGE= Yes
WANTLIB += c m pthread
MODULES= devel/meson
NO_TEST= Yes
do-install:
${INSTALL_PROGRAM} ${WRKBUILD}/cpuid ${PREFIX}/bin/cpuid-tycho
.include <bsd.port.mk>

View File

@ -0,0 +1,2 @@
SHA256 (cpuid-1.8.2.tar.gz) = NJR/RIQlJ0XprIIZFr0ANJwng23vTeJicv9uLHjr1OU=
SIZE (cpuid-1.8.2.tar.gz) = 63055

View File

@ -0,0 +1,16 @@
$OpenBSD$
Index: GNUmakefile
--- GNUmakefile.orig
+++ GNUmakefile
@@ -7,6 +7,11 @@ uname_O := $(shell sh -c 'uname -o 2>/dev/null || echo
prefix := /usr/local
bindir := $(prefix)/bin
+ifeq ($(uname_S),OpenBSD)
+CFLAGS += -pthread
+LDFLAGS += -pthread
+endif
+
ifneq ($(findstring MINGW,$(uname_S)),)
win32 = Yep
endif

View File

@ -0,0 +1,41 @@
$OpenBSD$
Index: threads.c
--- threads.c.orig
+++ threads.c
@@ -49,13 +49,15 @@
#include <pthread.h>
#include <sched.h>
-#elif defined(TARGET_OS_SOLARIS)
+#elif defined(TARGET_OS_SOLARIS) || defined(TARGET_OS_OPENBSD)
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <sys/types.h>
+#if defined(TARGET_OS_SOLARIS)
#include <sys/processor.h>
#include <sys/procset.h>
+#endif
#elif defined(TARGET_OS_MACOSX)
@@ -116,7 +118,7 @@ uint32_t thread_count_native(struct cpuid_state_t *sta
return 1;
return count;
-#elif defined(TARGET_OS_SOLARIS)
+#elif defined(TARGET_OS_SOLARIS) || defined(TARGET_OS_OPENBSD)
long count;
if ((count = sysconf(_SC_NPROCESSORS_ONLN)) == -1)
@@ -289,7 +291,8 @@ int thread_bind_native(__unused_variable struct cpuid_
return ret == 0 ? 0 : 1;
#else
-#error "thread_bind_native() not defined for this platform"
+#warning "thread_bind_native() not defined for this platform"
+ return 0;
#endif
}

View File

@ -0,0 +1,40 @@
$OpenBSD$
Index: threads.c
--- threads.c.orig
+++ threads.c
@@ -44,13 +44,15 @@
#undef MAX_CPUS
#define MAX_CPUS CPU_MAXSIZE
-#elif defined(TARGET_OS_SOLARIS)
+#elif defined(TARGET_OS_SOLARIS) || defined(TARGET_OS_OPENBSD)
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <sys/types.h>
+#if defined(TARGET_OS_SOLARIS)
#include <sys/processor.h>
#include <sys/procset.h>
+#endif
#elif defined(TARGET_OS_MACOSX)
@@ -111,7 +113,7 @@ uint32_t thread_count_native(struct cpuid_state_t *sta
return 1;
return count;
-#elif defined(TARGET_OS_SOLARIS)
+#elif defined(TARGET_OS_SOLARIS) || defined(TARGET_OS_OPENBSD)
long count;
if ((count = sysconf(_SC_NPROCESSORS_ONLN)) == -1)
@@ -263,7 +265,8 @@ int thread_bind_native(__unused_variable struct cpuid_
return ret == 0 ? 0 : 1;
#else
-#error "thread_bind_native() not defined for this platform"
+#warning "thread_bind_native() not defined for this platform"
+ return 0;
#endif
}

View File

@ -0,0 +1,7 @@
"cpuid" dumps results from the x86 CPUID instruction, and decodes
information from certain leaves.
NOTE: the code in this software to bind to a specific CPU is non functional
on OpenBSD; if you are trying to find information from different cores, you'll
need to run it multiple times until the process is scheduled on the core of
interest.

View File

@ -0,0 +1,2 @@
@comment $OpenBSD: PLIST,v$
@bin bin/cpuid-tycho