[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 17:23:52 CEST 2007


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...


Takashi


More information about the Alsa-devel mailing list