xref: /openbmc/openbmc/poky/meta/recipes-devtools/libdnf/libdnf/armarch.patch (revision 8460358c3d24c71d9d38fd126c745854a6301564)
1*8460358cSPatrick WilliamsFrom baf4fc9f157e4c08c67d1a577b0f1e10f213a642 Mon Sep 17 00:00:00 2001
2b58112e5SPatrick WilliamsFrom: Richard Purdie <richard.purdie@linuxfoundation.org>
3b58112e5SPatrick WilliamsDate: Thu, 9 Nov 2023 10:29:31 +0000
4b58112e5SPatrick WilliamsSubject: [PATCH] libdnf: Fix arm arch mapping issues for qemuarmv5
5b58112e5SPatrick Williams
6ac13d5f3SPatrick WilliamsWe change the way rpm architectures work, we make the machine name the default machine
7ac13d5f3SPatrick Williamsspecific package architecture.
8ac13d5f3SPatrick Williams
9ac13d5f3SPatrick WilliamsThis arm mapping code can work or in the case of qemuarmv5, it doesn't as it creates
10ac13d5f3SPatrick Williamsarmv5hl which doesn't exist and causes errrors. We can simply remove it, we don't need it.
11ac13d5f3SPatrick Williams
12ac13d5f3SPatrick WilliamsUpstream-Status: Inappropriate [Relies on OE rpm config]
13b58112e5SPatrick Williams---
14b58112e5SPatrick Williams libdnf/hy-util.cpp | 23 -----------------------
15b58112e5SPatrick Williams 1 file changed, 23 deletions(-)
16ac13d5f3SPatrick Williams
17b58112e5SPatrick Williamsdiff --git a/libdnf/hy-util.cpp b/libdnf/hy-util.cpp
18b58112e5SPatrick Williamsindex 9978c8e9..aa1369b6 100644
19b58112e5SPatrick Williams--- a/libdnf/hy-util.cpp
20b58112e5SPatrick Williams+++ b/libdnf/hy-util.cpp
21ac13d5f3SPatrick Williams@@ -117,29 +117,6 @@ hy_detect_arch(char **arch)
22ac13d5f3SPatrick Williams     if (uname(&un) < 0)
23ac13d5f3SPatrick Williams         return DNF_ERROR_FAILED;
24ac13d5f3SPatrick Williams
25ac13d5f3SPatrick Williams-    if (!strncmp(un.machine, "armv", 4)) {
26ac13d5f3SPatrick Williams-        /* un.machine is armvXE, where X is version number and E is
27ac13d5f3SPatrick Williams-         * endianness (b or l); we need to add modifiers such as
28ac13d5f3SPatrick Williams-         * h (hardfloat), n (neon). Neon is a requirement of armv8 so
29ac13d5f3SPatrick Williams-         * as far as rpm is concerned armv8l is the equivilent of armv7hnl
30ac13d5f3SPatrick Williams-         * (or 7hnb) so we don't explicitly add 'n' for 8+ as it's expected. */
31ac13d5f3SPatrick Williams-        char endian = un.machine[strlen(un.machine)-1];
32ac13d5f3SPatrick Williams-        char *modifier = un.machine + 5;
33ac13d5f3SPatrick Williams-        while(isdigit(*modifier)) /* keep armv7, armv8, armv9, armv10, armv100, ... */
34ac13d5f3SPatrick Williams-            modifier++;
35ac13d5f3SPatrick Williams-        if (getauxval(AT_HWCAP) & HWCAP_ARM_VFP)
36ac13d5f3SPatrick Williams-            *modifier++ = 'h';
37ac13d5f3SPatrick Williams-        if ((atoi(un.machine+4) == 7) && (getauxval(AT_HWCAP) & HWCAP_ARM_NEON))
38ac13d5f3SPatrick Williams-            *modifier++ = 'n';
39ac13d5f3SPatrick Williams-        *modifier++ = endian;
40ac13d5f3SPatrick Williams-        *modifier = 0;
41ac13d5f3SPatrick Williams-    }
42ac13d5f3SPatrick Williams-#ifdef __MIPSEL__
43ac13d5f3SPatrick Williams-    if (!strcmp(un.machine, "mips"))
44ac13d5f3SPatrick Williams-        strcpy(un.machine, "mipsel");
45ac13d5f3SPatrick Williams-    else if (!strcmp(un.machine, "mips64"))
46ac13d5f3SPatrick Williams-        strcpy(un.machine, "mips64el");
47ac13d5f3SPatrick Williams-#endif
48ac13d5f3SPatrick Williams     *arch = g_strdup(un.machine);
49ac13d5f3SPatrick Williams     return 0;
50ac13d5f3SPatrick Williams }
51