lkml.org 
[lkml]   [2009]   [Mar]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: 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/

\
 
 \ /
  Last update: 2009-03-06 08:55    [W:0.056 / U:0.472 seconds]
©2003-2011 Jasper Spaans. Advertise on this site