public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* um: WARNING: vmlinux: 'memcpy' exported twice. Previous export was in vmlinux
@ 2009-03-05 12:13 Boaz Harrosh
  2009-03-05 13:06 ` Américo Wang
  2009-03-10 14:19 ` [Patch] uml: fix WARNING: vmlinux: 'memcpy' exported twice Américo Wang
  0 siblings, 2 replies; 9+ messages in thread
From: Boaz Harrosh @ 2009-03-05 12:13 UTC (permalink / raw)
  To: uml-devel, linux-kernel

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

Boaz


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: um: WARNING: vmlinux: 'memcpy' exported twice. Previous export was in vmlinux
  2009-03-05 12:13 um: WARNING: vmlinux: 'memcpy' exported twice. Previous export was in vmlinux Boaz Harrosh
@ 2009-03-05 13:06 ` Américo Wang
  2009-03-05 13:45   ` Boaz Harrosh
  2009-03-10 14:19 ` [Patch] uml: fix WARNING: vmlinux: 'memcpy' exported twice Américo Wang
  1 sibling, 1 reply; 9+ messages in thread
From: Américo Wang @ 2009-03-05 13:06 UTC (permalink / raw)
  To: Boaz Harrosh; +Cc: uml-devel, linux-kernel

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.

-- 
Do what you love, f**k the rest! F**k the regulations!
 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: um: WARNING: vmlinux: 'memcpy' exported twice. Previous export was in vmlinux
  2009-03-05 13:06 ` Américo Wang
@ 2009-03-05 13:45   ` Boaz Harrosh
  2009-03-05 16:04     ` Américo Wang
  0 siblings, 1 reply; 9+ messages in thread
From: Boaz Harrosh @ 2009-03-05 13:45 UTC (permalink / raw)
  To: Américo Wang; +Cc: uml-devel, linux-kernel

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

Thanks

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: um: WARNING: vmlinux: 'memcpy' exported twice. Previous export was in vmlinux
  2009-03-05 13:45   ` Boaz Harrosh
@ 2009-03-05 16:04     ` Américo Wang
  2009-03-05 17:27       ` Boaz Harrosh
  0 siblings, 1 reply; 9+ messages in thread
From: Américo Wang @ 2009-03-05 16:04 UTC (permalink / raw)
  To: Boaz Harrosh; +Cc: Américo Wang, uml-devel, linux-kernel

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. :(

-- 
Do what you love, f**k the rest! F**k the regulations!
 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: um: WARNING: vmlinux: 'memcpy' exported twice. Previous export was in vmlinux
  2009-03-05 16:04     ` Américo Wang
@ 2009-03-05 17:27       ` Boaz Harrosh
  2009-03-06  7:52         ` Américo Wang
  0 siblings, 1 reply; 9+ messages in thread
From: Boaz Harrosh @ 2009-03-05 17:27 UTC (permalink / raw)
  To: Américo Wang; +Cc: uml-devel, linux-kernel

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
Boaz

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: um: WARNING: vmlinux: 'memcpy' exported twice. Previous export was in vmlinux
  2009-03-05 17:27       ` Boaz Harrosh
@ 2009-03-06  7:52         ` Américo Wang
  2009-03-08 10:49           ` Boaz Harrosh
  0 siblings, 1 reply; 9+ messages in thread
From: Américo Wang @ 2009-03-06  7:52 UTC (permalink / raw)
  To: Boaz Harrosh; +Cc: Américo Wang, uml-devel, linux-kernel

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);
 

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: um: WARNING: vmlinux: 'memcpy' exported twice. Previous export was in vmlinux
  2009-03-06  7:52         ` Américo Wang
@ 2009-03-08 10:49           ` Boaz Harrosh
  2009-03-10 14:13             ` Américo Wang
  0 siblings, 1 reply; 9+ messages in thread
From: Boaz Harrosh @ 2009-03-08 10:49 UTC (permalink / raw)
  To: Américo Wang; +Cc: uml-devel, linux-kernel

Américo Wang wrote:
> 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>
> 

Tested-by: Boaz Harrosh <bharrosh@panasas.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);
>  

Yes this works. But it is weird, what is the difference between
__x86_64__ and any other platform?

Thanks
Boaz

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: um: WARNING: vmlinux: 'memcpy' exported twice. Previous export was in vmlinux
  2009-03-08 10:49           ` Boaz Harrosh
@ 2009-03-10 14:13             ` Américo Wang
  0 siblings, 0 replies; 9+ messages in thread
From: Américo Wang @ 2009-03-10 14:13 UTC (permalink / raw)
  To: Boaz Harrosh; +Cc: Américo Wang, uml-devel, linux-kernel

On Sun, Mar 08, 2009 at 12:49:16PM +0200, Boaz Harrosh wrote:
>Américo Wang wrote:
>> 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>
>> 
>
>Tested-by: Boaz Harrosh <bharrosh@panasas.com>
>

Thank you.

I will resend that patch with your Tested-by. :)

>> ---
>> 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);
>>  
>
>Yes this works. But it is weird, what is the difference between
>__x86_64__ and any other platform?

I just saw the comments in arch/um/sys-x86_64/ksyms.c.

-- 
Do what you love, f**k the rest! F**k the regulations!
 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Patch] uml: fix WARNING: vmlinux: 'memcpy' exported twice.
  2009-03-05 12:13 um: WARNING: vmlinux: 'memcpy' exported twice. Previous export was in vmlinux Boaz Harrosh
  2009-03-05 13:06 ` Américo Wang
@ 2009-03-10 14:19 ` Américo Wang
  1 sibling, 0 replies; 9+ messages in thread
From: Américo Wang @ 2009-03-10 14:19 UTC (permalink / raw)
  To: Boaz Harrosh; +Cc: uml-devel, linux-kernel, Jeff Dike, Andrew Morton



This patch fixes the following warning on x86_64:

LD vmlinux.o
MODPOST vmlinux.o
WARNING: vmlinux: 'memcpy' exported twice. Previous export was in
vmlinux

Reported-by: Boaz Harrosh <bharrosh@panasas.com>
Signed-off-by: WANG Cong <xiyou.wangcong@gmail.com>
Tested-by: Boaz Harrosh <bharrosh@panasas.com>
Cc: Jeff Dike <jdike@addtoit.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);

 

^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2009-03-10 14:19 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-05 12:13 um: WARNING: vmlinux: 'memcpy' exported twice. Previous export was in vmlinux Boaz Harrosh
2009-03-05 13:06 ` Américo Wang
2009-03-05 13:45   ` Boaz Harrosh
2009-03-05 16:04     ` Américo Wang
2009-03-05 17:27       ` Boaz Harrosh
2009-03-06  7:52         ` Américo Wang
2009-03-08 10:49           ` Boaz Harrosh
2009-03-10 14:13             ` Américo Wang
2009-03-10 14:19 ` [Patch] uml: fix WARNING: vmlinux: 'memcpy' exported twice Américo Wang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox