On Saturday 09 July 2005 12:40, Blaisorblade wrote:
> On Friday 08 July 2005 12:29, antoine wrote:
> >
> > Don't know if you're interested in this report but it does not build for
> > x86_64:
> >   SYMLINK arch/um/sys-x86_64/semaphore.c
> >   CC      arch/um/sys-x86_64/semaphore.o
> >   CC      arch/um/sys-x86_64/sigcontext.o
> >   CC      arch/um/sys-x86_64/signal.o
> > arch/um/sys-x86_64/signal.c: In function ‘setup_signal_stack_si’:
> > arch/um/sys-x86_64/signal.c:171: error: invalid lvalue in assignment
> > make[1]: *** [arch/um/sys-x86_64/signal.o] Error 1
> > make: *** [arch/um/sys-x86_64] Error 2
>
> I remember this report, only I just suggested the fix and didn't post it
> (was busy at that time). It's SKAS0 - unrelated I think (I may be wrong,
> but the whole patchset does not include it) but triggered by GCC4.
Please keep remembering I *am* stupid, as just noted by Russell King (ARM 
maintainer) :-(.

The attached patch makes more sense... however it seems that the affected code 
is anyway buggy, so I hope Jeff will help fixing this (unless I get to 
understand this magically).
-- 
Inform me of my mistakes, so I can keep imitating Homer Simpson's "Doh!".
Paolo Giarrusso, aka Blaisorblade (Skype ID "PaoloGiarrusso", ICQ 215621894)
http://www.user-mode-linux.org/~blaisorblade
This is refused by GCC 4, so here's the fix.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <[EMAIL PROTECTED]>
---

 vanilla-linux-2.6.12-paolo/arch/um/sys-x86_64/signal.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

diff -puN arch/um/sys-x86_64/signal.c~uml-fix-for-gcc4-lvalue arch/um/sys-x86_64/signal.c
--- vanilla-linux-2.6.12/arch/um/sys-x86_64/signal.c~uml-fix-for-gcc4-lvalue	2005-07-11 23:23:27.000000000 +0200
+++ vanilla-linux-2.6.12-paolo/arch/um/sys-x86_64/signal.c	2005-07-11 23:23:41.000000000 +0200
@@ -168,7 +168,7 @@ int setup_signal_stack_si(unsigned long 
 
 	frame = (struct rt_sigframe __user *)
 		round_down(stack_top - sizeof(struct rt_sigframe), 16) - 8;
-	((unsigned char *) frame) -= 128;
+	frame -= 128 / sizeof(*frame);
 
 	if (!access_ok(VERIFY_WRITE, fp, sizeof(struct _fpstate)))
 		goto out;
_

Reply via email to