Bug 204985 - VIDEO_CARDS="nv" x11-base/x11-drm-20071019 needs __ucmpdi2 which isnt in the kernel
Bug#: 204985 Product:  Gentoo Linux Version: unspecified Platform: PPC
OS/Version: Linux Status: RESOLVED Severity: enhancement Priority: P2
Resolution: FIXED Assigned To: toolchain@gentoo.org Reported By: hiyuh.root@gmail.com
Component: Ebuilds
URL:  https://bugs.freedesktop.org/show_bug.cgi?id=10547
Summary: VIDEO_CARDS="nv" x11-base/x11-drm-20071019 needs __ucmpdi2 which isnt in the kernel
Keywords:  
Status Whiteboard: 
Opened: 2008-01-09 02:19 0000
Description:   Opened: 2008-01-09 02:19 0000
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.

------- Comment #1 From KIMURA Masaru / hiyuh 2008-01-09 02:20:19 0000 -------
Created an attachment (id=140516) [details]
patch for __ucmpdi2 workaround

------- Comment #2 From SpanKY 2008-01-09 17:58:06 0000 -------
this isnt a bug in gcc ... dont do 64bit math in the kernel

------- Comment #3 From SpanKY 2008-01-09 19:19:56 0000 -------
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 ...

------- Comment #4 From KIMURA Masaru / hiyuh 2008-02-06 16:16:35 0000 -------
FYI, same bug was already filed at upstream bugzilla.

------- Comment #5 From Bryan Stine 2008-09-13 01:28:37 0000 -------
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.