diff --git a/x11/babl/files/patch-babl_babl-cpuaccel.c b/x11/babl/files/patch-babl_babl-cpuaccel.c new file mode 100644 index 000000000000..65adc87df47c --- /dev/null +++ b/x11/babl/files/patch-babl_babl-cpuaccel.c @@ -0,0 +1,43 @@ +--- babl/babl-cpuaccel.c.orig 2022-06-28 12:20:06 UTC ++++ babl/babl-cpuaccel.c +@@ -556,33 +556,19 @@ arch_accel (void) + #include + #include + #include ++#include + + #define HAVE_ACCEL 1 + + static guint32 + arch_accel (void) + { +- /* TODO : add or hardcode the other ways it can be on arm, where +- * this info comes from the system and not from running cpu +- * instructions +- */ +- int has_neon = 0; +- int fd = open ("/proc/self/auxv", O_RDONLY); +- Elf32_auxv_t auxv; +- if (fd >= 0) +- { +- while (read (fd, &auxv, sizeof (Elf32_auxv_t)) == sizeof (Elf32_auxv_t)) +- { +- if (auxv.a_type == AT_HWCAP) +- { +- if (auxv.a_un.a_val & 4096) +- has_neon = 1; +- } +- } +- close (fd); +- } +- return has_neon?BABL_CPU_ACCEL_ARM_NEON:0; +-} ++ unsigned long hwcap = 0; ++ ++ elf_aux_info(AT_HWCAP, &hwcap, sizeof hwcap); ++ ++ return hwcap & HWCAP_NEON ? BABL_CPU_ACCEL_ARM_NEON : 0; ++} + + #endif /* ARCH_ARM */ +