200-darwin_fixes.patch 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. --- a/stage2/asm.S
  2. +++ b/stage2/asm.S
  3. @@ -95,14 +95,16 @@ VARIABLE(stage2_id)
  4. VARIABLE(force_lba)
  5. .byte 0
  6. VARIABLE(version_string)
  7. - .string VERSION
  8. + .ascii VERSION
  9. + .byte 0
  10. VARIABLE(config_file)
  11. #ifndef STAGE1_5
  12. - .string "/boot/grub/menu.lst"
  13. + .ascii "/boot/grub/menu.lst"
  14. #else /* STAGE1_5 */
  15. .long 0xffffffff
  16. - .string "/boot/grub/stage2"
  17. + .ascii "/boot/grub/stage2"
  18. #endif /* STAGE1_5 */
  19. + .byte 0
  20. /*
  21. * Leave some breathing room for the config file name.
  22. @@ -762,7 +764,9 @@ ENTRY(chain_stage1)
  23. call EXT_C(prot_to_real)
  24. .code16
  25. -#ifdef ABSOLUTE_WITHOUT_ASTERISK
  26. +#ifdef __APPLE__
  27. + DATA32 ADDR32 ljmp offset
  28. +#elif defined(ABSOLUTE_WITHOUT_ASTERISK)
  29. DATA32 ADDR32 ljmp (offset)
  30. #else
  31. DATA32 ADDR32 ljmp *(offset)
  32. --- a/stage2/char_io.c
  33. +++ b/stage2/char_io.c
  34. @@ -1345,5 +1345,12 @@ grub_strcpy (char *dest, const char *src
  35. #ifndef GRUB_UTIL
  36. # undef memcpy
  37. /* GCC emits references to memcpy() for struct copies etc. */
  38. +#ifdef __APPLE__
  39. +void *memcpy (void *dest, const void *src, int n)
  40. +{
  41. + return grub_memmove(dest, src, n);
  42. +}
  43. +#else
  44. void *memcpy (void *dest, const void *src, int n) __attribute__ ((alias ("grub_memmove")));
  45. #endif
  46. +#endif