summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /media-libs/libvisual/files/libvisual-0.4.0-better-altivec-detection.patch
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'media-libs/libvisual/files/libvisual-0.4.0-better-altivec-detection.patch')
-rw-r--r--media-libs/libvisual/files/libvisual-0.4.0-better-altivec-detection.patch71
1 files changed, 71 insertions, 0 deletions
diff --git a/media-libs/libvisual/files/libvisual-0.4.0-better-altivec-detection.patch b/media-libs/libvisual/files/libvisual-0.4.0-better-altivec-detection.patch
new file mode 100644
index 000000000000..19aa579aa110
--- /dev/null
+++ b/media-libs/libvisual/files/libvisual-0.4.0-better-altivec-detection.patch
@@ -0,0 +1,71 @@
+http://pkgs.fedoraproject.org/gitweb/?p=libvisual.git;a=tree
+
+--- libvisual/lv_cpu.c
++++ libvisual/lv_cpu.c
+@@ -50,8 +50,19 @@
+ #endif
+
+ #if defined(VISUAL_OS_LINUX)
++#if defined(VISUAL_ARCH_POWERPC)
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <fcntl.h>
++#include <unistd.h>
++#include <stdio.h>
++
++#include <linux/auxvec.h>
++#include <asm/cputable.h>
++#else /* VISUAL_ARCH_POWERPC */
+ #include <signal.h>
+ #endif
++#endif
+
+ #if defined(VISUAL_OS_WIN32)
+ #include <windows.h>
+@@ -154,6 +165,46 @@ static void check_os_altivec_support( vo
+ if (err == 0)
+ if (has_vu != 0)
+ __lv_cpu_caps.hasAltiVec = 1;
++#elif defined (VISUAL_OS_LINUX)
++ static int available = -1;
++ int new_avail = 0;
++ char fname[64];
++ unsigned long buf[64];
++ ssize_t count;
++ pid_t pid;
++ int fd, i;
++
++ if (available != -1)
++ return;
++
++ pid = getpid();
++ snprintf(fname, sizeof(fname)-1, "/proc/%d/auxv", pid);
++
++ fd = open(fname, O_RDONLY);
++ if (fd < 0)
++ goto out;
++more:
++ count = read(fd, buf, sizeof(buf));
++ if (count < 0)
++ goto out_close;
++
++ for (i=0; i < (count / sizeof(unsigned long)); i += 2) {
++ if (buf[i] == AT_HWCAP) {
++ new_avail = !!(buf[i+1] & PPC_FEATURE_HAS_ALTIVEC);
++ goto out_close;
++ } else if (buf[i] == AT_NULL) {
++ goto out_close;
++ }
++ }
++
++ if (count == sizeof(buf))
++ goto more;
++out_close:
++ close(fd);
++out:
++ available = new_avail;
++ if (available)
++ __lv_cpu_caps.hasAltiVec = 1;
+ #else /* !VISUAL_OS_DARWIN */
+ /* no Darwin, do it the brute-force way */
+ /* this is borrowed from the libmpeg2 library */