Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 36812 - sys-kernel/gentoo-dev-sources-2.6.0-r1
Summary: sys-kernel/gentoo-dev-sources-2.6.0-r1
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: High blocker (vote)
Assignee: x86-kernel@gentoo.org (DEPRECATED)
URL:
Whiteboard:
Keywords:
: 36739 (view as bug list)
Depends on:
Blocks:
 
Reported: 2003-12-30 07:24 UTC by Imad R. Faiad
Modified: 2004-01-09 08:20 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Imad R. Faiad 2003-12-30 07:24:21 UTC
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
Comment 1 Christian Jiresjö 2003-12-30 10:22:35 UTC
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. 
Comment 2 Willem Dekker 2003-12-30 15:26:51 UTC
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. 


Comment 3 Willem Dekker 2003-12-30 16:06:15 UTC
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).



Comment 4 Jonny Heggheim 2004-01-02 09:50:32 UTC
*** Bug 36739 has been marked as a duplicate of this bug. ***
Comment 5 Brad House 2004-01-09 08:20:46 UTC
closing this bug, irrelevant now