Problems compiling the sounddriver of 2.1.77

Markus Kossmann (markus.kossmann@inka.de)
Sat, 03 Jan 1998 13:03:50 +0100


There are ( at least) three problems in the sound driver of 2.1.77
1.
[...]
soundcard.c: In function `sound_notifier_chain_register':
soundcard.c:1252: warning: implicit declaration of function
`notifier_chain_register'
soundcard.c:1259: dereferencing pointer to incomplete type

The following patch solved that problem for me :
--- linux-2.1.77/drivers/sound/soundcard.c~ Sat Jan 3 10:52:50 1998
+++ linux-2.1.77/drivers/sound/soundcard.c Sat Jan 3 11:13:50 1998
@@ -30,6 +30,7 @@
#include <linux/wait.h>
#include <linux/malloc.h>
#include <linux/ioport.h>
+#include <linux/notifier.h>
#endif /* __KERNEL__ */
#include <linux/delay.h>
#include <linux/proc_fs.h>

But Iīam not sure if the include should go into the #ifdef __KERNEL__ or
should be outside .
2.
sb_audio.c: At top level:
sb_audio.c:985: `sb_audio_ioctl' undeclared here (not in a function)
sb_audio.c:985: initializer element for `sb20_audio_driver.ioctl' is not
constant
sb_audio.c:1005: `sb_audio_ioctl' undeclared here (not in a function)
sb_audio.c:1005: initializer element for `sb201_audio_driver.ioctl' is
not constant
sb_audio.c:1025: `sb_audio_ioctl' undeclared here (not in a function)
sb_audio.c:1025: initializer element for `sbpro_audio_driver.ioctl' is
not constant
sb_audio.c:1045: `sb_audio_ioctl' undeclared here (not in a function)
sb_audio.c:1045: initializer element for `jazz16_audio_driver.ioctl' is
not constant
sb_audio.c:1065: `sb_audio_ioctl' undeclared here (not in a function)
sb_audio.c:1065: initializer element for `sb16_audio_driver.ioctl' is
not constant
sb_audio.c:1085: `sb_audio_ioctl' undeclared here (not in a function)
sb_audio.c:1085: initializer element for `ess_audio_driver.ioctl' is not
constant
make[3]: *** [sb_audio.o] Error 1
make[3]: Leaving directory `/usr/src/linux-2.1.77/drivers/sound'
make[2]: *** [first_rule] Error 2
sb_audio_ioctl was removed incompletely . This patch fixes that :
--- linux-2.1.77/drivers/sound/sb_audio.c~ Sat Jan 3 10:52:50 1998
+++ linux-2.1.77/drivers/sound/sb_audio.c Sat Jan 3 11:26:14 1998
@@ -982,7 +982,7 @@
sb_audio_close,
sb_set_output_parms,
sb_set_input_parms,
- sb_audio_ioctl,
+ NULL, /* ioctl */
sb1_audio_prepare_for_input,
sb1_audio_prepare_for_output,
sb1_audio_halt_xfer,
@@ -1002,7 +1002,7 @@
sb_audio_close,
sb_set_output_parms,
sb_set_input_parms,
- sb_audio_ioctl,
+ NULL, /* ioctl */
sb1_audio_prepare_for_input,
sb1_audio_prepare_for_output,
sb1_audio_halt_xfer,
@@ -1022,7 +1022,7 @@
sb_audio_close,
sb_set_output_parms,
sb_set_input_parms,
- sb_audio_ioctl,
+ NULL, /* ioctl */
sbpro_audio_prepare_for_input,
sbpro_audio_prepare_for_output,
sb1_audio_halt_xfer,
@@ -1042,7 +1042,7 @@
sb_audio_close,
sb_set_output_parms,
sb_set_input_parms,
- sb_audio_ioctl,
+ NULL, /* ioctl */
sbpro_audio_prepare_for_input,
sbpro_audio_prepare_for_output,
sb1_audio_halt_xfer,
@@ -1062,7 +1062,7 @@
sb_audio_close,
sb_set_output_parms,
sb_set_input_parms,
- sb_audio_ioctl,
+ NULL, /* ioctl */
sb16_audio_prepare_for_input,
sb16_audio_prepare_for_output,
sb1_audio_halt_xfer,
@@ -1082,7 +1082,7 @@
sb_audio_close,
sb_set_output_parms,
sb_set_input_parms,
- sb_audio_ioctl,
+ NULL, /* ioctl */
ess_audio_prepare_for_input,
ess_audio_prepare_for_output,
sb1_audio_halt_xfer,

Unfortunalety I havenīt solved the third problem yet:
ld -m elf_i386 -T /usr/src/linux-2.1.77/arch/i386/vmlinux.lds -e stext
arch/i386/kernel/head.o arch/i386/kernel/init_task.o init/main.o
init/version.o \
arch/i386/kernel/kernel.o arch/i386/mm/mm.o kernel/kernel.o
mm/mm.o fs/fs.o ipc/ipc.o \
fs/filesystems.a \
net/network.a \
drivers/block/block.a drivers/char/char.a drivers/misc/misc.a
drivers/net/net.a drivers/scsi/scsi.a drivers/cdrom/cdrom.a
drivers/sound/sound.a drivers/pci/pci.a drivers/pnp/pnp.a \
/usr/src/linux-2.1.77/arch/i386/lib/lib.a
/usr/src/linux-2.1.77/lib/lib.a
/usr/src/linux-2.1.77/arch/i386/lib/lib.a \
-o vmlinux
drivers/sound/sound.a(sys_timer.o): In function `def_tmr_ioctl':
sys_timer.o(.text+0x3d7): undefined reference to `reprogram_timer'

Until 2.1.77 reprogram_timer() was defined in and used only
sound_timer.c, now itīs used in sys_timer.c, too.

PS: It seems that vger.rutgers edu is down since friday .

-- 
------------------------------------------------------------------------------
Markus			           <markus.kossmann@inka.de> (Markus Kossmann)