]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
Apple fixes.
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Tue, 26 Jun 2012 12:56:28 +0000 (14:56 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Tue, 26 Jun 2012 12:56:28 +0000 (14:56 +0200)
* grub-core/lib/i386/relocator16.S: Use correct __APPLE__ and not
__APPLE_
* grub-core/lib/i386/relocator_common.S [__APPLE__]: Fix gdtdesc
definition.
* grub-core/lib/i386/relocator64.S [__APPLE__]: Assemble jmp manually.

ChangeLog
grub-core/lib/i386/relocator16.S
grub-core/lib/i386/relocator64.S
grub-core/lib/i386/relocator_common.S

index 61d686e07b7ea2807b4ad1c859abe10a0a793f5b..e9081361d7133e729c04818a9c61bbc032e9d133 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2012-06-26  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       Apple fixes.
+
+       * grub-core/lib/i386/relocator16.S: Use correct __APPLE__ and not
+       __APPLE_
+       * grub-core/lib/i386/relocator_common.S [__APPLE__]: Fix gdtdesc
+       definition.
+       * grub-core/lib/i386/relocator64.S [__APPLE__]: Assemble jmp manually.
+
 2012-06-26  Vladimir Serbinenko  <phcoder@gmail.com>
 
        Handle slash in HFS label.
index 0e2b341a76f1d6b2e5389a82a38c23649496326d..e79d875511c2d6355d7dc2e0c688cadfa6c3945b 100644 (file)
@@ -84,7 +84,7 @@ VARIABLE(grub_relocator16_start)
 
        movl    %esi, %eax
        shrl    $4, %eax
-#ifdef __APPLE_
+#ifdef __APPLE__
        LOCAL(segment_offset) = LOCAL (segment) - LOCAL (base)
        LOCAL(idt_offset) = LOCAL(relocator16_idt) - LOCAL (base)
        LOCAL(cont2_offset) = LOCAL (cont2) - LOCAL(base)
index bb086418ca55d52daf826fb745f24bddae4adb56..e4648d8183e39bb81b9c06e4b6595a6431ff92c5 100644 (file)
@@ -109,7 +109,12 @@ VARIABLE(grub_relocator64_rdx)
           payload and makes this implementation easier.  */
        cld
 
+#ifdef __APPLE__
+       .byte 0xff, 0x25
+       .quad 0
+#else
        jmp *LOCAL(jump_addr) (%rip)
+#endif
 
 LOCAL(jump_addr):
 VARIABLE(grub_relocator64_rip)
index 8fa95044f81b756966376630798ff0ea73f6d13c..b9d99e10e867fdb7ea083eaac51aa64a23c1f6e1 100644 (file)
@@ -58,7 +58,7 @@ LOCAL(cont0):
        LOCAL(jump_vector_offset) = LOCAL(jump_vector) - LOCAL(base)
        LOCAL(gdt_offset) = LOCAL(gdt) - LOCAL(base)
        LOCAL(gdt_addr_offset) = LOCAL(gdt_addr) - LOCAL(base)
-       LOCAL(gdtdesc_offset) = LOCAL(gdt_addr) - LOCAL(base)
+       LOCAL(gdtdesc_offset) = LOCAL(gdtdesc) - LOCAL(base)
 
        lea     LOCAL(cont1_offset) (RSI, 1), RAX
        movl    %eax, LOCAL(jump_vector_offset) (RSI, 1)