Peter,

> 
>     
>     .bss
>     .align 16
> stack_mem:
>     .skip 16834
> 
> GLOBAL_ENTRY(_start)
>       .prologue
>       .save rp, r0
>       .body
>       movl gp = __gp
>       movl sp = stack_mem
>       bsw.1
>       br.call.sptk.many rp=start_bootloader
> END(_start)
> 
> Doesn't the stack grow downwards on IA64? Shouldn't that be something
> like:

The memory stack grows down, the RBS grows up.

> 
>       .bss
>       .align 16
> rbs_mem:
>       skip 18384-16
> stack_mem:
>       skip 16
> 
> ????
> 
Ok, this change seems to work for both gcc-4.0 and gcc-3.3.5. So what this is 
saying
is that we got lucky with the older compilers that the variables were somehow 
laid out
slightly differently on the stack.

> I can't run ski at present to check it (it segfaults immediately)
> 
Well, that will be the next thing I need to check. It dies on both IA64 and 
I386?

The attached patch fixes the bootloader problem for me.

-- 

-Stephane
--- arch/ia64/hp/sim/boot/boot_head.S.orig      2005-08-19 16:40:20.000000000 
-0700
+++ arch/ia64/hp/sim/boot/boot_head.S   2005-08-19 16:40:25.000000000 -0700
@@ -7,8 +7,10 @@

        .bss
        .align 16
+rbs_mem:
+       .skip 18384-16
 stack_mem:
-       .skip 16834
+       .skip 16

        .text

Reply via email to