diff --git a/ChangeLog b/ChangeLog index 2e6fde625..83322bb10 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-06-04 Vladimir Serbinenko + + * kern/i386/pc/startup.S [APPLE_CC]: block of nops to + compensate a compiler bug + 2009-06-04 Vladimir Serbinenko * include/grub/term.h (GRUB_TERM_BACKSPACE): explicitely define as 8 diff --git a/kern/i386/pc/startup.S b/kern/i386/pc/startup.S index 6cdc79a1d..cd323125f 100644 --- a/kern/i386/pc/startup.S +++ b/kern/i386/pc/startup.S @@ -1120,6 +1120,17 @@ FUNCTION(grub_get_mmap_entry) xnosmap: xorl %ecx, %ecx +/* Apple's cc jumps few bytes before the correct + label in this context. Hence nops. */ +#ifdef APPLE_CC + nop + nop + nop + nop + nop + nop +#endif + xsmap: DATA32 call real_to_prot .code32