Re: V4L2: __ucmpdi2 undefined on ppc

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Dec 13, 2006 at 09:41:56PM -0200, Mauro Carvalho Chehab wrote:
> Argh! if this is caused by switch / ifs, compilation will fail on other
> places.
> 

I posted a patch to Paul this week to fix this, as saw we saw it on
Ubuntu's powerpc kernel builds.

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. The build process will discard the rest of the
.a that is unused. parisc uses this method, for example.

Gcc targets can provide optimized versions of these helpers in
assembly, but at least in this case, the generic C version seems
to be used everywhere. It might be useful to provide kernel local
copies of these C versions linked __weak or something if the
arch happens to need them.

(Not going to sign off or anything, since I've already sent it to
paulus@ and I don't want it to get merged without his approval...)

Cheers,
	Kyle

---
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index a00fe72..5b60c05 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -139,6 +139,8 @@ core-$(CONFIG_XMON)		+= arch/powerpc/xmon/
 
 drivers-$(CONFIG_OPROFILE)	+= arch/powerpc/oprofile/
 
+libs-y				+= `$(CC) -print-libgcc-file-name`
+
 # Default to zImage, override when needed
 defaultimage-y			:= zImage
 defaultimage-$(CONFIG_PPC_ISERIES) := vmlinux
diff --git a/arch/powerpc/kernel/ppc_ksyms.c b/arch/powerpc/kernel/ppc_ksyms.c
index 9179f07..dea8384 100644
--- a/arch/powerpc/kernel/ppc_ksyms.c
+++ b/arch/powerpc/kernel/ppc_ksyms.c
@@ -164,6 +164,9 @@ long long __lshrdi3(long long, int);
 EXPORT_SYMBOL(__ashrdi3);
 EXPORT_SYMBOL(__ashldi3);
 EXPORT_SYMBOL(__lshrdi3);
+
+extern void __ucmpdi2(void);
+EXPORT_SYMBOL(__ucmpdi2);
 #endif
 
 EXPORT_SYMBOL(memcpy);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux