walters / rpms / ostree

Forked from rpms/ostree 6 years ago
Clone
Colin Walters c17b8d9
From 13ea6852c33caecaf64b43e0018536e5aa29eaca Mon Sep 17 00:00:00 2001
Colin Walters c17b8d9
From: Colin Walters <walters@verbum.org>
Colin Walters c17b8d9
Date: Thu, 2 Mar 2017 21:30:10 -0500
Colin Walters c17b8d9
Subject: [PATCH] grub2: Use "linux16" only on x86/x86_64
Colin Walters c17b8d9
Colin Walters c17b8d9
Got a report that a Fedora Atomic Host built for ppc64le didn't work with the
Colin Walters c17b8d9
`linux16`, it needed `linux`. See the comments for more links.
Colin Walters c17b8d9
---
Colin Walters c17b8d9
 src/libostree/ostree-bootloader-grub2.c | 30 ++++++++++++++++++++++++++++--
Colin Walters c17b8d9
 1 file changed, 28 insertions(+), 2 deletions(-)
Colin Walters c17b8d9
Colin Walters c17b8d9
diff --git a/src/libostree/ostree-bootloader-grub2.c b/src/libostree/ostree-bootloader-grub2.c
Colin Walters c17b8d9
index 0fbb098..e70517f 100644
Colin Walters c17b8d9
--- a/src/libostree/ostree-bootloader-grub2.c
Colin Walters c17b8d9
+++ b/src/libostree/ostree-bootloader-grub2.c
Colin Walters c17b8d9
@@ -29,6 +29,20 @@
Colin Walters c17b8d9
 
Colin Walters c17b8d9
 #include <string.h>
Colin Walters c17b8d9
 
Colin Walters c17b8d9
+/* I only did some cursory research here, but it appears
Colin Walters c17b8d9
+ * that we only want to use "linux16" for x86 platforms.
Colin Walters c17b8d9
+ * At least, I got a report that "linux16" is definitely wrong
Colin Walters c17b8d9
+ * for ppc64.  See
Colin Walters c17b8d9
+ * http://pkgs.fedoraproject.org/cgit/rpms/grub2.git/tree/0036-Use-linux16-when-appropriate-880840.patch?h=f25
Colin Walters c17b8d9
+ * https://bugzilla.redhat.com/show_bug.cgi?id=1108296
Colin Walters c17b8d9
+ * among others.
Colin Walters c17b8d9
+ */
Colin Walters c17b8d9
+#if defined(__i386__) || defined(__x86_64__)
Colin Walters c17b8d9
+#define GRUB2_USES_16 1
Colin Walters c17b8d9
+#else
Colin Walters c17b8d9
+#define GRUB2_USES_16 0
Colin Walters c17b8d9
+#endif
Colin Walters c17b8d9
+
Colin Walters c17b8d9
 struct _OstreeBootloaderGrub2
Colin Walters c17b8d9
 {
Colin Walters c17b8d9
   GObject       parent_instance;
Colin Walters c17b8d9
@@ -203,7 +217,13 @@ _ostree_bootloader_grub2_generate_config (OstreeSysroot                 *sysroot
Colin Walters c17b8d9
       if (is_efi)
Colin Walters c17b8d9
         g_string_append (output, "linuxefi ");
Colin Walters c17b8d9
       else
Colin Walters c17b8d9
-        g_string_append (output, "linux16 ");
Colin Walters c17b8d9
+        {
Colin Walters c17b8d9
+#if GRUB2_USES_16
Colin Walters c17b8d9
+          g_string_append (output, "linux16 ");
Colin Walters c17b8d9
+#else
Colin Walters c17b8d9
+          g_string_append (output, "linux ");
Colin Walters c17b8d9
+#endif
Colin Walters c17b8d9
+        }
Colin Walters c17b8d9
       g_string_append (output, kernel);
Colin Walters c17b8d9
 
Colin Walters c17b8d9
       options = ostree_bootconfig_parser_get (config, "options");
Colin Walters c17b8d9
@@ -220,7 +240,13 @@ _ostree_bootloader_grub2_generate_config (OstreeSysroot                 *sysroot
Colin Walters c17b8d9
           if (is_efi)
Colin Walters c17b8d9
             g_string_append (output, "initrdefi ");
Colin Walters c17b8d9
           else
Colin Walters c17b8d9
-            g_string_append (output, "initrd16 ");
Colin Walters c17b8d9
+            {
Colin Walters c17b8d9
+#if GRUB2_USES_16
Colin Walters c17b8d9
+              g_string_append (output, "initrd16 ");
Colin Walters c17b8d9
+#else
Colin Walters c17b8d9
+              g_string_append (output, "initrd ");
Colin Walters c17b8d9
+#endif
Colin Walters c17b8d9
+            }
Colin Walters c17b8d9
           g_string_append (output, initrd);
Colin Walters c17b8d9
           g_string_append_c (output, '\n');
Colin Walters c17b8d9
         }
Colin Walters c17b8d9
-- 
Colin Walters c17b8d9
2.9.3
Colin Walters c17b8d9