Jaroslav Kysela wrote:

> On Sat, 8 Dec 2001, Jordan Breeding wrote:
> 
> 
>>would be nice because of it's __devexit_p() approach to the binutils
>>problem.  __devexit_p() did solve my problems with the actual ALSA
>>
> 
> This macro is not used anywhere in the Linux kernel tree.
>


Actually in linux-2.4.17-pre6 it is used, it is a new function provided 
specifically to fix the problems people were having linking using the 
new binutils.  Here is the output of `grep -r -i -w -H "__devexit_p" 
/usr/src/linux/*` which is a linux-2.4.17-pre6 tree with ALSA patched in 
and also has drivers/sound/cards/card-emu10k1.c hacked to use 
__devexit_p() so that the linking problem with it would go away:

/usr/src/linux/Documentation/pci.txt:        __devexit_p(function_name).  That will 
generate the function
/usr/src/linux/drivers/net/tlan.c:      remove:         __devexit_p(tlan_remove_one),  
 
/usr/src/linux/drivers/net/wan/farsync.c:        remove:         
__devexit_p(fst_remove_one),
/usr/src/linux/drivers/net/3c59x.c:     remove:         __devexit_p(vortex_remove_one),
/usr/src/linux/drivers/net/tokenring/olympic.c: remove:         
__devexit_p(olympic_remove_one),
/usr/src/linux/drivers/net/tokenring/lanstreamer.c:  remove:     
__devexit_p(streamer_remove_one),
/usr/src/linux/drivers/net/defxx.c:     remove:         __devexit_p(dfx_remove_one),
/usr/src/linux/drivers/net/eepro100.c:  remove:         
__devexit_p(eepro100_remove_one),
/usr/src/linux/drivers/net/yellowfin.c: remove:         
__devexit_p(yellowfin_remove_one),
/usr/src/linux/drivers/net/starfire.c:  remove:         
__devexit_p(starfire_remove_one),
/usr/src/linux/drivers/net/via-rhine.c: remove:         
__devexit_p(via_rhine_remove_one),
/usr/src/linux/drivers/net/sis900.c:    remove:         __devexit_p(sis900_remove),
/usr/src/linux/drivers/net/arcnet/com20020-pci.c:       remove:         
__devexit_p(com20020pci_remove),
/usr/src/linux/drivers/net/epic100.c:   remove:         __devexit_p(epic_remove_one),
/usr/src/linux/drivers/net/ne2k-pci.c:  remove:         
__devexit_p(ne2k_pci_remove_one),
/usr/src/linux/drivers/net/dl2k.c:      remove:__devexit_p(rio_remove1),
/usr/src/linux/drivers/net/8139too.c:   remove:         
__devexit_p(rtl8139_remove_one),
/usr/src/linux/drivers/net/irda/vlsi_ir.c:      remove:         
__devexit_p(vlsi_irda_remove),
/usr/src/linux/drivers/net/sungem.c:    remove:         __devexit_p(gem_remove_one),
/usr/src/linux/drivers/net/tulip/tulip_core.c:  remove:         
__devexit_p(tulip_remove_one),

/usr/src/linux/drivers/net/ioc3-eth.c:  remove: 
__devexit_p(ioc3_remove_one),
/usr/src/linux/drivers/net/pcmcia/xircom_tulip_cb.c:    remove: 
__devexit_p(xircom_remove_one),
/usr/src/linux/drivers/net/pcmcia/xircom_cb.c:  remove: 
__devexit_p(xircom_remove),
/usr/src/linux/drivers/net/fealnx.c:    remove: 
__devexit_p(fealnx_remove_one),
/usr/src/linux/drivers/net/natsemi.c:   remove: 
__devexit_p(natsemi_remove1),
/usr/src/linux/drivers/net/sundance.c:  remove: 
__devexit_p(sundance_remove1),
/usr/src/linux/drivers/net/winbond-840.c:       remove: 
__devexit_p(w840_remove1),
/usr/src/linux/drivers/net/pci-skeleton.c:      remove: 
__devexit_p(netdrv_remove_one),
/usr/src/linux/drivers/net/wireless/airo.c:     remove: 
__devexit_p(airo_pci_remove),
/usr/src/linux/drivers/net/wireless/orinoco_plx.c: 
remove:__devexit_p(orinoco_plx_remove_one),
/usr/src/linux/drivers/net/8139cp.c:    remove: 
__devexit_p(cp_remove_one),
/usr/src/linux/drivers/net/ns83820.c:   remove: 
__devexit_p(ns83820_remove_one),
/usr/src/linux/drivers/block/cciss.c:   remove: 
__devexit_p(cciss_remove_one),
/usr/src/linux/drivers/char/serial.c:       remove: 
__devexit_p(serial_remove_one),
/usr/src/linux/drivers/char/joystick/pcigame.c: remove: 
__devexit_p(pcigame_remove),
/usr/src/linux/drivers/char/joystick/cs461x.c:        remove: 
__devexit_p(cs461x_pci_remove),
/usr/src/linux/drivers/char/joystick/emu10k1-gp.c:        remove: 
   __devexit_p(emu_remove),
