From 470c4a283fa6ff65795ce3755e90dc4d06cbc9ae Mon Sep 17 00:00:00 2001 From: Adam Samalik Date: Wed, 21 Jun 2023 13:02:58 +0200 Subject: [PATCH] import sources --- .gitignore | 4 +- libvisual-0.2.0-ifdef.patch | 11 +++ ...isual-0.5.0-better-altivec-detection.patch | 70 +++++++++++++++++++ 3 files changed, 83 insertions(+), 2 deletions(-) create mode 100644 libvisual-0.2.0-ifdef.patch create mode 100644 libvisual-0.5.0-better-altivec-detection.patch diff --git a/.gitignore b/.gitignore index 7f4094f..d5182a9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -SOURCES/libvisual-0.4.0.tar.gz -/libvisual-0.4.0.tar.gz +libvisual-0.4.0.tar.gz +/libvisual-0.5.0-7e4bc9a.tar.gz diff --git a/libvisual-0.2.0-ifdef.patch b/libvisual-0.2.0-ifdef.patch new file mode 100644 index 0000000..269b7fa --- /dev/null +++ b/libvisual-0.2.0-ifdef.patch @@ -0,0 +1,11 @@ +--- libvisual-0.2.0/libvisual/lv_cpu.c.orig 2005-02-14 00:00:13.242204989 +0000 ++++ libvisual-0.2.0/libvisual/lv_cpu.c 2005-02-14 00:00:36.535144982 +0000 +@@ -423,7 +423,7 @@ void visual_cpu_initialize () + #endif + #endif /* VISUAL_ARCH_X86 */ + +-#if VISUAL_ARCH_POWERPC ++#if defined(VISUAL_ARCH_POWERPC) + check_os_altivec_support (); + #endif /* VISUAL_ARCH_POWERPC */ + diff --git a/libvisual-0.5.0-better-altivec-detection.patch b/libvisual-0.5.0-better-altivec-detection.patch new file mode 100644 index 0000000..f7da60a --- /dev/null +++ b/libvisual-0.5.0-better-altivec-detection.patch @@ -0,0 +1,70 @@ +diff -up libvisual/libvisual/lv_cpu.c.altivec-detection libvisual/libvisual/lv_cpu.c +--- libvisual/libvisual/lv_cpu.c.altivec-detection 2013-08-23 09:34:16.000000000 -0400 ++++ libvisual/libvisual/lv_cpu.c 2013-12-03 14:50:24.922718258 -0500 +@@ -59,8 +59,19 @@ + #endif + + #if defined(VISUAL_OS_LINUX) ++#if defined(VISUAL_ARCH_POWERPC) ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#else /* VISUAL_ARCH_POWERPC */ + #include + #endif ++#endif + + #if defined(VISUAL_OS_WIN32) + #include +@@ -170,6 +181,46 @@ static void check_os_altivec_support (vo + if (err == 0) + if (has_vu != 0) + 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) ++ cpu_caps.hasAltiVec = 1; + #else /* !VISUAL_OS_DARWIN */ + /* no Darwin, do it the brute-force way */ + /* this is borrowed from the libmpeg2 library */