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.wangc...@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);
 

------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

Reply via email to