From 2426c2a066e44f4d9a342585e76cdbdb0a8a2db1 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 23 Oct 2019 20:22:19 +0100 Subject: [PATCH] Revert "Improve ARM detection" This reverts commit 8c3a7b8fa92b49a811fe36b60857b12f5d7db8a8. This is the final piece in fixing rhbz 1691430. It's a clean revert so let's do that for F-31 and we can discuss the details later. Signed-off-by: Peter Robinson --- lib/rpmrc.c | 37 +++++++++---------------------------- 1 file changed, 9 insertions(+), 28 deletions(-) diff --git a/lib/rpmrc.c b/lib/rpmrc.c index 0806e1b07..cada3f788 100644 --- a/lib/rpmrc.c +++ b/lib/rpmrc.c @@ -82,7 +82,6 @@ struct rpmOption { static struct rpmat_s { const char *platform; uint64_t hwcap; - uint64_t hwcap2; } rpmat; typedef struct defaultEntry_s { @@ -951,9 +950,6 @@ static int is_geode(void) #if defined(__linux__) -#ifndef AT_HWCAP2 /* glibc < 2.18 */ -#define AT_HWCAP2 26 -#endif /** * Populate rpmat structure with auxv values */ @@ -967,7 +963,6 @@ static void read_auxv(void) if (!rpmat.platform) rpmat.platform = ""; rpmat.hwcap = getauxval(AT_HWCAP); - rpmat.hwcap2 = getauxval(AT_HWCAP2); #else rpmat.platform = ""; int fd = open("/proc/self/auxv", O_RDONLY); @@ -989,9 +984,6 @@ static void read_auxv(void) case AT_HWCAP: rpmat.hwcap = auxv.a_un.a_val; break; - case AT_HWCAP2: - rpmat.hwcap2 = auxv.a_un.a_val; - break; } } close(fd); @@ -1225,27 +1217,16 @@ static void defaultMachine(rpmrcCtx ctx, const char ** arch, const char ** os) # if !defined(HWCAP_ARM_VFPv3) # define HWCAP_ARM_VFPv3 (1 << 13) # endif -# if !defined(HWCAP2_AES) -# define HWCAP2_AES (1 << 0) -# endif - /* - * un.machine is armvXE, where X is version number and E is - * endianness (b or l) - */ - if (rstreqn(un.machine, "armv", 4)) { - char endian = un.machine[strlen(un.machine)-1]; - char *modifier = un.machine + 5; - /* keep armv7, armv8, armv9, armv10, ... */ - while(risdigit(*modifier)) - modifier++; - if (rpmat.hwcap & HWCAP_ARM_VFPv3) - *modifier++ = 'h'; - if (rpmat.hwcap2 & HWCAP2_AES) - *modifier++ = 'c'; + if (rstreq(un.machine, "armv7l")) { + if (rpmat.hwcap & HWCAP_ARM_VFPv3) { if (rpmat.hwcap & HWCAP_ARM_NEON) - *modifier++ = 'n'; - *modifier++ = endian; - *modifier++ = 0; + strcpy(un.machine, "armv7hnl"); + else + strcpy(un.machine, "armv7hl"); + } + } else if (rstreq(un.machine, "armv6l")) { + if (rpmat.hwcap & HWCAP_ARM_VFP) + strcpy(un.machine, "armv6hl"); } # endif /* arm*-linux */ -- 2.23.0