/usr/src/linux/drivers/sound/oss/ymfpci.c:      remove: 
__devexit_p(ymf_remove_one),
/usr/src/linux/drivers/sound/oss/emu10k1/main.c:        remove: 
__devexit_p(emu10k1_remove),
/usr/src/linux/drivers/sound/oss/btaudio.c:        remove: 
__devexit_p(btaudio_remove),
/usr/src/linux/drivers/sound/cards/card-emu10k1.c:      remove: 
__devexit_p(snd_card_emu10k1_remove),
/usr/src/linux/drivers/isdn/hisax/st5481_init.c:        disconnect: 
__devexit_p(disconnect_st5481),
/usr/src/linux/drivers/isdn/tpam/tpam_main.c:   remove: 
__devexit_p(tpam_remove),
/usr/src/linux/drivers/video/imsttfb.c: remove: 
__devexit_p(imsttfb_remove),
/usr/src/linux/drivers/video/cyber2000fb.c:     remove: 
__devexit_p(cyberpro_remove),
/usr/src/linux/drivers/video/riva/fbdev.c:      remove: 
__devexit_p(rivafb_remove_one),
/usr/src/linux/drivers/video/tdfxfb.c:  remove: 
__devexit_p(tdfxfb_remove),
/usr/src/linux/drivers/video/radeonfb.c:        remove: 
__devexit_p(radeonfb_pci_unregister),
/usr/src/linux/drivers/usb/usb-ohci.c:  remove: 
__devexit_p(ohci_pci_remove),
/usr/src/linux/drivers/usb/uhci.c:      remove: 
__devexit_p(uhci_pci_remove),
/usr/src/linux/drivers/usb/usb-uhci.c:  remove: 
__devexit_p(uhci_pci_remove),
/usr/src/linux/drivers/atm/eni.c:       remove: 
__devexit_p(eni_remove_one),
/usr/src/linux/drivers/atm/firestream.c:        remove: 
__devexit_p(firestream_remove_one),
/usr/src/linux/drivers/parport/parport_serial.c:        remove: 
__devexit_p(parport_serial_pci_remove),
/usr/src/linux/drivers/pcmcia/pci_socket.c:     remove: 
__devexit_p(cardbus_remove),
/usr/src/linux/drivers/ieee1394/ohci1394.c:     remove: 
__devexit_p(ohci1394_remove_one),
/usr/src/linux/drivers/media/radio/radio-maxiradio.c:   remove: 
__devexit_p(maxiradio_remove_one),
/usr/src/linux/drivers/media/radio/radio-gemtek-pci.c:  remove: 
__devexit_p(gemtek_pci_remove),
/usr/src/linux/drivers/media/video/bttv-driver.c:        remove: 
__devexit_p(bttv_remove),
/usr/src/linux/drivers/media/video/meye.c:      remove: 
__devexit_p(meye_remove),
/usr/src/linux/include/linux/init.h:   __devexit functions must use 
__devexit_p(function_name), the wrapper will
/usr/src/linux/include/linux/init.h:#define __devexit_p(x) x
/usr/src/linux/include/linux/init.h:#define __devexit_p(x) NULL

Anyway I think that should show that yes it is used in the kernel tree, 
at least as of 2.4.17-pre{6,7}.  Hope that helps.

> 
> Try this patch:
> 
> Index: seq_oss.c
> ===================================================================
> RCS file: /cvsroot/alsa/alsa-driver/kernel/seq/oss/seq_oss.c,v
> retrieving revision 1.36
> diff -u -r1.36 seq_oss.c
> --- seq_oss.c   2001/10/12 10:43:19     1.36
> +++ seq_oss.c   2001/12/09 09:35:52
> @@ -296,7 +296,7 @@
>         return 0;
>  }
> 
> -static void __exit
> +static void
>  unregister_proc(void)
>  {
>  #ifdef CONFIG_PROC_FS


Tried this patch and now I get the following when linking during `make 
bzImage`:

make[2]: Leaving directory `/usr/src/linux/arch/i386/lib'
make[1]: Leaving directory `/usr/src/linux/arch/i386/lib'
ld -m elf_i386 -T /usr/src/linux/arch/i386/vmlinux.lds -e stext 
arch/i386/kernel/head.o arch/i386/kernel/init_task.o init/main.o 
init/version.o \
         --start-group \
         arch/i386/kernel/kernel.o arch/i386/mm/mm.o kernel/kernel.o 
mm/mm.o fs/fs.o ipc/ipc.o \
          drivers/acpi/acpi.o drivers/char/char.o drivers/block/block.o 
drivers/misc/misc.o drivers/net/net.o drivers/media/media.o 
drivers/char/agp/agp.o drivers/char/drm/drm.o drivers/ide/idedriver.o 
drivers/scsi/scsidrv.o drivers/cdrom/driver.o 
drivers/sound/sounddrivers.o drivers/pci/driver.o drivers/video/video.o 
drivers/usb/usbdrv.o drivers/input/inputdrv.o drivers/i2c/i2c.o \
         net/network.o \
         /usr/src/linux/arch/i386/lib/lib.a /usr/src/linux/lib/lib.a 
/usr/src/linux/arch/i386/lib/lib.a \
         --end-group \
         -o vmlinux
drivers/sound/sounddrivers.o(.data+0x3754): undefined reference to 
`local symbols in discarded section .text.exit'
make: *** [vmlinux] Error 1


> 
> 
>                                               Jaroslav
> 
> -----
> Jaroslav Kysela <[EMAIL PROTECTED]>
> SuSE Linux    http://www.suse.com
> ALSA Project  http://www.alsa-project.org
> 
> 
> 


Thanks for all of your help and any help you can continue to give me to 
try and solve this problem.  Sorry about this email being so long.

Jordan Breeding




_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel

Reply via email to