| Submitter | Sam Ravnborg |
|---|---|
| Date | May 19, 2012, 9:58 a.m. |
| Message ID | <20120519095830.GA4813@merkur.ravnborg.org> |
| Download | mbox | patch |
| Permalink | /patch/160180/ |
| State | Accepted |
| Delegated to: | David Miller |
| Headers | show |
Comments
From: Sam Ravnborg <sam@ravnborg.org> Date: Sat, 19 May 2012 11:58:30 +0200 >>From 44be8ae622596463a6e64542ce8580567cf78f15 Mon Sep 17 00:00:00 2001 > From: Sam Ravnborg <sam@ravnborg.org> > Date: Sat, 19 May 2012 11:54:11 +0200 > Subject: [PATCH] sparc32: add ucmpdi2 > > Based on copy from microblaze add ucmpdi2 implementation. > This fixes build of niu driver which failed with: > > drivers/built-in.o: In function `niu_get_nfc': > niu.c:(.text+0x91494): undefined reference to `__ucmpdi2' > > This driver will never be used on a sparc32 system, > but patch added to fix build breakage with all*config builds. > > Signed-off-by: Sam Ravnborg <sam@ravnborg.org> I applied this and pushed it out. But I just noticed that since you export a symbol from this file, we have to add it to obj-y instead of lib-y so I'll commit a follow-on patch which does that. -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Sat, May 19, 2012 at 06:29:22PM -0400, David Miller wrote: > From: Sam Ravnborg <sam@ravnborg.org> > Date: Sat, 19 May 2012 11:58:30 +0200 > > >>>From 44be8ae622596463a6e64542ce8580567cf78f15 Mon Sep 17 00:00:00 2001 > > From: Sam Ravnborg <sam@ravnborg.org> > > Date: Sat, 19 May 2012 11:54:11 +0200 > > Subject: [PATCH] sparc32: add ucmpdi2 > > > > Based on copy from microblaze add ucmpdi2 implementation. > > This fixes build of niu driver which failed with: > > > > drivers/built-in.o: In function `niu_get_nfc': > > niu.c:(.text+0x91494): undefined reference to `__ucmpdi2' > > > > This driver will never be used on a sparc32 system, > > but patch added to fix build breakage with all*config builds. > > > > Signed-off-by: Sam Ravnborg <sam@ravnborg.org> > > I applied this and pushed it out. > > But I just noticed that since you export a symbol from this > file, we have to add it to obj-y instead of lib-y so I'll > commit a follow-on patch which does that. Thanks - I missed that! Sam -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Patch
diff --git a/arch/sparc/lib/Makefile b/arch/sparc/lib/Makefile index ead6df2..245bccf 100644 --- a/arch/sparc/lib/Makefile +++ b/arch/sparc/lib/Makefile @@ -15,7 +15,7 @@ lib-$(CONFIG_SPARC32) += divdi3.o udivdi3.o lib-$(CONFIG_SPARC32) += copy_user.o locks.o lib-$(CONFIG_SPARC64) += atomic_64.o lib-$(CONFIG_SPARC32) += lshrdi3.o ashldi3.o -lib-$(CONFIG_SPARC32) += muldi3.o bitext.o cmpdi2.o +lib-$(CONFIG_SPARC32) += muldi3.o bitext.o cmpdi2.o ucmpdi2.o lib-$(CONFIG_SPARC64) += copy_page.o clear_page.o bzero.o lib-$(CONFIG_SPARC64) += csum_copy.o csum_copy_from_user.o csum_copy_to_user.o diff --git a/arch/sparc/lib/ucmpdi2.c b/arch/sparc/lib/ucmpdi2.c new file mode 100644 index 0000000..1e06ed5 --- /dev/null +++ b/arch/sparc/lib/ucmpdi2.c @@ -0,0 +1,19 @@ +#include <linux/module.h> +#include "libgcc.h" + +word_type __ucmpdi2(unsigned long long a, unsigned long long b) +{ + const DWunion au = {.ll = a}; + const DWunion bu = {.ll = b}; + + if ((unsigned int) au.s.high < (unsigned int) bu.s.high) + return 0; + else if ((unsigned int) au.s.high > (unsigned int) bu.s.high) + return 2; + if ((unsigned int) au.s.low < (unsigned int) bu.s.low) + return 0; + else if ((unsigned int) au.s.low > (unsigned int) bu.s.low) + return 2; + return 1; +} +EXPORT_SYMBOL(__ucmpdi2);