Some deprecated and now removed kernel functions/structures are used during cowloop compilations Reproducible: Always Steps to Reproduce: 1. Have a >=2.6.23 kernel installed 2. emerge cowloop Actual Results: >>> Emerging (1 of 1) sys-fs/cowloop-3.0-r2 to / * cowloop-3.0.tar.gz RMD160 SHA1 SHA256 size ;-) ... [ ok ] * checking ebuild checksums ;-) ... [ ok ] * checking auxfile checksums ;-) ... [ ok ] * checking miscfile checksums ;-) ... [ ok ] * checking cowloop-3.0.tar.gz ;-) ... [ ok ] * Determining the location of the kernel source code * Found kernel source directory: * /usr/src/linux * Found kernel object directory: * /lib/modules/2.6.23-tuxonice-r6/build * Found sources for kernel version: * 2.6.23-tuxonice-r6 * Linux kernel 2.6.23-tuxonice-r6 >>> Unpacking source... >>> Unpacking cowloop-3.0.tar.gz to /var/tmp/portage/sys-fs/cowloop-3.0-r2/work * Applying cowloop-3.0-cflags.patch ... [ ok ] * Applying cowloop-3.0-config_h.patch ... [ ok ] * Applying cowloop-3.0-vfs_statfs.patch ... [ ok ] >>> Source unpacked. >>> Compiling source in /var/tmp/portage/sys-fs/cowloop-3.0-r2/work/cowloop-3.0/src ... * Preparing cowloop module make: Entering directory `/usr/src/linux-2.6.23-tuxonice-r6-c1' CC [M] /var/tmp/portage/sys-fs/cowloop-3.0-r2/work/cowloop-3.0/src/cowloop.o /var/tmp/portage/sys-fs/cowloop-3.0-r2/work/cowloop-3.0/src/cowloop.c:922: warning: 'request_queue_t' is deprecated /var/tmp/portage/sys-fs/cowloop-3.0-r2/work/cowloop-3.0/src/cowloop.c: In function 'cowlo_cleanup_module': /var/tmp/portage/sys-fs/cowloop-3.0-r2/work/cowloop-3.0/src/cowloop.c:2819: error: void value not ignored as it ought to be make[1]: *** [/var/tmp/portage/sys-fs/cowloop-3.0-r2/work/cowloop-3.0/src/cowloop.o] Error 1 make: *** [_module_/var/tmp/portage/sys-fs/cowloop-3.0-r2/work/cowloop-3.0/src] Error 2 make: Leaving directory `/usr/src/linux-2.6.23-tuxonice-r6-c1' * * ERROR: sys-fs/cowloop-3.0-r2 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 * cowloop-3.0-r2.ebuild, line 42: 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 -C /usr/src/linux SUBDIRS=/var/tmp/portage/sys-fs/cowloop-3.0-r2/work/cowloop-3.0/src -I. modules. * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/tmp/portage/sys-fs/cowloop-3.0-r2/temp/build.log'. * I guess this is an upstream bug but I report it here anyway.
Remove the 'if( != 0)' line and the line under in cowloop.c at line 2819 and the line under completely fixes it.
Created attachment 142161 [details, diff] Patch to honor void unregister_blkdev
Created attachment 142162 [details, diff] Diff against cowloop-3.0-r2.ebuild This should work up to and including 2.6.24 series. Once the deprecated 'request_queue_t' vanishes a new version is needed anyway.
Thanks jouni and Jérôme. Jouni can you forward your patch to the upstream maintainer atcomputing.nl? Much appreciate the patches.
Actually, I already did that back on 2008-01-31: uploaded the rolled up patches for 2.6.18+ as http://sourceforge.net/tracker/index.php?func=detail&aid=1883913&group_id=124197&atid=698830 and notified the maintainers; got a reply 2008-02-01: > I will check this out (again). Sorry for not having > reacted sooner. In my schedule I am very busy until > the end of next week. Then I'll put it on my list of > things to do. I'll contact you again then.