flatpak-builder/0001-Add-back-accidentally-lost-flatpak_get_kernel_arch.patch

71 lines
1.6 KiB
Diff

From d69db55cae7206b032c6a787ca41603e0c8358ac Mon Sep 17 00:00:00 2001
From: Kalev Lember <klember@redhat.com>
Date: Mon, 4 Sep 2017 12:18:22 +0200
Subject: [PATCH] Add back accidentally lost flatpak_get_kernel_arch
This fixes the build on ppc64le and various other arches.
diff --git a/src/builder-flatpak-utils.c b/src/builder-flatpak-utils.c
index da09eb8..ee4bd18 100644
--- a/src/builder-flatpak-utils.c
+++ b/src/builder-flatpak-utils.c
@@ -201,6 +201,55 @@ flatpak_path_match_prefix (const char *pattern,
return NULL; /* Should not be reached */
}
+static const char *
+flatpak_get_kernel_arch (void)
+{
+ static struct utsname buf;
+ static char *arch = NULL;
+ char *m;
+
+ if (arch != NULL)
+ return arch;
+
+ if (uname (&buf))
+ {
+ arch = "unknown";
+ return arch;
+ }
+
+ /* By default, just pass on machine, good enough for most arches */
+ arch = buf.machine;
+
+ /* Override for some arches */
+
+ m = buf.machine;
+ /* i?86 */
+ if (strlen (m) == 4 && m[0] == 'i' && m[2] == '8' && m[3] == '6')
+ {
+ arch = "i386";
+ }
+ else if (g_str_has_prefix (m, "arm"))
+ {
+ if (g_str_has_suffix (m, "b"))
+ arch = "armeb";
+ else
+ arch = "arm";
+ }
+ else if (strcmp (m, "mips") == 0)
+ {
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+ arch = "mipsel";
+#endif
+ }
+ else if (strcmp (m, "mips64") == 0)
+ {
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+ arch = "mips64el";
+#endif
+ }
+
+ return arch;
+}
/* This maps the kernel-reported uname to a single string representing
* the cpu family, in the sense that all members of this family would
--
2.13.0