qemu, coreboot, multiboot: Change linking address to 0x9000.
authorVladimir Serbinenko <phcoder@gmail.com>
Wed, 30 Aug 2017 14:29:59 +0000 (16:29 +0200)
committerVladimir Serbinenko <phcoder@gmail.com>
Wed, 30 Aug 2017 14:29:59 +0000 (16:29 +0200)
It's common for distros to use a defective ld which links at 0x9000. Instead
of fighting it, just move link target to 0x9000.

grub-core/Makefile.core.def
include/grub/offsets.h

index 6edf682..d90ad62 100644 (file)
@@ -68,11 +68,11 @@ kernel = {
   i386_pc_ldflags          = '$(TARGET_IMG_LDFLAGS)';
   i386_pc_ldflags          = '$(TARGET_IMG_BASE_LDOPT),0x9000';
   i386_qemu_ldflags        = '$(TARGET_IMG_LDFLAGS)';
-  i386_qemu_ldflags        = '$(TARGET_IMG_BASE_LDOPT),0x8200';
+  i386_qemu_ldflags        = '$(TARGET_IMG_BASE_LDOPT),0x9000';
   i386_coreboot_ldflags    = '$(TARGET_IMG_LDFLAGS)';
-  i386_coreboot_ldflags    = '$(TARGET_IMG_BASE_LDOPT),0x8200';
+  i386_coreboot_ldflags    = '$(TARGET_IMG_BASE_LDOPT),0x9000';
   i386_multiboot_ldflags   = '$(TARGET_IMG_LDFLAGS)';
-  i386_multiboot_ldflags   = '$(TARGET_IMG_BASE_LDOPT),0x8200';
+  i386_multiboot_ldflags   = '$(TARGET_IMG_BASE_LDOPT),0x9000';
   i386_ieee1275_ldflags    = '$(TARGET_IMG_LDFLAGS)';
   i386_ieee1275_ldflags    = '$(TARGET_IMG_BASE_LDOPT),0x10000';
   i386_xen_ldflags         = '$(TARGET_IMG_LDFLAGS)';
index bf0689f..330e4c7 100644 (file)
@@ -50,7 +50,7 @@
 /* The offset of GRUB_CORE_ENTRY_ADDR.  */
 #define GRUB_KERNEL_I386_QEMU_CORE_ENTRY_ADDR  0x8
 
-#define GRUB_KERNEL_I386_QEMU_LINK_ADDR         0x8200
+#define GRUB_KERNEL_I386_QEMU_LINK_ADDR         0x9000
 
 /* The offset of GRUB_TOTAL_MODULE_SIZE.  */
 #define GRUB_KERNEL_SPARC64_IEEE1275_TOTAL_MODULE_SIZE 0x8
@@ -91,7 +91,7 @@
 
 #define GRUB_KERNEL_MIPS_ARC_TOTAL_MODULE_SIZE 0x08
 
-#define GRUB_KERNEL_I386_COREBOOT_LINK_ADDR    0x8200
+#define GRUB_KERNEL_I386_COREBOOT_LINK_ADDR    0x9000
 #define GRUB_KERNEL_I386_COREBOOT_MODULES_ADDR  0x100000
 
 #define GRUB_KERNEL_I386_IEEE1275_LINK_ADDR    0x10000