Index | Thread | Search

From:
Brad Smith <brad@comstyle.com>
Subject:
UPDATE: aircrack-ng
To:
ports@openbsd.org
Date:
Thu, 25 Jul 2024 23:53:03 -0400

Download raw body.

Thread
  • Brad Smith:

    UPDATE: aircrack-ng

Fix building on arm and powerpc.


Index: Makefile
===================================================================
RCS file: /cvs/ports/security/aircrack-ng/Makefile,v
retrieving revision 1.41
diff -u -p -u -p -r1.41 Makefile
--- Makefile	11 Jun 2024 05:55:16 -0000	1.41
+++ Makefile	19 Jul 2024 11:21:16 -0000
@@ -2,7 +2,7 @@ COMMENT=		802.11 WEP and WPA-PSK keys cr
 
 VER=			1.7
 DISTNAME=		aircrack-ng-${VER}
-REVISION=		0
+REVISION=		1
 CATEGORIES=		security
 
 HOMEPAGE=		https://www.aircrack-ng.org/
Index: patches/patch-lib_libac_cpu_simd_cpuid_c
===================================================================
RCS file: patches/patch-lib_libac_cpu_simd_cpuid_c
diff -N patches/patch-lib_libac_cpu_simd_cpuid_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-lib_libac_cpu_simd_cpuid_c	19 Jul 2024 11:21:16 -0000
@@ -0,0 +1,119 @@
+Index: lib/libac/cpu/simd_cpuid.c
+--- lib/libac/cpu/simd_cpuid.c.orig
++++ lib/libac/cpu/simd_cpuid.c
+@@ -35,16 +35,20 @@
+ #elif defined(__arm__) || defined(__aarch64__)
+ #ifdef HAS_AUXV
+ #include <sys/auxv.h>
++#ifdef __linux__
+ #include <asm/hwcap.h>
+ #endif
++#endif
+ #endif /* __arm__ */
+ #ifdef __linux__
+ #include <fcntl.h>
+ #include <sys/stat.h>
+ #include <linux/sysctl.h>
+ #endif
+-#if defined(__FreeBSD__) || defined(__OpenBSD__)
++#if defined(__FreeBSD__)
+ #include <sys/user.h>
++#endif
++#if defined(__FreeBSD__) || defined(__OpenBSD__)
+ #include <sys/sysctl.h>
+ #endif
+ #include <dirent.h>
+@@ -135,7 +139,8 @@ int cpuid_simdsize(int viewmax)
+ 	if (edx & (1 << 26)) // SSE2
+ 		return 4;
+ 
+-#elif (defined(__arm__) || defined(__aarch64__)) && defined(HAS_AUXV)
++#elif (defined(__arm__) || defined(__aarch64__)) && defined(__linux__) && \
++    defined(HAS_AUXV)
+ 	long hwcaps = getauxval(AT_HWCAP);
+ 
+ 	if (hwcaps & (1 << 12)) // NEON
+@@ -144,6 +149,19 @@ int cpuid_simdsize(int viewmax)
+ 	if (hwcaps & (1 << 1)) // ASIMD
+ 		return 4;
+ #endif
++#elif (defined(__arm__) || defined(__aarch64__)) && \
++    (defined(__FreeBSD__) || defined(__OpenBSD__)) && defined(HAS_AUXV)
++	long hwcaps = 0;
++	elf_aux_info(AT_HWCAP, &hwcaps, sizeof(hwcaps));
++
++#if defined(__arm__)
++	if (hwcaps & HWCAP_NEON) // NEON
++		return 4;
++#endif
++#if defined(__aarch64__)
++	if (hwcaps & HWCAP_ASIMD) // ASIMD
++		return 4;
++#endif
+ #elif defined(__aarch64__) && !defined(HAS_AUXV)
+ 	return 4; // ASIMD is required on AARCH64
+ #endif
+@@ -244,7 +262,8 @@ static char * cpuid_featureflags(void)
+ 		if (ebx & (1 << 16)) // AVX512F
+ 			sprintcat((char *) &flags, "AVX512F", sizeof(flags));
+ 	}
+-#elif (defined(__arm__) || defined(__aarch64__)) && defined(HAS_AUXV)
++#elif (defined(__arm__) || defined(__aarch64__)) && defined(__linux__) && \
++    defined(HAS_AUXV)
+ 	long hwcaps = getauxval(AT_HWCAP);
+ 
+ #if defined(__aarch64__)
+@@ -275,6 +294,35 @@ static char * cpuid_featureflags(void)
+ 	if ((hwcaps & (1 << 17)) || (hwcaps & (1 << 18)))
+ 		sprintcat((char *) &flags, "IDIV", sizeof(flags));
+ #endif
++#elif (defined(__arm__) || defined(__aarch64__)) && \
++    (defined(__FreeBSD__) || defined(__OpenBSD__)) && defined(HAS_AUXV)
++	long hwcaps = 0;
++	elf_aux_info(AT_HWCAP, &hwcaps, sizeof(hwcaps));
++
++#if defined(__aarch64__)
++	if (hwcaps & HWCAP_ASIMD) sprintcat((char *) &flags, "ASIMD", sizeof(flags));
++#else
++	if (hwcaps & HWCAP_NEON) sprintcat((char *) &flags, "NEON", sizeof(flags));
++
++	if (hwcaps & HWCAP_HALF) sprintcat((char *) &flags, "HALF", sizeof(flags));
++
++	if (hwcaps & HWCAP_THUMB) sprintcat((char *) &flags, "THUMB", sizeof(flags));
++
++	if (hwcaps & HWCAP_THUMBEE)
++		sprintcat((char *) &flags, "THUMBEE", sizeof(flags));
++
++	if (hwcaps & HWCAP_VFP) sprintcat((char *) &flags, "VFP", sizeof(flags));
++
++	if ((hwcaps & HWCAP_VFPv3) || (hwcaps & HWCAP_VFPv3D16))
++		sprintcat((char *) &flags, "VFPv3", sizeof(flags));
++
++	if (hwcaps & HWCAP_VFPv4) sprintcat((char *) &flags, "VFPv4", sizeof(flags));
++
++	if (hwcaps & HWCAP_TLS) sprintcat((char *) &flags, "TLS", sizeof(flags));
++
++	if ((hwcaps & HWCAP_IDIVA) || (hwcaps & HWCAP_IDIVT))
++		sprintcat((char *) &flags, "IDIV", sizeof(flags));
++#endif
+ #elif defined(__aarch64__) && !defined(HAS_AUXV)
+ 	sprintcat((char *) &flags, "ASIMD", sizeof(flags));
+ #endif
+@@ -424,7 +472,7 @@ static char * cpuid_modelinfo(void)
+ 	char *line = NULL, *token = NULL;
+ 	size_t linecap = 0;
+ 	ssize_t linelen;
+-#elif __FreeBSD__ /* ARM support for FreeBSD */
++#elif defined(__FreeBSD__) || defined(__OpenBSD__) /* ARM support for FreeBSD / OpenBSD */
+ 	int mib[] = {CTL_HW, HW_MODEL};
+ 	char modelbuf[64];
+ 	size_t len = sizeof(modelbuf);
+@@ -485,7 +533,7 @@ static char * cpuid_modelinfo(void)
+ 	fclose(cfd);
+ 
+ 	if (pm == NULL) return NULL;
+-#elif __FreeBSD__
++#elif defined(__FreeBSD__) || defined(__OpenBSD__)
+ 	if (sysctl(mib, 2, modelbuf, &len, NULL, 0))
+ 		snprintf(modelbuf, sizeof(modelbuf), "Unknown");
+ 
Index: patches/patch-lib_libac_cpu_trampoline_arm_c
===================================================================
RCS file: patches/patch-lib_libac_cpu_trampoline_arm_c
diff -N patches/patch-lib_libac_cpu_trampoline_arm_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-lib_libac_cpu_trampoline_arm_c	19 Jul 2024 11:21:16 -0000
@@ -0,0 +1,27 @@
+Index: lib/libac/cpu/trampoline_arm.c
+--- lib/libac/cpu/trampoline_arm.c.orig
++++ lib/libac/cpu/trampoline_arm.c
+@@ -23,8 +23,10 @@
+ #if defined(__arm__) || defined(__aarch64__)
+ #ifdef HAS_AUXV
+ #include <sys/auxv.h>
++#ifdef __linux__
+ #include <asm/hwcap.h>
+ #endif
++#endif
+ #else
+ #error "The wrong CPU architecture file has been included."
+ #endif
+@@ -39,7 +41,12 @@ int simd_get_supported_features(void)
+ {
+ 	int result = 0;
+ #ifdef HAS_AUXV
++#ifdef __linux__
+ 	long hwcaps = getauxval(AT_HWCAP);
++#elif defined(__FreeBSD__) || defined(__OpenBSD__)
++	long hwcaps = 0;
++	elf_aux_info(AT_HWCAP, &hwcaps, sizeof(hwcaps));
++#endif
+ 
+ #if defined(HWCAP_ASIMD)
+ 	if (hwcaps & HWCAP_ASIMD)
Index: patches/patch-lib_libac_cpu_trampoline_ppc_c
===================================================================
RCS file: patches/patch-lib_libac_cpu_trampoline_ppc_c
diff -N patches/patch-lib_libac_cpu_trampoline_ppc_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-lib_libac_cpu_trampoline_ppc_c	19 Jul 2024 11:21:16 -0000
@@ -0,0 +1,27 @@
+Index: lib/libac/cpu/trampoline_ppc.c
+--- lib/libac/cpu/trampoline_ppc.c.orig
++++ lib/libac/cpu/trampoline_ppc.c
+@@ -23,8 +23,10 @@
+ #if defined(__ppc__) || defined(__PPC__)
+ #ifdef HAS_AUXV
+ #include <sys/auxv.h>
++#ifdef __linux__
+ #include <bits/hwcap.h>
+ #endif
++#endif
+ #else
+ #error "The wrong CPU architecture file has been included."
+ #endif
+@@ -39,7 +41,12 @@ int simd_get_supported_features(void)
+ {
+ 	int result = 0;
+ #ifdef HAS_AUXV
++#ifdef __linux__
+ 	long hwcaps = getauxval(AT_HWCAP2);
++#elif defined(__FreeBSD__) || defined(__OpenBSD__)
++	long hwcaps = 0;
++	elf_aux_info(AT_HWCAP2, &hwcaps, sizeof(hwcaps));
++#endif
+ 
+ #if defined(PPC_FEATURE2_ARCH_2_07)
+ 	if (hwcaps & PPC_FEATURE2_ARCH_2_07)