2006-08-31 08:15:39

by Jesper Juhl

[permalink] [raw]
Subject: 2.6.18-rc5-git3 build error on i386 - include/asm/spinlock.h

2.6.18-rc5-git2 builds just fine, but with -git3 I get the following :

CHK include/linux/version.h
CHK include/linux/utsrelease.h
CC arch/i386/kernel/asm-offsets.s
In file included from include/linux/spinlock.h:86,
from include/linux/capability.h:45,
from include/linux/sched.h:44,
from include/linux/module.h:9,
from include/linux/crypto.h:20,
from arch/i386/kernel/asm-offsets.c:7:
include/asm/spinlock.h: In function `__raw_read_lock':
include/asm/spinlock.h:164: error: syntax error before ')' token
include/asm/spinlock.h: In function `__raw_write_lock':
include/asm/spinlock.h:169: error: called object is not a function
include/asm/spinlock.h:169: warning: left-hand operand of comma
expression has no effect
include/asm/spinlock.h:169: warning: left-hand operand of comma
expression has no effect
include/asm/spinlock.h:169: error: syntax error before ')' token
make[1]: *** [arch/i386/kernel/asm-offsets.s] Error 1
make: *** [prepare0] Error 2

Let me know if there's any additional info you need or patches you
want me to test.

--
Jesper Juhl <[email protected]>
Don't top-post http://www.catb.org/~esr/jargon/html/T/top-post.html
Plain text mails only, please http://www.expita.com/nomime.html


2006-08-31 09:43:53

by Rolf Eike Beer

[permalink] [raw]
Subject: Re: 2.6.18-rc5-git3 build error on i386 - include/asm/spinlock.h

Jesper Juhl wrote:
> 2.6.18-rc5-git2 builds just fine, but with -git3 I get the following :
>
> CHK include/linux/version.h
> CHK include/linux/utsrelease.h
> CC arch/i386/kernel/asm-offsets.s
> In file included from include/linux/spinlock.h:86,
> from include/linux/capability.h:45,
> from include/linux/sched.h:44,
> from include/linux/module.h:9,
> from include/linux/crypto.h:20,
> from arch/i386/kernel/asm-offsets.c:7:
> include/asm/spinlock.h: In function `__raw_read_lock':
> include/asm/spinlock.h:164: error: syntax error before ')' token
> include/asm/spinlock.h: In function `__raw_write_lock':
> include/asm/spinlock.h:169: error: called object is not a function
> include/asm/spinlock.h:169: warning: left-hand operand of comma
> expression has no effect
> include/asm/spinlock.h:169: warning: left-hand operand of comma
> expression has no effect
> include/asm/spinlock.h:169: error: syntax error before ')' token
> make[1]: *** [arch/i386/kernel/asm-offsets.s] Error 1
> make: *** [prepare0] Error 2
>
> Let me know if there's any additional info you need or patches you
> want me to test.

revert commit 8c74932779fc6f61b4c30145863a17125c1a296c

Author: Andi Kleen <[email protected]> Wed, 30 Aug 2006 19:37:14 +0200

[PATCH] i386: Remove alternative_smp

Eike


Attachments:
(No filename) (1.35 kB)
(No filename) (189.00 B)
Download all attachments

2006-08-31 09:52:13

by Jesper Juhl

[permalink] [raw]
Subject: Re: 2.6.18-rc5-git3 build error on i386 - include/asm/spinlock.h

On 31/08/06, Rolf Eike Beer <[email protected]> wrote:
> Jesper Juhl wrote:
> > 2.6.18-rc5-git2 builds just fine, but with -git3 I get the following :
> >
> > CHK include/linux/version.h
> > CHK include/linux/utsrelease.h
> > CC arch/i386/kernel/asm-offsets.s
> > In file included from include/linux/spinlock.h:86,
> > from include/linux/capability.h:45,
> > from include/linux/sched.h:44,
> > from include/linux/module.h:9,
> > from include/linux/crypto.h:20,
> > from arch/i386/kernel/asm-offsets.c:7:
> > include/asm/spinlock.h: In function `__raw_read_lock':
> > include/asm/spinlock.h:164: error: syntax error before ')' token
> > include/asm/spinlock.h: In function `__raw_write_lock':
> > include/asm/spinlock.h:169: error: called object is not a function
> > include/asm/spinlock.h:169: warning: left-hand operand of comma
> > expression has no effect
> > include/asm/spinlock.h:169: warning: left-hand operand of comma
> > expression has no effect
> > include/asm/spinlock.h:169: error: syntax error before ')' token
> > make[1]: *** [arch/i386/kernel/asm-offsets.s] Error 1
> > make: *** [prepare0] Error 2
> >
> > Let me know if there's any additional info you need or patches you
> > want me to test.
>
> revert commit 8c74932779fc6f61b4c30145863a17125c1a296c
>
> Author: Andi Kleen <[email protected]> Wed, 30 Aug 2006 19:37:14 +0200
>
> [PATCH] i386: Remove alternative_smp
>

