public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* linux-next-20090324: undefined reference to `__this_fixmap_does_not_exist\'
@ 2009-03-25  3:24 Tetsuo Handa
  2009-03-25  4:58 ` Wang Chen
  0 siblings, 1 reply; 6+ messages in thread
From: Tetsuo Handa @ 2009-03-25  3:24 UTC (permalink / raw)
  To: wangchen, mingo; +Cc: linux-kernel

Hello.

I encountered below error.

arch/x86/mm/built-in.o(.init.text+0x1831): In function `early_ioremap_init':
: undefined reference to `__this_fixmap_does_not_exist'
make: *** [.tmp_vmlinux1] Error 1

Config is at http://I-love.SAKURA.ne.jp/tmp/config-2.6.29-next-20090324

Regards.

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

* Re: linux-next-20090324: undefined reference to `__this_fixmap_does_not_exist\'
  2009-03-25  3:24 linux-next-20090324: undefined reference to `__this_fixmap_does_not_exist\' Tetsuo Handa
@ 2009-03-25  4:58 ` Wang Chen
  2009-03-25  8:52   ` Wang Chen
  0 siblings, 1 reply; 6+ messages in thread
From: Wang Chen @ 2009-03-25  4:58 UTC (permalink / raw)
  To: Tetsuo Handa; +Cc: mingo, linux-kernel

Tetsuo Handa said the following on 2009-3-25 11:24:
> Hello.
> 
> I encountered below error.
> 
> arch/x86/mm/built-in.o(.init.text+0x1831): In function `early_ioremap_init':
> : undefined reference to `__this_fixmap_does_not_exist'
> make: *** [.tmp_vmlinux1] Error 1
> 
> Config is at http://I-love.SAKURA.ne.jp/tmp/config-2.6.29-next-20090324
> 

Tetsuo, I've tried the latest tip, it's OK.
I can't trigger the same problem as you do.
So I will try linux-next later.


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

* Re: linux-next-20090324: undefined reference to `__this_fixmap_does_not_exist\'
  2009-03-25  4:58 ` Wang Chen
@ 2009-03-25  8:52   ` Wang Chen
  2009-03-25  9:56     ` Wang Chen
  0 siblings, 1 reply; 6+ messages in thread
From: Wang Chen @ 2009-03-25  8:52 UTC (permalink / raw)
  To: Tetsuo Handa; +Cc: mingo, linux-kernel

Wang Chen said the following on 2009-3-25 12:58:
> Tetsuo Handa said the following on 2009-3-25 11:24:
>> Hello.
>>
>> I encountered below error.
>>
>> arch/x86/mm/built-in.o(.init.text+0x1831): In function `early_ioremap_init':
>> : undefined reference to `__this_fixmap_does_not_exist'
>> make: *** [.tmp_vmlinux1] Error 1
>>
>> Config is at http://I-love.SAKURA.ne.jp/tmp/config-2.6.29-next-20090324
>>
> 
> Tetsuo, I've tried the latest tip, it's OK.
> I can't trigger the same problem as you do.
> So I will try linux-next later.
> 

Tetsuo

I've "make" tested linux-next-20090324 with your config.
Still can't trigger the error.
It's strange :(


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

* Re: linux-next-20090324: undefined reference to `__this_fixmap_does_not_exist\'
  2009-03-25  8:52   ` Wang Chen
@ 2009-03-25  9:56     ` Wang Chen
  2009-03-25 11:40       ` linux-next-20090324: undefined reference to `__this_fixmap_does_not_exist' Tetsuo Handa
  2009-03-25 13:09       ` [tip:x86/mm] x86: early_ioremap_init(), use __fix_to_virt(), because we are sure it's safe Wang Chen
  0 siblings, 2 replies; 6+ messages in thread
From: Wang Chen @ 2009-03-25  9:56 UTC (permalink / raw)
  To: Tetsuo Handa; +Cc: mingo, linux-kernel, sfr

Wang Chen said the following on 2009-3-25 16:52:
> Wang Chen said the following on 2009-3-25 12:58:
>> Tetsuo Handa said the following on 2009-3-25 11:24:
>>> Hello.
>>>
>>> I encountered below error.
>>>
>>> arch/x86/mm/built-in.o(.init.text+0x1831): In function `early_ioremap_init':
>>> : undefined reference to `__this_fixmap_does_not_exist'
>>> make: *** [.tmp_vmlinux1] Error 1
>>>
>>> Config is at http://I-love.SAKURA.ne.jp/tmp/config-2.6.29-next-20090324
>>>
>> Tetsuo, I've tried the latest tip, it's OK.
>> I can't trigger the same problem as you do.
>> So I will try linux-next later.
>>
> 
> Tetsuo
> 
> I've "make" tested linux-next-20090324 with your config.
> Still can't trigger the error.
> It's strange :(
> 

Maybe we use different gcc versions.
Please try following patch.

From: Wang Chen <wangchen@cn.fujitsu.com>
Subject: [PATCH] use __fix_to_virt(), because we are sure it's safe

Commit:8827247ffcc9e880cbe4705655065cf011265157 used a variable(which would be
optimized to constant) as fix_to_virt()'s parameter.
It's depended on gcc's optimization and maybe failed on old gcc.

We can use __fix_to_vir() insteadly, because we know it's safe and don't need
link time error reporting.

