diff --git a/ChangeLog b/ChangeLog index 375663f2c..bdb177d75 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-06-23 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. + 2009-06-22 Robert Millan * include/grub/i386/kernel.h: Include `'. diff --git a/kern/i386/realmode.S b/kern/i386/realmode.S index 075aa57e9..11f4d5347 100644 --- a/kern/i386/realmode.S +++ b/kern/i386/realmode.S @@ -1,6 +1,6 @@ /* * GRUB -- GRand Unified Bootloader - * Copyright (C) 1999,2000,2001,2002,2003,2005,2006,2007 Free Software Foundation, Inc. + * Copyright (C) 1999,2000,2001,2002,2003,2005,2006,2007,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 @@ -121,13 +121,9 @@ real_to_prot: cli /* load the GDT register */ -#ifdef APPLE_CC - mov %cs, %ax - mov %ax, %ds + xorw %ax, %ax + movw %ax, %ds DATA32 ADDR32 lgdt gdtdesc -#else - DATA32 ADDR32 lgdt %cs:gdtdesc -#endif /* turn on protected mode */ movl %cr0, %eax