Thanks.

--
Jesper Juhl <[email protected]>
Don't top-post http://www.catb.org/~esr/jargon/html/T/top-post.html
Plain text mails only, please http://www.expita.com/nomime.html

2006-08-31 17:53:18

by Linus Torvalds

[permalink] [raw]
Subject: Re: 2.6.18-rc5-git3 build error on i386 - include/asm/spinlock.h



On Thu, 31 Aug 2006, Jesper Juhl wrote:
>
> 2.6.18-rc5-git2 builds just fine, but with -git3 I get the following :

Yes, it was broken by a recent patch by Andi. It should be ok again now in
my git tree.

For non-git users, here's the patch that should matter.

Linus

----
commit 22db37ec5fd51b0c77b1dd5751b1cdc2672c08d6
Author: Chris Wright <[email protected]>
Date: Thu Aug 31 00:53:22 2006 -0700

[PATCH] i386: rwlock.h fix smp alternatives fix

Commit 8c74932779fc6f61b4c30145863a17125c1a296c ("i386: Remove
alternative_smp") did not actually compile on x86 with CONFIG_SMP.

This fixes the __build_read/write_lock helpers. I've boot tested on
SMP.

[ Andi: "Oops, I think that was a quilt unrefreshed patch. Sorry. I
fixed those before testing, but then still send out the old patch." ]

Signed-off-by: Chris Wright <[email protected]>
Cc: Gerd Hoffmann <[email protected]>
Acked-by: Andi Kleen <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>

diff --git a/include/asm-i386/rwlock.h b/include/asm-i386/rwlock.h
index 3ac1ba9..87c069c 100644
--- a/include/asm-i386/rwlock.h
+++ b/include/asm-i386/rwlock.h
@@ -21,21 +21,21 @@ #define RW_LOCK_BIAS 0x01000000
#define RW_LOCK_BIAS_STR "0x01000000"

#define __build_read_lock_ptr(rw, helper) \
- asm volatile(LOCK_PREFIX " ; subl $1,(%0)\n\t" \
+ asm volatile(LOCK_PREFIX " subl $1,(%0)\n\t" \
"jns 1f\n" \
"call " helper "\n\t" \
"1:\n" \
- :"a" (rw) : "memory")
+ ::"a" (rw) : "memory")

#define __build_read_lock_const(rw, helper) \
- asm volatile(LOCK_PREFIX " ; subl $1,%0\n\t" \
+ asm volatile(LOCK_PREFIX " subl $1,%0\n\t" \
"jns 1f\n" \
"pushl %%eax\n\t" \
"leal %0,%%eax\n\t" \
"call " helper "\n\t" \
"popl %%eax\n\t" \
- "1:\n" : \
- "+m" (*(volatile int *)rw) : : "memory")
+ "1:\n" \
+ :"+m" (*(volatile int *)rw) : : "memory")

#define __build_read_lock(rw, helper) do { \
if (__builtin_constant_p(rw)) \
@@ -45,23 +45,21 @@ #define __build_read_lock(rw, helper) do
} while (0)

#define __build_write_lock_ptr(rw, helper) \
- asm volatile(LOCK_PREFIX " ; subl $" RW_LOCK_BIAS_STR ",(%0)\n\t" \
+ asm volatile(LOCK_PREFIX " subl $" RW_LOCK_BIAS_STR ",(%0)\n\t" \
"jz 1f\n" \
"call " helper "\n\t" \
- "1:\n", \
- "subl $" RW_LOCK_BIAS_STR ",(%0)\n\t", \
- :"a" (rw) : "memory")
+ "1:\n" \
+ ::"a" (rw) : "memory")

#define __build_write_lock_const(rw, helper) \
- asm volatile(LOCK_PREFIX " ; subl $" RW_LOCK_BIAS_STR ",%0\n\t" \
+ asm volatile(LOCK_PREFIX " subl $" RW_LOCK_BIAS_STR ",%0\n\t" \
"jz 1f\n" \
"pushl %%eax\n\t" \
"leal %0,%%eax\n\t" \
"call " helper "\n\t" \
"popl %%eax\n\t" \
- "1:\n", \
- "subl $" RW_LOCK_BIAS_STR ",%0\n\t", \
- "+m" (*(volatile int *)rw) : : "memory")
+ "1:\n" \
+ :"+m" (*(volatile int *)rw) : : "memory")

#define __build_write_lock(rw, helper) do { \
if (__builtin_constant_p(rw)) \