| To: | linux-mips@linux-mips.org |
|---|---|
| Subject: | Error: symbol `__pastwait' is already defined |
| From: | Wu Zhangjin <wuzhangjin@gmail.com> |
| Date: | Sat, 13 Jun 2009 15:58:42 +0800 |
| Cc: | Ralf Baechle <ralf@linux-mips.org> |
| Dkim-signature: | v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:subject:from:reply-to:to:cc :content-type:organization:date:message-id:mime-version:x-mailer :content-transfer-encoding; bh=+wUAP1qxsmjRHfrd1WXERFpAaPrmAf55e1r+0ahu+mc=; b=XON6xm3s5B9KjykT/fTbt4nRP19jaxxkbDaSdzJ6J5M6Yefrw8quxtDho8/NhQ7Ujq 8J/1JSE+5cSP59kkk6/Wr/SBF+spr/xqJNZrtjLH5PvCJUxe2DC+0eAhysMDM89BYGfv 4JpvJpi42bO7LkvETAl3R5z4kBuJABtz7lZTA= |
| Domainkey-signature: | a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=subject:from:reply-to:to:cc:content-type:organization:date :message-id:mime-version:x-mailer:content-transfer-encoding; b=w3sGQUNo4pt0IvYwRSi2+DHkkyLmKP1LD9sixjxz3sfa/kerdavs/3LPRwsehGUC6K vmJQkCYvEueBzKWABv4Qz3PzebhS1HMhs0LP9FNqBL2M3vyarVc1N13XFxEic1QjPTin AKQLId9+3peZzttyLJztJRlEaEcorGlhoy6dc= |
| Organization: | DSLab, Lanzhou University, China |
| Original-recipient: | rfc822;linux-mips@linux-mips.org |
| Reply-to: | wuzhangjin@gmail.com |
| Sender: | linux-mips-bounce@linux-mips.org |
Hi,
there is a guy reported a compiling problem in linux-2.6.29:
[...]
CC arch/mips/kernel/cpu-probe.o
{standard input}: Assembler messages:
{standard input}:3939: Error: symbol `__pastwait' is already defined
make[1]: *** [arch/mips/kernel/cpu-probe.o] Error 1
make: *** [arch/mips/kernel] Error 2
Seems I met this problem before, perhaps here is the reason:
arch/mips/kernel/cpu-probe.c:
void r4k_wait_irqoff(void)
{
local_irq_disable();
if (!need_resched())
__asm__(" .set push \n"
" .set mips3 \n"
" wait \n"
" .set pop \n");
local_irq_enable();
__asm__(" .globl __pastwait \n"
"__pastwait: \n");
return;
}
there is a global symbol __pastwait defined at the end of
r4k_wait_irqoff, if r4k_wait_irqoff is called more than one time, the
__pastwait will be multi-defined. so, need to be fixed. does this fix
it?
arch/mips/kernel/cpu-probe.c:
void r4k_wait_irqoff(void)
{
local_irq_disable();
if (!need_resched())
__asm__(" .set push \n"
" .set mips3 \n"
" wait \n"
" .set pop \n");
local_irq_enable();
return;
}
/* a dumy funciton for marking the end of r4k_wait_irqoff */
void __pastwait(void)
{
;
}
but I am not sure the gcc compiler will tune the position of the
r4k_wait_irqoff and __pastwait or not, so seems not safe. perhaps we
should change something else instead.
perhaps we should tune the __pastwait solution directly, just spark it,
not look into it yet, seems __pastwait is only used here:
arch/mips/kernel/smtc.c:
smtc_send_ipi:
if (cpu_wait == r4k_wait_irqoff) {
tcrestart = read_tc_c0_tcrestart();
if (tcrestart >= (unsigned long)r4k_wait_irqoff
&& tcrestart < (unsigned long)__pastwait) {
write_tc_c0_tcrestart(__pastwait);
tcstatus &= ~TCSTATUS_IXMT;
write_tc_c0_tcstatus(tcstatus);
goto postdirect;
}
}
best wishes,
Wu Zhangjin
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: MIPS: Sibyte: Remove irritating printk from set_affinity, Ralf Baechle |
|---|---|
| Next by Date: | Re: [PATCH 1/8] add lib/gcd.c, James Cloos |
| Previous by Thread: | smtc support, Anoop P A |
| Next by Thread: | Re: Error: symbol `__pastwait' is already defined, Kevin D. Kissell |
| Indexes: | [Date] [Thread] [Top] [All Lists] |