On Tue, Aug 16, 2005 at 03:46:47PM -0700, Luck, Tony wrote:
> And behind door number 3 is to fix the compiler ... but that also
> seems to be contentious (and doesn't help people who are already
> using gcc4).
I really wouldn't know where to start making the changes James
suggested, but if someone wants some help with running some benchmarks
or some hardware, I can help there.
> Is the simulator in error by only half loading when the structure
> is on a 4-byte boundary ... if so, then my 2nd choice would be to
> fix it there.
<squeaky wheel> HP, please give us the source for SKI </squeaky
wheel>. :)
> But ... since the fix is small, I could put it into the kernel
> as a last resort to get things working again. Do you really need
> to align(16)? Or would (8) do? A comment mentioning that this
> is a workaround for a compiler and/or simulator issue would be
> good.
It seems to want 16, 8 causes the same problem. Below includes a
small comment.
Thanks,
-i
diff --git a/arch/ia64/hp/sim/boot/bootloader.c
b/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 linux-ia64" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html