x11-base/x11-drm-20071019 w/ VIDEO_CARDS="nv" on ~ppc (w/ sys-devel.gcc-4.2.2) produces unknown symbol __ucmpdi2. It comes from wrong code generation by sys-devel/gcc-4.2.2 for 64bit comparison in nouveau.ko. Note, I didn't investigate whether it's gentoo-patched one specific or not. Reproducible: Always Steps to Reproduce: 1. VIDEO_CARDS="nv" emerge x11-base/x11-drm-20071019 on ~ppc. 2. 3. Actual Results: nouveau.ko produces unknown symbol __ucmpdi2. Expected Results: *.ko shouldn't have any unknown symbol. A workaround I did is to use patched gentoo-sources. I'll attach it later.
Created attachment 140516 [details, diff] patch for __ucmpdi2 workaround
this isnt a bug in gcc ... dont do 64bit math in the kernel
ugh, no ... the last thing you want to do is actually add these symbols to the kernel. they arent in there by design: you dont want to do 64bit emulated math in kernel space. looks like the issue comes up as gcc does not optimize all cases ... so while the x11-drm package is still broken (imo), by adding better optimization to the compiler, you should be able build x11-drm without these sym references ...
FYI, same bug was already filed at upstream bugzilla.
This has been fixed in kernel 2.6.25 upstream, according to the fdo bug. In patchball 0.2 for x11-drm 20071019, I added the patch (with a kernel version check so as to not collide with the function in newer kernels) for kernels without the fix. This is hopefully good now for users affected. I don't have a PPC so I can't check to make sure if the code works as it should. Any problems, just reopen here. Thanks.