git: ece0c9bb0690 - main - devel/sdl20: correctly detect altivec
Piotr Kubaj
pkubaj at FreeBSD.org
Tue Sep 21 21:50:03 UTC 2021
The branch main has been updated by pkubaj:
URL: https://cgit.FreeBSD.org/ports/commit/?id=ece0c9bb0690863596198c80180dcc702a066ad2
commit ece0c9bb0690863596198c80180dcc702a066ad2
Author: Piotr Kubaj <pkubaj at FreeBSD.org>
AuthorDate: 2021-09-21 21:47:46 +0000
Commit: Piotr Kubaj <pkubaj at FreeBSD.org>
CommitDate: 2021-09-21 21:47:46 +0000
devel/sdl20: correctly detect altivec
The previous patch was not correct. Already upstreamed.
---
devel/sdl20/Makefile | 2 +-
devel/sdl20/files/patch-src_cpuinfo_SDL__cpuinfo.c | 47 +++++++++++++---------
2 files changed, 29 insertions(+), 20 deletions(-)
diff --git a/devel/sdl20/Makefile b/devel/sdl20/Makefile
index 49bf21ccedf0..057f1ca9480b 100644
--- a/devel/sdl20/Makefile
+++ b/devel/sdl20/Makefile
@@ -1,6 +1,6 @@
PORTNAME= sdl2
PORTVERSION= 2.0.12
-PORTREVISION= 6
+PORTREVISION= 7
CATEGORIES= devel
MASTER_SITES= https://www.libsdl.org/release/
DISTNAME= SDL2-${PORTVERSION}
diff --git a/devel/sdl20/files/patch-src_cpuinfo_SDL__cpuinfo.c b/devel/sdl20/files/patch-src_cpuinfo_SDL__cpuinfo.c
index 7bb8d70d47de..d46b4673236f 100644
--- a/devel/sdl20/files/patch-src_cpuinfo_SDL__cpuinfo.c
+++ b/devel/sdl20/files/patch-src_cpuinfo_SDL__cpuinfo.c
@@ -1,24 +1,33 @@
--- src/cpuinfo/SDL_cpuinfo.c.orig 2020-03-11 01:36:18 UTC
+++ src/cpuinfo/SDL_cpuinfo.c
-@@ -49,7 +49,7 @@
- #endif
- #if defined(__MACOSX__) && (defined(__ppc__) || defined(__ppc64__))
- #include <sys/sysctl.h> /* For AltiVec check */
--#elif defined(__OpenBSD__) && defined(__powerpc__)
-+#elif (defined(__OpenBSD__) || defined(__FreeBSD__)) && defined(__powerpc__)
+@@ -53,6 +53,9 @@
#include <sys/param.h>
#include <sys/sysctl.h> /* For AltiVec check */
#include <machine/cpu.h>
-@@ -314,9 +314,11 @@ CPU_haveAltiVec(void)
- {
- volatile int altivec = 0;
- #ifndef SDL_CPUINFO_DISABLED
--#if (defined(__MACOSX__) && (defined(__ppc__) || defined(__ppc64__))) || (defined(__OpenBSD__) && defined(__powerpc__))
-+#if (defined(__MACOSX__) && (defined(__ppc__) || defined(__ppc64__))) || (defined(__OpenBSD__) && defined(__powerpc__)) || (defined(__FreeBSD__) && defined(__powerpc__))
- #ifdef __OpenBSD__
- int selectors[2] = { CTL_MACHDEP, CPU_ALTIVEC };
-+#elif __FreeBSD__
-+ int selectors[2] = { CTL_HW, PPC_FEATURE_HAS_ALTIVEC };
- #else
- int selectors[2] = { CTL_HW, HW_VECTORUNIT };
- #endif
++#elif defined(__FreeBSD__) && defined(__powerpc__)
++#include <machine/cpu.h>
++#include <sys/auxv.h>
+ #elif SDL_ALTIVEC_BLITTERS && HAVE_SETJMP
+ #include <signal.h>
+ #include <setjmp.h>
+@@ -110,7 +113,7 @@
+ #define CPU_HAS_AVX512F (1 << 12)
+ #define CPU_HAS_ARM_SIMD (1 << 13)
+
+-#if SDL_ALTIVEC_BLITTERS && HAVE_SETJMP && !__MACOSX__ && !__OpenBSD__
++#if SDL_ALTIVEC_BLITTERS && HAVE_SETJMP && !__MACOSX__ && !__OpenBSD__ && !__FreeBSD__
+ /* This is the brute force way of detecting instruction sets...
+ the idea is borrowed from the libmpeg2 library - thanks!
+ */
+@@ -325,6 +328,11 @@ CPU_haveAltiVec(void)
+ int error = sysctl(selectors, 2, &hasVectorUnit, &length, NULL, 0);
+ if (0 == error)
+ altivec = (hasVectorUnit != 0);
++#elif defined(__FreeBSD__) && defined(__powerpc__)
++ unsigned long cpufeatures;
++ elf_aux_info(AT_HWCAP, &cpufeatures, sizeof(cpufeatures));
++ altivec = cpufeatures & PPC_FEATURE_HAS_ALTIVEC;
++ return altivec;
+ #elif SDL_ALTIVEC_BLITTERS && HAVE_SETJMP
+ void (*handler) (int sig);
+ handler = signal(SIGILL, illegal_instruction);
More information about the dev-commits-ports-all
mailing list