gentoo-dev-sources-2.6.0-r1 fails to emerge LD init/built-in.o LD .tmp_vmlinux1 drivers/built-in.o(.text+0xa7784): In function `ata_std_bios_param': : undefined reference to `__udivdi3' make: *** [.tmp_vmlinux1] Error 1 * gen_die(): Could not copy kernel binary to boot the problem seems to be caused by 225_libata_additional_patches_12282003.patch which is genpatches-2.6-0.10. preventing 225_libata_additional_patches_12282003.patch from being applied solved the problem. maybe the added function "ata_std_bios_param" should be moved to /linux-2.6.0-gentoo-r1/drivers/scsi/libata-core.c instead of it being in /linux-2.6.0-gentoo-r1/drivers/scsi/libata-scsi.c ?? season's greetings
Does moving it solve the problem? it seems to me (not a kernel guy really) that the problem is not the function but that it's is missing __udivdi3 which as i understand (from googling on a different issue involving __udivdi3) comes from doing 64 bit division in the code. __udivdi3 is declared in the kernel on 64bit archs but not on most 32bits(All?). If this patch comes from libata distro it might need update or if its a real error it should be reported to Jeff Garzik, the libata developer/maintainer. Sorry if i just confused the issue.
This is by a promotion from 32 bits to 64 bits integer. It should be fixed by modifing the line in ata_std_bios_param: Was: geom[2] = capacity / (geom[0] * geom[1]); Change in: geom[2] = (int) capacity /(int) (geom[0] * geom[1]); I'll make a mail to Jeff Garzick en Linus Kernel as well.
Last mail from Jeff: Linus fixed this for us :) Grab 2.6.0-bk3... Jeff I'll try to get this, but the bug is at least known and is being worked on (I could not grab 2.6.0-bk3, and have now 2.6.0-bk1 instead).
*** Bug 36739 has been marked as a duplicate of this bug. ***
closing this bug, irrelevant now