tree 8d98ed612d6fb7648991529dd1c8700299047bce
parent 75e8727fbb3749075b6df36be636a3045ed9d515
author Ian Wienand <[EMAIL PROTECTED]> Wed, 20 Jul 2005 12:32:00 -0700
committer Tony Luck <[EMAIL PROTECTED]> Fri, 19 Aug 2005 04:10:41 -0700

[IA64] Simulator bootloader fails with gcc 4
After building a fresh tree with gcc 4 I can't boot the simulator as
the bootloader loader dies with 

loading /home/ianw/kerntest/kerncomp//build/sim_defconfig/vmlinux...
failed to read phdr

After some investigation I believe this is do with differences between
the alignment of variables on the stack between gcc 3 and 4 and the
ski simulator.  If you trace through with the simulator you can see
that the disk_stat structure value returned from the SSC_WAIT_COMPLETION
call seems to be only half loaded.  I guess it doesn't like the alignment
of the input.

Signed-off-by: Ian Wienand <[EMAIL PROTECTED]>
Signed-off-by: Tony Luck <[EMAIL PROTECTED]>

 arch/ia64/hp/sim/boot/bootloader.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/ia64/hp/sim/boot/bootloader.c 
--- a/arch/ia64/hp/sim/boot/bootloader.c
+++ b/arch/ia64/hp/sim/boot/bootloader.c
@@ -30,10 +30,14 @@ struct disk_req {
        unsigned len;
+/* SSC_WAIT_COMPLETION appears to want this large alignment.  gcc < 4
+ * seems to give it by default, however gcc > 4 is smarter and may
+ * not.
+ */
 struct disk_stat {
        int fd;
        unsigned count;
+} __attribute__ ((aligned (16)));
 extern void jmp_to_kernel (unsigned long bp, unsigned long e_entry);
 extern struct ia64_boot_param *sys_fw_init (const char *args, int arglen);
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to