summaryrefslogtreecommitdiff
path: root/graphics/mplayer-share
diff options
context:
space:
mode:
authorskrll <skrll>2002-10-07 11:36:15 +0000
committerskrll <skrll>2002-10-07 11:36:15 +0000
commit343cec010854dc463ecdbd87cdfdf8f547aea4d1 (patch)
tree70fda6bdca362ad939dff0c43eb33f35c0617948 /graphics/mplayer-share
parent31ea7e7118027392971e012c569a9ded880aa4fc (diff)
downloadpkgsrc-343cec010854dc463ecdbd87cdfdf8f547aea4d1.tar.gz
Enable the SSE detection and checking stuff for NetBSD
Bump PKGREVISION.
Diffstat (limited to 'graphics/mplayer-share')
-rw-r--r--graphics/mplayer-share/Makefile.common4
-rw-r--r--graphics/mplayer-share/distinfo3
-rw-r--r--graphics/mplayer-share/patches/patch-ad78
3 files changed, 82 insertions, 3 deletions
diff --git a/graphics/mplayer-share/Makefile.common b/graphics/mplayer-share/Makefile.common
index 361ac4cb3fc..f998c447f19 100644
--- a/graphics/mplayer-share/Makefile.common
+++ b/graphics/mplayer-share/Makefile.common
@@ -1,7 +1,7 @@
-# $NetBSD: Makefile.common,v 1.12 2002/10/01 12:51:47 dillo Exp $
+# $NetBSD: Makefile.common,v 1.13 2002/10/07 11:36:17 skrll Exp $
MPLAYER_DIST_VERSION= 0.90pre8
-PKGREVISION= 1
+PKGREVISION= 2
# There is no need to change anything below here.
diff --git a/graphics/mplayer-share/distinfo b/graphics/mplayer-share/distinfo
index 4f620247684..ad8e0a4952f 100644
--- a/graphics/mplayer-share/distinfo
+++ b/graphics/mplayer-share/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.8 2002/10/01 12:51:47 dillo Exp $
+$NetBSD: distinfo,v 1.9 2002/10/07 11:36:18 skrll Exp $
SHA1 (mplayer/MPlayer-0.90pre8.tar.bz2) = f61ec2af22f65a402bf8bfe93bd248298acca30f
Size (mplayer/MPlayer-0.90pre8.tar.bz2) = 2692566 bytes
@@ -11,3 +11,4 @@ Size (mplayer/koi8r-font.tar.bz2) = 68817 bytes
SHA1 (patch-aa) = abc450482c760e70d9998f33afb005d6749de2b2
SHA1 (patch-ab) = e36a37c5d011319e0b02f30487ecf489f067f13d
SHA1 (patch-ac) = 2541883d43c4eb07eafb4f2f62b93a3bcbc4aa50
+SHA1 (patch-ad) = 802ee4f99410482b82885e66ba18f547e4f648a0
diff --git a/graphics/mplayer-share/patches/patch-ad b/graphics/mplayer-share/patches/patch-ad
new file mode 100644
index 00000000000..a7fe489d7af
--- /dev/null
+++ b/graphics/mplayer-share/patches/patch-ad
@@ -0,0 +1,78 @@
+$NetBSD: patch-ad,v 1.1 2002/10/07 11:36:18 skrll Exp $
+
+--- cpudetect.c.orig Mon May 20 02:00:51 2002
++++ cpudetect.c
+@@ -13,6 +13,11 @@ CpuCaps gCpuCaps;
+
+ #include <stdio.h>
+
++#ifdef __NetBSD__
++#include <sys/param.h>
++#include <setjmp.h>
++#endif
++
+ #ifdef __FreeBSD__
+ #include <sys/types.h>
+ #include <sys/sysctl.h>
+@@ -146,7 +151,7 @@ void GetCpuCaps( CpuCaps *caps)
+ #endif
+
+ /* FIXME: Does SSE2 need more OS support, too? */
+-#if defined(__linux__) || defined(__FreeBSD__)
++#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__)
+ if (caps->hasSSE)
+ check_os_katmai_support();
+ if (!caps->hasSSE)
+@@ -236,6 +241,15 @@ char *GetCpuFriendlyName(unsigned int re
+ #undef CPUID_STEPPING
+
+
++#ifdef __NetBSD__
++jmp_buf sseCheckEnv;
++
++void sseCheckHandler(int i)
++{
++ longjmp(sseCheckEnv, 1);
++}
++#endif
++
+ #if defined(__linux__) && defined(_POSIX_SOURCE) && defined(X86_FXSR_MAGIC)
+ static void sigill_handler_sse( int signal, struct sigcontext sc )
+ {
+@@ -292,6 +306,36 @@ static void check_os_katmai_support( voi
+ if (ret || !has_sse)
+ gCpuCaps.hasSSE=0;
+
++#elif defined(__NetBSD__)
++#if __NetBSD_Version__ >= 105260000
++ if ( gCpuCaps.hasSSE ) {
++ void (*oldHandler)(int);
++
++ mp_msg(MSGT_CPUDETECT,MSGL_V, "Testing OS support for SSE... " );
++
++ oldHandler = signal(SIGILL, sseCheckHandler);
++ if (setjmp(sseCheckEnv)) {
++ gCpuCaps.hasSSE = 0;
++ } else {
++ __asm__ __volatile__ (
++ "subl $0x10, %esp \n"
++ "movups %xmm0, (%esp) \n"
++ "emms \n"
++ "addl $0x10, %esp \n"
++ );
++ }
++ signal(SIGILL, oldHandler);
++
++ if ( gCpuCaps.hasSSE ) {
++ mp_msg(MSGT_CPUDETECT,MSGL_V, "no!\n" );
++ } else {
++ mp_msg(MSGT_CPUDETECT,MSGL_V, "yes!\n" );
++ }
++ }
++#else
++ gCpuCaps.hasSSE = 0
++ mp_msg(MSGT_CPUDETECT,MSGL_WARN, "No OS support for SSE, disabling to be safe.\n" );
++#endif
+ #elif defined(__linux__)
+ #if defined(_POSIX_SOURCE) && defined(X86_FXSR_MAGIC)
+ struct sigaction saved_sigill;