aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--audio/oss/gcc-5.patch52
-rw-r--r--audio/oss/oss-v4.2-linux-4.0.patch41
-rw-r--r--audio/oss/oss.SlackBuild12
-rw-r--r--audio/oss/oss.info6
4 files changed, 106 insertions, 5 deletions
diff --git a/audio/oss/gcc-5.patch b/audio/oss/gcc-5.patch
new file mode 100644
index 0000000000000..5b303b4975960
--- /dev/null
+++ b/audio/oss/gcc-5.patch
@@ -0,0 +1,52 @@
+--- kernel/OS/Linux/os_linux.h 2015-01-28 08:07:23.000000000 +0000
++++ kernel/OS/Linux/os_linux.h 2015-06-01 23:12:46.044784820 +0100
+@@ -119,7 +119,7 @@
+ /* System wall timer access */
+ #define GET_JIFFIES() oss_get_jiffies()
+
+-extern inline unsigned int
++__attribute__ ((gnu_inline)) extern inline unsigned int
+ __inb (unsigned short port)
+ {
+ unsigned int _v;
+@@ -127,7 +127,7 @@
+ "0" (0));
+ return _v;
+ }
+-extern inline unsigned int
++__attribute__ ((gnu_inline)) extern inline unsigned int
+ __inw (unsigned short port)
+ {
+ unsigned int _v;
+@@ -135,7 +135,7 @@
+ "0" (0));
+ return _v;
+ }
+-extern inline unsigned int
++__attribute__ ((gnu_inline)) extern inline unsigned int
+ __inl (unsigned short port)
+ {
+ unsigned int _v;
+@@ -143,19 +143,19 @@
+ return _v;
+ }
+
+-extern inline void
++__attribute__ ((gnu_inline)) extern inline unsigned int
+ __outb (unsigned char value, unsigned short port)
+ {
+ __asm__ __volatile__ ("out" "b" " %" "b" "0,%" "w" "1"::"a" (value),
+ "d" (port));
+ }
+-extern inline void
++__attribute__ ((gnu_inline)) extern inline unsigned int
+ __outw (unsigned short value, unsigned short port)
+ {
+ __asm__ __volatile__ ("out" "w" " %" "w" "0,%" "w" "1"::"a" (value),
+ "d" (port));
+ }
+-extern inline void
++__attribute__ ((gnu_inline)) extern inline unsigned int
+ __outl (unsigned int value, unsigned short port)
+ {
+ __asm__ __volatile__ ("out" "l" " %" "0,%" "w" "1"::"a" (value),
diff --git a/audio/oss/oss-v4.2-linux-4.0.patch b/audio/oss/oss-v4.2-linux-4.0.patch
new file mode 100644
index 0000000000000..7bc4ea36d7605
--- /dev/null
+++ b/audio/oss/oss-v4.2-linux-4.0.patch
@@ -0,0 +1,41 @@
+diff -durN oss-v4.2-build2011-src-gpl/setup/Linux/oss/build/osscore.c oss-v4.2-build2011-src-gpl-patched/setup/Linux/oss/build/osscore.c
+--- oss-v4.2-build2011-src-gpl/setup/Linux/oss/build/osscore.c 2014-09-04 00:15:31.000000000 +0200
++++ oss-v4.2-build2011-src-gpl-patched/setup/Linux/oss/build/osscore.c 2015-04-25 23:16:19.502116503 +0200
+@@ -1950,8 +1950,13 @@
+ }
+ else
+ {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4,0,0)
+ flags[1] = read_cr4 ();
+ write_cr4 (flags[1] | 0x600); /* Set OSFXSR & OSXMMEXCEPT */
++#else
++ flags[1] = __read_cr4 ();
++ __write_cr4 (flags[1] | 0x600); /* Set OSFXSR & OSXMMEXCEPT */
++#endif
+ FX_SAVE (envbuf);
+ asm ("fninit");
+ asm ("fwait");
+@@ -1971,7 +1976,11 @@
+ else
+ {
+ FX_RESTORE (envbuf);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4,0,0)
+ write_cr4 (flags[1]); /* Restore cr4 */
++#else
++ __write_cr4 (flags[1]); /* Restore cr4 */
++#endif
+ }
+ write_cr0 (flags[0]); /* Restore cr0 */
+ }
+diff -durN oss-v4.2-build2011-src-gpl/setup/setupdir.sh oss-v4.2-build2011-src-gpl-patched/setup/setupdir.sh
+--- oss-v4.2-build2011-src-gpl/setup/setupdir.sh 2015-04-25 23:03:34.173985609 +0200
++++ oss-v4.2-build2011-src-gpl-patched/setup/setupdir.sh 2015-04-25 23:03:14.267351737 +0200
+@@ -36,7 +36,7 @@
+ # Use Linux24 as the OS name for Linux 2.4.x
+ if test "$OS " = "Linux "
+ then
+- if test "`uname -r|sed 's/2.//'|sed 's/\..*//'` " = "4 "
++ if test "`uname -r | cut -d '.' -f 1-2` " = "2.4 "
+ then
+ OS=Linux24
+ fi
diff --git a/audio/oss/oss.SlackBuild b/audio/oss/oss.SlackBuild
index d4366de93ae6e..4994cbde39b23 100644
--- a/audio/oss/oss.SlackBuild
+++ b/audio/oss/oss.SlackBuild
@@ -5,7 +5,7 @@
# Written by Dugan Chen (thedoogster [at] gmail [dot] com).
PRGNAM=oss
-VERSION=${VERSION:-4.2.2010}
+VERSION=${VERSION:-4.2.2011}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -46,7 +46,7 @@ set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $PRGNAM-$SRCVERSION
+rm -rf oss-${SRCVERSION}
tar xvf $CWD/oss-${SRCVERSION}.tar.bz2
cd oss-${SRCVERSION}
chown -R root:root .
@@ -60,6 +60,14 @@ if [ $ARCH = "x86_64" ]; then
sed -i 's,OSSLIBDIR=\"/usr/lib/oss\",OSSLIBDIR=\"/usr/lib64/oss\",g' configure
fi
+# Patches from OSS Forums
+
+# Linux 4.0 and above fix by oss117
+patch -p1 < $CWD/oss-v4.2-linux-4.0.patch
+
+# GCC 5 fix by alexdw
+patch -p0 < $CWD/gcc-5.patch
+
mkdir build && cd build
../configure
CFLAGS="$SLKCFLAGS" make build
diff --git a/audio/oss/oss.info b/audio/oss/oss.info
index d065998819e72..1c7637af66d6a 100644
--- a/audio/oss/oss.info
+++ b/audio/oss/oss.info
@@ -1,8 +1,8 @@
PRGNAM="oss"
-VERSION="4.2.2010"
+VERSION="4.2.2011"
HOMEPAGE="http://www.opensound.com"
-DOWNLOAD="http://www.4front-tech.com/developer/sources/stable/gpl/oss-v4.2-build2010-src-gpl.tar.bz2"
-MD5SUM="8a3e9c2c5403ceb83bcba94a8732c403"
+DOWNLOAD="http://www.4front-tech.com/developer/sources/stable/gpl/oss-v4.2-build2011-src-gpl.tar.bz2"
+MD5SUM="68f80d569739a10281a8284dded12acc"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""