Messages in this thread Patch in this message | | | Date | Fri, 6 Mar 2009 15:52:11 +0800 | From | Américo Wang <> | Subject | Re: um: WARNING: vmlinux: 'memcpy' exported twice. Previous export was in vmlinux |
| |
On Thu, Mar 05, 2009 at 07:27:31PM +0200, Boaz Harrosh wrote: >Américo Wang wrote: >> On Thu, Mar 05, 2009 at 03:45:36PM +0200, Boaz Harrosh wrote: >>> Américo Wang wrote: >>>> On Thu, Mar 05, 2009 at 02:13:58PM +0200, Boaz Harrosh wrote: >>>>> On today's linus v2.6.29-rc7-3-g559595a >>>>> >>>>> Doing make ARCH=um defconfig & make ARCH=um >>>>> give's me: >>>>> >>>>> LD vmlinux.o >>>>> MODPOST vmlinux.o >>>>> WARNING: vmlinux: 'memcpy' exported twice. Previous export was in vmlinux >>>>> >>>>> >>>>> Sorry if this is a duplicate report >>>>> >>>> Weird... >>>> I tried to compile like what you said, I can't reproduce it. >>>> >>>> Which gcc are you using? >>>> >>>> Thanks. >>>> >>> $ gcc --version >>> gcc (GCC) 4.3.2 20081105 (Red Hat 4.3.2-7) >>> >>> I'm running on an x86_64 Fedora10 system (updated recently) >>> $ uname -o -s -r -m -p -i >>> Linux 2.6.27.15-170.2.24.fc10.x86_64 x86_64 x86_64 x86_64 GNU/Linux >>> >> >> I am using the same thing, but on i386. I still can't reproduce it. :( >> > >What can I say I just did it again from scratch > >$ mkdir .build_um >$ make ARCH=um KBUILD_OUTPUT=.build_um defconfig >$ make ARCH=um KBUILD_OUTPUT=.build_um > >(I'm using KBUILD_OUTPUT= because O= does not work when also using M= with > external modules, so it's a habit) > >Thanks for your help. I will try to bisect it on Sunday
Hi, Boaz.
I am sorry that I don't have an x86_64 machine to use, but I know why this happens now. :)
Would you like to try the following patch? Thanks!
-------------->
Signed-off-by: WANG Cong <xiyou.wangcong@gmail.com>
--- diff --git a/arch/um/os-Linux/user_syms.c b/arch/um/os-Linux/user_syms.c index 74f49bb..89b48a1 100644 --- a/arch/um/os-Linux/user_syms.c +++ b/arch/um/os-Linux/user_syms.c @@ -14,7 +14,6 @@ #undef memset extern size_t strlen(const char *); -extern void *memcpy(void *, const void *, size_t); extern void *memmove(void *, const void *, size_t); extern void *memset(void *, int, size_t); extern int printf(const char *, ...); @@ -24,7 +23,11 @@ extern int printf(const char *, ...); EXPORT_SYMBOL(strstr); #endif +#ifndef __x86_64__ +extern void *memcpy(void *, const void *, size_t); EXPORT_SYMBOL(memcpy); +#endif + EXPORT_SYMBOL(memmove); EXPORT_SYMBOL(memset); EXPORT_SYMBOL(printf); -- 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/
| |