Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Sep 2021 21:50:03 GMT
From:      Piotr Kubaj <pkubaj@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: ece0c9bb0690 - main - devel/sdl20: correctly detect altivec
Message-ID:  <202109212150.18LLo3f8084286@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by pkubaj:

URL: https://cgit.FreeBSD.org/ports/commit/?id=ece0c9bb0690863596198c80180dcc702a066ad2

commit ece0c9bb0690863596198c80180dcc702a066ad2
Author:     Piotr Kubaj <pkubaj@FreeBSD.org>
AuthorDate: 2021-09-21 21:47:46 +0000
Commit:     Piotr Kubaj <pkubaj@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);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202109212150.18LLo3f8084286>