[alsa-devel] Problems with 32 bit apps on 64 bit OS using dmix and snd-ioctl32

Takashi Iwai tiwai at suse.de
Wed Sep 5 18:11:44 CEST 2007


At Wed, 05 Sep 2007 16:36:10 +0100,
James Pearson wrote:
> 
> Takashi Iwai wrote:
> > At Wed, 05 Sep 2007 15:38:33 +0100,
> > James Pearson wrote:
> > 
> >>Takashi Iwai wrote:
> >>
> >>>>So, what is the danger of using these 'disabled' ioctls?
> >>>>
> >>>>I can't find any reference to 'TCOC* definitions' - what are these ???
> >>>
> >>>
> >>>A typo of TIOC* or TC*.  They are defined in asm-*/ioctls.h.
> >>>
> >>>These are used for syscalls like fcntl().  Thus, it's indeed dangerous
> >>>to define these.
> >>>
> >>>Can't you build the new alsa-driver with old kernel?  Then, together
> >>>with the new alsa-lib, the problem should go away.
> >>
> >>I can't build either alsa-driver 1.0.14 or 1.0.15rc1 - they bomb out with:
> >>
> >>   CC [M]  /tmp/alsa-driver-1.0.15rc1/misc/ac97_bus.o
> >>In file included from /tmp/alsa-driver-1.0.15rc1/misc/ac97_bus.c:1:
> >>/tmp/alsa-driver-1.0.15rc1/misc/../alsa-kernel/ac97_bus.c:30: error: 
> >>syntax error before "pm_message_t"
> >>/tmp/alsa-driver-1.0.15rc1/misc/../alsa-kernel/ac97_bus.c:31: warning: 
> >>function declaration isn't a prototype
> >>/tmp/alsa-driver-1.0.15rc1/misc/../alsa-kernel/ac97_bus.c: In function 
> >>`ac97_bus_suspend':
> >>/tmp/alsa-driver-1.0.15rc1/misc/../alsa-kernel/ac97_bus.c:34: error: 
> >>`dev' undeclared (first use in this function)
> >>/tmp/alsa-driver-1.0.15rc1/misc/../alsa-kernel/ac97_bus.c:34: error: 
> >>(Each undeclared identifier is reported only once
> >>/tmp/alsa-driver-1.0.15rc1/misc/../alsa-kernel/ac97_bus.c:34: error: for 
> >>each function it appears in.)
> >>/tmp/alsa-driver-1.0.15rc1/misc/../alsa-kernel/ac97_bus.c:35: error: 
> >>`state' undeclared (first use in this function)
> >>/tmp/alsa-driver-1.0.15rc1/misc/../alsa-kernel/ac97_bus.c: In function 
> >>`ac97_bus_resume':
> >>/tmp/alsa-driver-1.0.15rc1/misc/../alsa-kernel/ac97_bus.c:45: error: too 
> >>few arguments to function
> >>make[4]: *** [/tmp/alsa-driver-1.0.15rc1/misc/ac97_bus.o] Error 1
> >>
> >>However, even if I could build 1.0.14/15rc1, I'm not sure if they would 
> >>help - as I think the important output from the configure script 
> >>(alsa-driver 1.0.13 and above) is:
> >>
> >>checking for new unlocked/compat_ioctl... no
> >>
> >>and in include/config.h:
> >>
> >>/* #undef CONFIG_SND_HAVE_NEW_IOCTL */
> >>
> >>So, as far as I can tell, means that I have to use the snd-ioctl32 
> >>module, which has the problems I originally described.
> >>
> >>Is this correct?
> > 
> > 
> > No, this is perfectly OK.  The problem isn't that you use snd-ioctl32
> > module but that the driver is still old and it doesn't accept the new
> > defined ioctls.  The later version of alsa-driver uses the newer
> > ioctls so that they don't conflict even on snd-ioctl32 module.
> > 
> > The right solution is to get the latest alsa-driver working on your
> > system.  I guess the build problem above is very specific to RedHat.
> > Unfortunately, I can't help much because I have little clue about
> > funny RedHat modifications.  The error implies, however, some
> > configure mismatch.  Maybe showing the configure output would help a
> > little bit to know what's happening there...
> 
> OK, I'll do a bit more poking about to see if I can get 1.0.15rc1 to 
> build ...
> 
> Thanks
> 
> James Pearson
> 
> Configure output:
> 
> # ./configure --with-redhat=yes

The output looks OK to me.
Does the patch (to alsa-driver tree) fix the problem?


Takashi

diff -r adfe4179d670 misc/ac97_bus.c
--- a/misc/ac97_bus.c	Fri Aug 31 12:22:35 2007 +0200
+++ b/misc/ac97_bus.c	Wed Sep 05 18:09:42 2007 +0200
@@ -1,1 +1,3 @@
+#include <sound/driver.h>
+#include <sound/core.h>
 #include "../alsa-kernel/ac97_bus.c"


More information about the Alsa-devel mailing list