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