Signed-off-by: Wang Chen <wangchen@cn.fujitsu.com>
Reported-by: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
---
 ioremap.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- arch/x86/mm/ioremap.c.orig	2009-03-25 17:36:01.000000000 +0800
+++ arch/x86/mm/ioremap.c	2009-03-25 17:36:54.000000000 +0800
@@ -523,7 +523,7 @@ void __init early_ioremap_init(void)
 		printk(KERN_INFO "early_ioremap_init()\n");
 
 	for (i = 0; i < FIX_BTMAPS_SLOTS; i++)
-		slot_virt[i] = fix_to_virt(FIX_BTMAP_BEGIN - NR_FIX_BTMAPS*i);
+		slot_virt[i] = __fix_to_virt(FIX_BTMAP_BEGIN - NR_FIX_BTMAPS*i);
 
 	pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN));
 	if (sizeof(bm_pte)) {


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

* Re: linux-next-20090324: undefined reference to `__this_fixmap_does_not_exist'
  2009-03-25  9:56     ` Wang Chen
@ 2009-03-25 11:40       ` Tetsuo Handa
  2009-03-25 13:09       ` [tip:x86/mm] x86: early_ioremap_init(), use __fix_to_virt(), because we are sure it's safe Wang Chen
  1 sibling, 0 replies; 6+ messages in thread
From: Tetsuo Handa @ 2009-03-25 11:40 UTC (permalink / raw)
  To: wangchen; +Cc: mingo, linux-kernel, sfr

Hello.

Wang Chen wrote:
> Maybe we use different gcc versions.
Yes. I'm using gcc 3.3 .

# gcc --version
gcc (GCC) 3.3.5 (Debian 1:3.3.5-13)
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

# make -sj2
arch/x86/mm/built-in.o(.init.text+0x1831): In function `early_ioremap_init':
: undefined reference to `__this_fixmap_does_not_exist'
make: *** [.tmp_vmlinux1] Error 1

> Please try following patch.
After applying that patch, this problem was solved.

Thank you.

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

* [tip:x86/mm] x86: early_ioremap_init(), use __fix_to_virt(), because we are sure it's safe
  2009-03-25  9:56     ` Wang Chen
  2009-03-25 11:40       ` linux-next-20090324: undefined reference to `__this_fixmap_does_not_exist' Tetsuo Handa
@ 2009-03-25 13:09       ` Wang Chen
  1 sibling, 0 replies; 6+ messages in thread
From: Wang Chen @ 2009-03-25 13:09 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: linux-kernel, hpa, mingo, tglx, wangchen, mingo, penguin-kernel

Commit-ID:  9f4f25c86ff2233dd98d4bd6968afb1ca66558a0
Gitweb:     http://git.kernel.org/tip/9f4f25c86ff2233dd98d4bd6968afb1ca66558a0
Author:     Wang Chen <wangchen@cn.fujitsu.com>
AuthorDate: Wed, 25 Mar 2009 14:07:11 +0100
Committer:  Ingo Molnar <mingo@elte.hu>
CommitDate: Wed, 25 Mar 2009 14:07:11 +0100

x86: early_ioremap_init(), use __fix_to_virt(), because we are sure it's safe

Tetsuo Handa reported this link bug:

 |  arch/x86/mm/built-in.o(.init.text+0x1831): In function `early_ioremap_init':
 |  : undefined reference to `__this_fixmap_does_not_exist'
 |  make: *** [.tmp_vmlinux1] Error 1

Commit:8827247ffcc9e880cbe4705655065cf011265157 used a variable (which
would be optimized to constant) as fix_to_virt()'s parameter.
It's depended on gcc's optimization and fails on old gcc. (Tetsuo used gcc 3.3)

We can use __fix_to_vir() instead, because we know it's safe and
don't need link time error reporting.

Reported-by: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Signed-off-by: Wang Chen <wangchen@cn.fujitsu.com>
Cc: sfr@canb.auug.org.au
LKML-Reference: <49C9FFEA.7060908@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>


---
 arch/x86/mm/ioremap.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
index 83ed74a..0dfa09d 100644
--- a/arch/x86/mm/ioremap.c
+++ b/arch/x86/mm/ioremap.c
@@ -516,7 +516,7 @@ void __init early_ioremap_init(void)
 		printk(KERN_INFO "early_ioremap_init()\n");
 
 	for (i = 0; i < FIX_BTMAPS_SLOTS; i++)
-		slot_virt[i] = fix_to_virt(FIX_BTMAP_BEGIN - NR_FIX_BTMAPS*i);
+		slot_virt[i] = __fix_to_virt(FIX_BTMAP_BEGIN - NR_FIX_BTMAPS*i);
 
 	pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN));
 	memset(bm_pte, 0, sizeof(bm_pte));

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

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

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-25  3:24 linux-next-20090324: undefined reference to `__this_fixmap_does_not_exist\' Tetsuo Handa
2009-03-25  4:58 ` Wang Chen
2009-03-25  8:52   ` Wang Chen
2009-03-25  9:56     ` Wang Chen
2009-03-25 11:40       ` linux-next-20090324: undefined reference to `__this_fixmap_does_not_exist' Tetsuo Handa
2009-03-25 13:09       ` [tip:x86/mm] x86: early_ioremap_init(), use __fix_to_virt(), because we are sure it's safe Wang Chen

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