alsa-oss: fix stdioemu.c for uclibc
authorHenning Heinold <heinold@inf.fu-berlin.de>
Sun, 20 Jul 2008 20:56:57 +0000 (20:56 +0000)
committerHenning Heinold <heinold@inf.fu-berlin.de>
Sun, 20 Jul 2008 20:56:57 +0000 (20:56 +0000)
*on none glibc systems libio.h is not there and FILE._fileno is not defined
*on uclibc _fileno is _filedes
*provide autoconf magic which check for structure
*bump PR

packages/alsa/alsa-oss_1.0.15.bb
packages/alsa/files/libio.patch [new file with mode: 0644]

index b11947e..3cfe886 100644 (file)
@@ -2,8 +2,11 @@ DESCRIPTION = "Alsa OSS Compatibility Package"
 SECTION = "libs/multimedia"
 LICENSE = "GPL"
 DEPENDS = "alsa-lib"
+PR = "1"
 
-SRC_URI = "ftp://ftp.alsa-project.org/pub/oss-lib/alsa-oss-${PV}.tar.bz2"
+SRC_URI = "ftp://ftp.alsa-project.org/pub/oss-lib/alsa-oss-${PV}.tar.bz2 \
+          file://libio.patch;patch=1 \
+         "
 
 inherit autotools 
 
diff --git a/packages/alsa/files/libio.patch b/packages/alsa/files/libio.patch
new file mode 100644 (file)
index 0000000..83345a9
--- /dev/null
@@ -0,0 +1,43 @@
+Index: alsa-oss-1.0.15/alsa/stdioemu.c
+===================================================================
+--- alsa-oss-1.0.15.orig/alsa/stdioemu.c       2007-10-15 10:50:40.000000000 +0200
++++ alsa-oss-1.0.15/alsa/stdioemu.c    2008-07-20 22:29:46.767474560 +0200
+@@ -37,7 +37,9 @@
+ #endif
+ #include <stdio.h>
++#ifdef HAVE_LIBIO_H
+ #include <libio.h>
++#endif
+ struct fd_cookie {
+       int fd;
+@@ -99,7 +101,11 @@
+       if (open_mode && fdc->fd > 0) {
+               result = fopencookie (fdc,"w", fns);
++#ifdef HAVE_FILENO
+               result->_fileno = fdc->fd;              /* ugly patchy slimy kludgy hack */
++else
++              result->_filedes = fdc->fd;
++#endif
+       }
+       return result;
+ }
+Index: alsa-oss-1.0.15/configure.in
+===================================================================
+--- alsa-oss-1.0.15.orig/configure.in  2007-10-15 10:50:40.000000000 +0200
++++ alsa-oss-1.0.15/configure.in       2008-07-20 22:49:45.455837502 +0200
+@@ -33,6 +33,12 @@
+   LIBS="$OLD_LIBS"
+ fi
++AC_CHECK_HEADERS_ONCE([libio.h])
++
++AC_CHECK_MEMBER([struct _IO_FILE._fileno],
++              [AC_DEFINE([HAVE_FILENO], [1],[Define if _fileno exists.])],
++              [],[])
++
+ AC_OUTPUT(Makefile alsa/Makefile alsa/aoss alsa/aoss.old \
+         oss-redir/Makefile test/Makefile \
+           alsa/testaoss test/testaoss)