2009-06-22 Robert Millan * kern/i386/pc/startup.S (real_to_prot): Access `gdtdesc' using segment 0x0 unconditionally, because the reference generated by GAS is an absolute address. Index: kern/i386/pc/startup.S =================================================================== --- kern/i386/pc/startup.S (revision 2353) +++ kern/i386/pc/startup.S (working copy) @@ -1,6 +1,6 @@ /* * GRUB -- GRand Unified Bootloader - * Copyright (C) 1999,2000,2001,2002,2003,2005,2006,2007,2008 Free Software Foundation, Inc. + * Copyright (C) 1999,2000,2001,2002,2003,2005,2006,2007,2008,2009 Free Software Foundation, Inc. * * GRUB is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -313,13 +313,9 @@ cli /* load the GDT register */ -#ifdef APPLE_CC - mov %cs, %ax - mov %ax, %ds - DATA32 ADDR32 lgdt gdtdesc -#else - DATA32 ADDR32 lgdt %cs:gdtdesc -#endif + xorw %ax, %ax + movw %ax, %ds + DATA32 ADDR32 lgdt %ds:gdtdesc /* turn on protected mode */ movl %cr0, %eax