patches/mplayer-11-cpudetect.diff
author jurikm
Mon, 31 May 2010 19:15:22 +0000
changeset 2725 344efadac0aa
parent 1732 7e8c8d63d96d
child 3137 13df9e729f6b
permissions -rw-r--r--
encumbered/SFEmplayer.spec: update to rc3, cleanup in patches --The line, and those below, will be ignored-- M ChangeLog M encumbered/SFEmplayer.spec D patches/mplayer-05-configure.diff D patches/mplayer-19-cddb-stream.diff M patches/mplayer-01-cddb.diff D patches/mplayer-02-makefile-libfame-dep.diff M patches/mplayer-11-cpudetect.diff D patches/mplayer-18-demux-mov.diff D patches/mplayer-16-demux-real.diff D patches/mplayer-10-configure.diff D patches/mplayer-03-asmrules_20061231.diff M patches/mplayer-12-realplayer.diff D patches/mplayer-20-url-fix.diff D patches/mplayer-17-demux-audio.diff D patches/mplayer-21-realrtsp.diff D patches/mplayer-15-demux_vqf.diff

--- MPlayer-1.0rc3/cpudetect.c	Fri Mar 27 19:48:47 2009
+++ MPlayer-1.0rc3-patch/cpudetect.c	Mon May 31 20:26:44 2010
@@ -30,6 +30,8 @@
 #include <os2.h>
 #elif defined(__AMIGAOS4__)
 #include <proto/exec.h>
+#elif __sun
+#include <sys/utsname.h>
 #endif
 
 /* Thanks to the FreeBSD project for some of this cpuid code, and 
@@ -183,7 +185,7 @@
 #if defined(__linux__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) \
   || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) \
   || defined(__APPLE__) || defined(__CYGWIN__) || defined(__MINGW32__) \
-  || defined(__OS2__)
+  || defined(__OS2__) || defined(__sun)
 		if (caps->hasSSE)
 			check_os_katmai_support();
 		if (!caps->hasSSE)
@@ -320,6 +322,20 @@
 #if ARCH_X86_64
    gCpuCaps.hasSSE=1;
    gCpuCaps.hasSSE2=1;
+#elif defined(__sun)
+   struct utsname solname;
+   long major, minor = 0;
+   char *radix;
+
+   if (uname(&solname) > 0) {
+      major = strtol(solname.release, &radix, 10);
+      if (*radix != '\0')
+         minor = strtol(++radix, NULL, 10);
+      if (!(major >= 5 && minor >= 9))
+         gCpuCaps.hasSSE=0;
+   } else {
+      gCpuCaps.hasSSE=0;
+   }
 #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) || defined(__APPLE__)
    int has_sse=0, ret;
    size_t len=sizeof(has_sse);