If you prepare to compile slmodem-2.9.11-20070813 with kernel-2.6.24 SA_SHIRQ is undeclared. Reproducible: Always Steps to Reproduce: 1. emerge =sys-kernel/gentoo-sources-2.6.24 2. emerge =net-dialup/slmodem-2.9.11_pre20070813 Actual Results: ... make[2]: Entering directory `/usr/src/linux-2.6.24-gentoo' CC [M] /var/tmp/portage/net-dialup/slmodem-2.9.11_pre20070813/work/slmodem-2.9.11-20070813/drivers/amrmo_init.o CC [M] /var/tmp/portage/net-dialup/slmodem-2.9.11_pre20070813/work/slmodem-2.9.11-20070813/drivers/sysdep_amr.o /var/tmp/portage/net-dialup/slmodem-2.9.11_pre20070813/work/slmodem-2.9.11-20070813/drivers/amrmo_init.c: In function ‘amrmo_pci_probe’: /var/tmp/portage/net-dialup/slmodem-2.9.11_pre20070813/work/slmodem-2.9.11-20070813/drivers/amrmo_init.c:620: error: ‘SA_SHIRQ’ undeclared (first use in this function) /var/tmp/portage/net-dialup/slmodem-2.9.11_pre20070813/work/slmodem-2.9.11-20070813/drivers/amrmo_init.c:620: error: (Each undeclared identifier is reported only once /var/tmp/portage/net-dialup/slmodem-2.9.11_pre20070813/work/slmodem-2.9.11-20070813/drivers/amrmo_init.c:620: error: for each function it appears in.) /var/tmp/portage/net-dialup/slmodem-2.9.11_pre20070813/work/slmodem-2.9.11-20070813/drivers/amrmo_init.c: In function ‘amrmo_init’: /var/tmp/portage/net-dialup/slmodem-2.9.11_pre20070813/work/slmodem-2.9.11-20070813/drivers/amrmo_init.c:760: warning: ‘pci_find_device’ is deprecated (declared at include/linux/pci.h:492) make[3]: *** [/var/tmp/portage/net-dialup/slmodem-2.9.11_pre20070813/work/slmodem-2.9.11-20070813/drivers/amrmo_init.o] Error 1 make[3]: *** Waiting for unfinished jobs.... make[2]: *** [_module_/var/tmp/portage/net-dialup/slmodem-2.9.11_pre20070813/work/slmodem-2.9.11-20070813/drivers] Error 2 make[2]: Leaving directory `/usr/src/linux-2.6.24-gentoo' make[1]: *** [all] Error 2 make[1]: Leaving directory `/var/tmp/portage/net-dialup/slmodem-2.9.11_pre20070813/work/slmodem-2.9.11-20070813/drivers' make: *** [all] Error 2 * * ERROR: net-dialup/slmodem-2.9.11_pre20070813 failed. ... Expected Results: ... make[2]: Entering directory `/usr/src/linux-2.6.24-gentoo' CC [M] /var/tmp/portage/net-dialup/slmodem-2.9.11_pre20070813/work/slmodem-2.9.11-20070813/drivers/amrmo_init.o CC [M] /var/tmp/portage/net-dialup/slmodem-2.9.11_pre20070813/work/slmodem-2.9.11-20070813/drivers/st7554.o /var/tmp/portage/net-dialup/slmodem-2.9.11_pre20070813/work/slmodem-2.9.11-20070813/drivers/amrmo_init.c: In function ‘amrmo_init’: /var/tmp/portage/net-dialup/slmodem-2.9.11_pre20070813/work/slmodem-2.9.11-20070813/drivers/amrmo_init.c:760: warning: ‘pci_find_device’ is deprecated (declared at include/linux/pci.h:492) LD [M] /var/tmp/portage/net-dialup/slmodem-2.9.11_pre20070813/work/slmodem-2.9.11-20070813/drivers/slamr.o LD [M] /var/tmp/portage/net-dialup/slmodem-2.9.11_pre20070813/work/slmodem-2.9.11-20070813/drivers/slusb.o Building modules, stage 2. MODPOST 2 modules WARNING: modpost: GPL-incompatible module slusb.ko uses future GPL-only symbol 'usb_deregister' WARNING: modpost: GPL-incompatible module slusb.ko uses future GPL-only symbol 'usb_register_driver' CC /var/tmp/portage/net-dialup/slmodem-2.9.11_pre20070813/work/slmodem-2.9.11-20070813/drivers/slamr.mod.o CC /var/tmp/portage/net-dialup/slmodem-2.9.11_pre20070813/work/slmodem-2.9.11-20070813/drivers/slusb.mod.o LD [M] /var/tmp/portage/net-dialup/slmodem-2.9.11_pre20070813/work/slmodem-2.9.11-20070813/drivers/slamr.ko LD [M] /var/tmp/portage/net-dialup/slmodem-2.9.11_pre20070813/work/slmodem-2.9.11-20070813/drivers/slusb.ko make[2]: Leaving directory `/usr/src/linux-2.6.24-gentoo' make[1]: Leaving directory `/var/tmp/portage/net-dialup/slmodem-2.9.11_pre20070813/work/slmodem-2.9.11-20070813/drivers' >>> Source compiled. ... With this patch it is able to compile. # cd /var/tmp/portage/net-dialup/slmodem-2.9.11_pre20070813/work/slmodem-2.9.11-20070813/drivers/ # diff -Naur amrmo_init.c.old amrmo_init.c --- amrmo_init.c.old 2008-01-26 15:39:18.000000000 +0100 +++ amrmo_init.c 2008-01-26 15:38:58.000000000 +0100 @@ -617,7 +617,7 @@ } } - ret = request_irq(amrmo->irq, &amrmo_pci_interrupt,SA_SHIRQ, + ret = request_irq(amrmo->irq, &amrmo_pci_interrupt,IRQF_SHARED, amrmo->name,amrmo); if(ret) { printk(KERN_ERR "slamr: failed request_irq\n"); [the change was inspired by https://bugs.gentoo.org/show_bug.cgi?id=200508]
Fixed in slmodem-2.9.11_pre20080126. Thanks! This bug will remain open till this version of slmodem will be stabilized on x86.
I'm having trouble compiling this. * Preparing ungrab-winmodem module make modules -C /lib/modules/2.6.24-gentoo/build M=/var/tmp/portage/net-dialup/slmodem-2.9.11_pre20080126/work/ungrab-winmodem-20070505 make[1]: Entering directory `/usr/src/linux-2.6.24-gentoo' CC [M] /var/tmp/portage/net-dialup/slmodem-2.9.11_pre20080126/work/ungrab-winmodem-20070505/ungrab-winmodem.o /var/tmp/portage/net-dialup/slmodem-2.9.11_pre20080126/work/ungrab-winmodem-20070505/ungrab-winmodem.c: In function ‘softmodem_release_init’: /var/tmp/portage/net-dialup/slmodem-2.9.11_pre20080126/work/ungrab-winmodem-20070505/ungrab-winmodem.c:94: error: implicit declaration of function ‘pci_find_device’ /var/tmp/portage/net-dialup/slmodem-2.9.11_pre20080126/work/ungrab-winmodem-20070505/ungrab-winmodem.c:94: warning: assignment makes pointer from integer without a cast make[2]: *** [/var/tmp/portage/net-dialup/slmodem-2.9.11_pre20080126/work/ungrab-winmodem-20070505/ungrab-winmodem.o] Error 1 make[1]: *** [_module_/var/tmp/portage/net-dialup/slmodem-2.9.11_pre20080126/work/ungrab-winmodem-20070505] Error 2 make[1]: Leaving directory `/usr/src/linux-2.6.24-gentoo' make: *** [all] Error 2 * * ERROR: net-dialup/slmodem-2.9.11_pre20080126 failed. * Call stack: * ebuild.sh, line 1701: Called dyn_compile * ebuild.sh, line 1039: Called qa_call 'src_compile' * ebuild.sh, line 44: Called src_compile * slmodem-2.9.11_pre20080126.ebuild, line 74: Called linux-mod_src_compile * linux-mod.eclass, line 519: Called die * The specific snippet of code: * emake HOSTCC="$(tc-getBUILD_CC)" CC="$(get-KERNEL_CC)" LDFLAGS="$(get_abi_LDFLAGS)" \ * ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS} \ * || die "Unable to make ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS}." * The die message: * Unable to make KERNEL_DIR=/lib/modules/2.6.24-gentoo/build all.
The only thing I see about pci_find_device is this warning: ungrab-winmodem.c:83: warning: ‘pci_find_device’ is deprecated (declared at include/linux/pci.h:480) Do you still have this function defined in /usr/src/linux/include/linux/pci.h?
I've worked out what the problem was, I had CONFIG_PCI_LEGACY disabled. "Say Y here if you want to include support for the deprecated pci_find_slot() and pci_find_device() APIs. Most drivers have been converted over to using the proper hotplug APIs, so this option serves to include/exclude only a few drivers that are still using this API." This is obviously one such driver.
Perhaps either a patch should be made to make it not use the legacy system, or the ebuild checks to see what CONFIG_PCI_LEGACY is set to and if it is no issue a more informative error like "please enable CONFIG_PCI_LEGACY" and then recompile.
done
x86 team, please mark net-dialup/slmodem-2.9.11-20070813 as stable.
(In reply to comment #1) > Fixed in slmodem-2.9.11_pre20080126. Thanks! > > This bug will remain open till this version of slmodem will be stabilized on > x86. (In reply to comment #7) > x86 team, please mark net-dialup/slmodem-2.9.11-20070813 as stable. I am confused: 08 Jan 2008; Markus Meier <maekke@gentoo.org> slmodem-2.9.11_pre20070813.ebuild: x86 stable, bug #204191
My mistake. Please mark *slmodem-2.9.11_pre20080126* stable.
x86 stable, closing as we are last one