[ebuild R ] x11-drivers/nvidia-drivers-169.09 USE="acpi gtk -custom-cflags (-multilib)" 0 kB re-emerge of nvidia-drivers-169.09 against upgrade to newest sys-kernel/git-sources (2.6.24-git9) fails with the following diagnostic: /var/tmp/portage/x11-drivers/nvidia-drivers-169.09/work/NVIDIA-Linux-x86-169.09-pkg0/usr/src/nv/nv-vm.c: In function 'nv_flush_caches': /var/tmp/portage/x11-drivers/nvidia-drivers-169.09/work/NVIDIA-Linux-x86-169.09-pkg0/usr/src/nv/nv-vm.c:364: error: implicit declaration of function 'global_flush_tlb' make[3]: *** [/var/tmp/portage/x11-drivers/nvidia-drivers-169.09/work/NVIDIA-Linux-x86-169.09-pkg0/usr/src/nv/nv-vm.o] Error 1 make[2]: *** [_module_/var/tmp/portage/x11-drivers/nvidia-drivers-169.09/work/NVIDIA-Linux-x86-169.09-pkg0/usr/src/nv] Error 2 NVIDIA: left KBUILD. nvidia.ko failed to build! make[1]: *** [module] Error 1 make: *** [module] Error 2 * * ERROR: x11-drivers/nvidia-drivers-169.09 failed. * Call stack: * ebuild.sh, line 46: Called src_compile * environment, line 3552: Called linux-mod_src_compile * environment, line 2620: 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 IGNORE_CC_MISMATCH=yes V=1 SYSSRC=/usr/src/linux SYSOUT=/usr/src/linux clean module. The failure seems to be on account of a commit (d7c8f21a8cad0228c7c5ce2bb6dbd95d1ee49d13) to the kernel code on 30.i.2008 where global_flush_tlb() disappears in favour of cpa_flush_all(): commit d7c8f21a8cad0228c7c5ce2bb6dbd95d1ee49d13 Author: Thomas Gleixner <tglx@linutronix.de> Date: Wed Jan 30 13:34:07 2008 +0100 x86: cpa: move flush to cpa The set_memory_* and set_pages_* family of API's currently requires the callers to do a global tlb flush after the function call; forgetting this is a very nasty deathtrap. This patch moves the global tlb flush into each of the callers Signed-off-by: Arjan van de Ven <arjan@linux.intel.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> re-iterated by: commit af1e6844d60057774910a2d08bd75b67d73ba7d5 Author: Thomas Gleixner <tglx@linutronix.de> Date: Wed Jan 30 13:34:08 2008 +0100 x86: cpa: rename global_flush_tlb() to cpa_flush_all() The function name global_flush_tlb() suggests something different from what the function really does. Rename it to cpa_flush_all(), which is an understandable counterpart to cpa_flush_range(). no global visibility of the old API anymore. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@elte.hu> Of course, nv-vm.c uses global_flush_tlb(). Cf. also: http://www.nvnews.net/vbulletin/showthread.php?t=107144 for further details.
Unsupported kernel; reopen if you can reproduce with a supported one. http://www.gentoo.org/doc/en/gentoo-kernel.xml#doc_chap2
Thanks for the comments. My purpose in reporting thie problem was not to request support as such but to draw attention to an issue (unless the commit is reverted) that will affect a fair number of people not too far in the future as a forthcoming vanilla 2.6.24.1 surface in gentoo-sources. But I will raise the matter again only in the proper context and once it has become an issue for supported kernels. Thanks again.
Well, since this build just fine with 2.6.24 vanilla, chances are that the broken commit already has been reverted. ;)