Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 140516 Details for
Bug 204985
VIDEO_CARDS="nv" x11-base/x11-drm-20071019 needs __ucmpdi2 which isnt in the kernel
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
patch for __ucmpdi2 workaround
__ucmpdi2_workaround.patch (text/plain), 2.34 KB, created by
hiyuh
on 2008-01-09 02:20:19 UTC
(
hide
)
Description:
patch for __ucmpdi2 workaround
Filename:
MIME Type:
Creator:
hiyuh
Created:
2008-01-09 02:20:19 UTC
Size:
2.34 KB
patch
obsolete
> On Thu, 2006-12-14 at 14:58 -0500, Kyle McMartin wrote: > | I posted a patch to Paul this week to fix this, > > Hm, I didn't see it on linuxppc-dev. > > | Since ppc32 can't do a 64bit comparison on its own it seems, gcc > | will generate a call to a helper function from libgcc. What other > | arches do is link libgcc.a into libs-y, and export the symbol > | they want from it. > > You still get to 'accidentally' do 64-bit arithmetic in-kernel that way > though. Might be better just to provide __ucmpdi2, just as we have for > the other functions which are required from libgcc > > It'd be better just to fix the compiler though -- which is in fact what > they've done: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25724 > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21237 > > I've applied this as a temporary hack to the Fedora kernel until the > compiler is updated there... > >--- linux-2.6.19.ppc/arch/powerpc/kernel/misc_32.S~ 2006-11-29 21:57:37.000000000 +0000 >+++ linux-2.6.19.ppc/arch/powerpc/kernel/misc_32.S 2006-12-17 12:19:48.000000000 +0000 >@@ -728,6 +728,27 @@ _GLOBAL(__lshrdi3) > or r4,r4,r7 # LSW |= t2 > blr > >+/* >+ * __ucmpdi2: 64-bit comparison >+ * >+ * R3/R4 has 64 bit value A >+ * R5/R6 has 64 bit value B >+ * result in R3: 0 for A < B >+ * 1 for A == B >+ * 2 for A > B >+ */ >+_GLOBAL(__ucmpdi2) >+ cmplw r7,r3,r5 # compare high words >+ li r3,0 >+ blt r7,2f # a < b ... return 0 >+ bgt r7,1f # a > b ... return 2 >+ cmplw r6,r4,r6 # compare low words >+ blt r6,2f # a < b ... return 0 >+ li r3,1 >+ ble r6,2f # a = b ... return 1 >+1: li r3,2 >+2: blr >+ > _GLOBAL(abs) > srawi r4,r3,31 > xor r3,r3,r4 >--- linux-2.6.19.ppc/arch/powerpc/kernel/ppc_ksyms.c~ 2006-12-15 17:19:56.000000000 +0000 >+++ linux-2.6.19.ppc/arch/powerpc/kernel/ppc_ksyms.c 2006-12-17 12:16:54.000000000 +0000 >@@ -161,9 +161,11 @@ EXPORT_SYMBOL(to_tm); > long long __ashrdi3(long long, int); > long long __ashldi3(long long, int); > long long __lshrdi3(long long, int); >+int __ucmpdi2(uint64_t, uint64_t); > EXPORT_SYMBOL(__ashrdi3); > EXPORT_SYMBOL(__ashldi3); > EXPORT_SYMBOL(__lshrdi3); >+EXPORT_SYMBOL(__ucmpdi2); > #endif > > EXPORT_SYMBOL(memcpy); > > -- > dwmw2 > > - > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 204985
: 140516