1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-30 00:20:08 +00:00

libdnf: Fix arm arch mapping issues for qemuarmv5

qemuarmv5 currently fails with:

$ dnf --help
Error: Incorrect or unknown "arch": armv5hl

Fix this by removing the code in libdnf which is trying to be too
clever, we don't need this mappings given the way OE configures rpm.

(From OE-Core rev: 7d620c754c92da9dcc56a0a7ec9f3355c2ba733e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2023-11-09 10:29:31 +00:00
parent e81981e317
commit 36cb71bf95
2 changed files with 43 additions and 0 deletions
@@ -0,0 +1,42 @@
We change the way rpm architectures work, we make the machine name the default machine
specific package architecture.
This arm mapping code can work or in the case of qemuarmv5, it doesn't as it creates
armv5hl which doesn't exist and causes errrors. We can simply remove it, we don't need it.
Upstream-Status: Inappropriate [Relies on OE rpm config]
Index: git/libdnf/hy-util.cpp
===================================================================
--- git.orig/libdnf/hy-util.cpp
+++ git/libdnf/hy-util.cpp
@@ -117,29 +117,6 @@ hy_detect_arch(char **arch)
if (uname(&un) < 0)
return DNF_ERROR_FAILED;
- if (!strncmp(un.machine, "armv", 4)) {
- /* un.machine is armvXE, where X is version number and E is
- * endianness (b or l); we need to add modifiers such as
- * h (hardfloat), n (neon). Neon is a requirement of armv8 so
- * as far as rpm is concerned armv8l is the equivilent of armv7hnl
- * (or 7hnb) so we don't explicitly add 'n' for 8+ as it's expected. */
- char endian = un.machine[strlen(un.machine)-1];
- char *modifier = un.machine + 5;
- while(isdigit(*modifier)) /* keep armv7, armv8, armv9, armv10, armv100, ... */
- modifier++;
- if (getauxval(AT_HWCAP) & HWCAP_ARM_VFP)
- *modifier++ = 'h';
- if ((atoi(un.machine+4) == 7) && (getauxval(AT_HWCAP) & HWCAP_ARM_NEON))
- *modifier++ = 'n';
- *modifier++ = endian;
- *modifier = 0;
- }
-#ifdef __MIPSEL__
- if (!strcmp(un.machine, "mips"))
- strcpy(un.machine, "mipsel");
- else if (!strcmp(un.machine, "mips64"))
- strcpy(un.machine, "mips64el");
-#endif
*arch = g_strdup(un.machine);
return 0;
}
@@ -10,6 +10,7 @@ SRC_URI = "git://github.com/rpm-software-management/libdnf;branch=dnf-4-master;p
file://0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch \
file://enable_test_data_dir_set.patch \
file://0001-drop-FindPythonInstDir.cmake.patch \
file://armarch.patch \
"
SRCREV = "908dba63c9e18c86a2d81166ce7523559e65338c"