Problems with alsa mixer code - uclibc/buildroot related?

Adrian McMenamin adrian at mcmen.demon.co.uk
Sat Mar 25 10:03:18 PST 2006


I am having serious problems with compiling my driver for the sound card
on the Dreamcast now I have added some very basic mixer code.

Compilation fails reporting the unavailablity of various types declared
in asound.h - though I know this header is included (via more than one
route).

Scanning through the header reveals nothing obvious - like a stray
#ifdef that might exclude SH4 - so I just want to check through all the
angles: is there any reason to think this might be uclibc/buildroot
realted - verbose output from the build is below.

The code compiled fine until I added the *very* basic mixer code
(essentially just place holders for the mixer functions).


adrian at bossclass:~/aica/aica$ make V=1 ARCH=sh
CROSS_COMPILE=/home/adrian/buildroot/build_sh4/staging_dir/bin/sh4-linux-
make -C /home/adrian/linux-2.6.15.2 M=/home/adrian/aica/aica modules
make[1]: Entering directory `/home/adrian/linux-2.6.15.2'
mkdir -p /home/adrian/aica/aica/.tmp_versions
make -f scripts/Makefile.build obj=/home/adrian/aica/aica
  /home/adrian/buildroot/build_sh4/staging_dir/bin/sh4-linux-gcc
-Wp,-MD,/home/adrian/aica/aica/.snd_card_aica.o.d  -nostdinc
-isystem /home/adrian/buildroot/build_sh4/staging_dir/lib/gcc/sh4-linux-uclibc/3.4.2/include -D__KERNEL__ -Iinclude  -include include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -ffreestanding -O2     -fomit-frame-pointer -pipe -ml -Wa,-isa=sh4 -m4 -m4-nofpu -Wdeclaration-after-statement   -DMODULE -DKBUILD_BASENAME=snd_card_aica -DKBUILD_MODNAME=snd_card_aica -c -o /home/adrian/aica/aica/snd_card_aica.o /home/adrian/aica/aica/snd_card_aica.c/home/adrian/aica/aica/snd_card_aica.c:58: warning: function declaration isn't a prototype
/home/adrian/aica/aica/snd_card_aica.c:111: warning: function
declaration isn't a prototype
/home/adrian/aica/aica/snd_card_aica.c:132: warning: function
declaration isn't a prototype
/home/adrian/aica/aica/snd_card_aica.c:148: warning: function
declaration isn't a prototype
/home/adrian/aica/aica/snd_card_aica.c:163: warning: function
declaration isn't a prototype
/home/adrian/aica/aica/snd_card_aica.c:171: warning: function
declaration isn't a prototype
/home/adrian/aica/aica/snd_card_aica.c: In function
`stereo_buffer_transfer':
/home/adrian/aica/aica/snd_card_aica.c:221: warning: passing arg 2 of
`dma_xfer' makes integer from pointer without a cast
/home/adrian/aica/aica/snd_card_aica.c:232: warning: passing arg 2 of
`dma_xfer' makes integer from pointer without a cast
/home/adrian/aica/aica/snd_card_aica.c: In function
`aica_period_elapsed':
/home/adrian/aica/aica/snd_card_aica.c:277: warning: passing arg 2 of
`dma_xfer' makes integer from pointer without a cast
/home/adrian/aica/aica/snd_card_aica.c: In function
`snd_aicapcm_pcm_open':
/home/adrian/aica/aica/snd_card_aica.c:308: warning: ISO C90 forbids
mixed declarations and code
/home/adrian/aica/aica/snd_card_aica.c: At top level:
/home/adrian/aica/aica/snd_card_aica.c:356: warning: function
declaration isn't a prototype
/home/adrian/aica/aica/snd_card_aica.c: In function `spu_begin_dma':
/home/adrian/aica/aica/snd_card_aica.c:373: warning: passing arg 2 of
`dma_xfer' makes integer from pointer without a cast
/home/adrian/aica/aica/snd_card_aica.c: At top level:
/home/adrian/aica/aica/snd_card_aica.c:489: warning: "struct
snd_ctl_elem_info" declared inside parameter list
/home/adrian/aica/aica/snd_card_aica.c:489: warning: its scope is only
this definition or declaration, which is probably not what you want
/home/adrian/aica/aica/snd_card_aica.c:489: warning: "struct
snd_kcontrol" declared inside parameter list
/home/adrian/aica/aica/snd_card_aica.c:494: warning: "struct
snd_ctl_elem_value" declared inside parameter list
/home/adrian/aica/aica/snd_card_aica.c:494: warning: "struct
snd_kcontrol" declared inside parameter list
/home/adrian/aica/aica/snd_card_aica.c:499: warning: "struct
snd_ctl_elem_value" declared inside parameter list
/home/adrian/aica/aica/snd_card_aica.c:499: warning: "struct
snd_kcontrol" declared inside parameter list
/home/adrian/aica/aica/snd_card_aica.c:504: error: variable
`snd_aica_controls' has initializer but incomplete type
/home/adrian/aica/aica/snd_card_aica.c:505: error: unknown field `iface'
specified in initializer
/home/adrian/aica/aica/snd_card_aica.c:505: warning: excess elements in
struct initializer
/home/adrian/aica/aica/snd_card_aica.c:505: warning: (near
initialization for `snd_aica_controls')
/home/adrian/aica/aica/snd_card_aica.c:506: error: unknown field `name'
specified in initializer
/home/adrian/aica/aica/snd_card_aica.c:506: warning: excess elements in
struct initializer
/home/adrian/aica/aica/snd_card_aica.c:506: warning: (near
initialization for `snd_aica_controls')
/home/adrian/aica/aica/snd_card_aica.c:507: error: unknown field `index'
specified in initializer
/home/adrian/aica/aica/snd_card_aica.c:507: warning: excess elements in
struct initializer
/home/adrian/aica/aica/snd_card_aica.c:507: warning: (near
initialization for `snd_aica_controls')
/home/adrian/aica/aica/snd_card_aica.c:508: error: unknown field
`access' specified in initializer
/home/adrian/aica/aica/snd_card_aica.c:508: error:
`SND_CTL_ELEM_ACCESS_READWRITE' undeclared here (not in a function)
/home/adrian/aica/aica/snd_card_aica.c:508: warning: excess elements in
struct initializer
/home/adrian/aica/aica/snd_card_aica.c:508: warning: (near
initialization for `snd_aica_controls')
/home/adrian/aica/aica/snd_card_aica.c:509: error: unknown field
`private_values' specified in initializer
/home/adrian/aica/aica/snd_card_aica.c:509: warning: excess elements in
struct initializer
/home/adrian/aica/aica/snd_card_aica.c:509: warning: (near
initialization for `snd_aica_controls')
/home/adrian/aica/aica/snd_card_aica.c:510: error: unknown field `info'
specified in initializer
/home/adrian/aica/aica/snd_card_aica.c:510: warning: excess elements in
struct initializer
/home/adrian/aica/aica/snd_card_aica.c:510: warning: (near
initialization for `snd_aica_controls')
/home/adrian/aica/aica/snd_card_aica.c:511: error: unknown field `get'
specified in initializer
/home/adrian/aica/aica/snd_card_aica.c:511: warning: excess elements in
struct initializer
/home/adrian/aica/aica/snd_card_aica.c:511: warning: (near
initialization for `snd_aica_controls')
/home/adrian/aica/aica/snd_card_aica.c:512: error: unknown field `put'
specified in initializer
/home/adrian/aica/aica/snd_card_aica.c:513: warning: excess elements in
struct initializer
/home/adrian/aica/aica/snd_card_aica.c:513: warning: (near
initialization for `snd_aica_controls')
/home/adrian/aica/aica/snd_card_aica.c:533: warning: function
declaration isn't a prototype
/home/adrian/aica/aica/snd_card_aica.c: In function
`load_aica_firmware':
/home/adrian/aica/aica/snd_card_aica.c:537: warning: ISO C90 forbids
mixed declarations and code
/home/adrian/aica/aica/snd_card_aica.c: In function `aica_init':
/home/adrian/aica/aica/snd_card_aica.c:609: error: `snd_aica_control'
undeclared (first use in this function)
/home/adrian/aica/aica/snd_card_aica.c:609: error: (Each undeclared
identifier is reported only once
/home/adrian/aica/aica/snd_card_aica.c:609: error: for each function it
appears in.)
/home/adrian/aica/aica/snd_card_aica.c:609: warning: passing arg 1 of
`snd_ctl_add' from incompatible pointer type
/home/adrian/aica/aica/snd_card_aica.c: At top level:
/home/adrian/aica/aica/snd_card_aica.c:504: error: storage size of
`snd_aica_controls' isn't known
/home/adrian/aica/aica/snd_card_aica.c:504: warning: 'snd_aica_controls'
defined but not used
make[2]: *** [/home/adrian/aica/aica/snd_card_aica.o] Error 1
make[1]: *** [_module_/home/adrian/aica/aica] Error 2
make[1]: Leaving directory `/home/adrian/linux-2.6.15.2'
make: *** [all] Error 2




More information about the uClibc mailing list