>>>>> "Stephane" == Stephane Eranian <[EMAIL PROTECTED]> writes:

Stephane> Hello, So I spent some time investigating the booloader
Stephane> problem with ski and gcc-4.0. I think I found the source of
Stephane> the problem. The fix from Ian is not solving the problem it
Stephane> is simply masking it.

Stephane> The real problem for the stat structure is that it gets
Stephane> overwritten by the mem[] array and not disk_req. I added
Stephane> some debug printf to the simulator and looked at the symbol
Stephane> table for the bootloader. The mem[] array is static.
Stephane> The disk_stat is allocated on the stack, I think. Now
Stephane> with gcc-4.0 the mem[] array overlaps the disk_stat!

Take a look at this code from boot_head.S:

    
    .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:

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

????

I can't run ski at present to check it (it segfaults immediately)

Peter C
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to