git: bb0f1da1920c - main - x11/babl: fix build on armv7
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 30 Jun 2022 21:45:36 UTC
The branch main has been updated by fluffy:
URL: https://cgit.FreeBSD.org/ports/commit/?id=bb0f1da1920c245641a1f8a03dc17051631e66f0
commit bb0f1da1920c245641a1f8a03dc17051631e66f0
Author: Dima Panov <fluffy@FreeBSD.org>
AuthorDate: 2022-06-30 21:44:03 +0000
Commit: Dima Panov <fluffy@FreeBSD.org>
CommitDate: 2022-06-30 21:45:19 +0000
x11/babl: fix build on armv7
PR: 264942
Submitted by: Robert Clausecker
---
x11/babl/files/patch-babl_babl-cpuaccel.c | 43 +++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)
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 <fcntl.h>
+ #include <string.h>
+ #include <elf.h>
++#include <sys/auxv.h>
+
+ #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 */
+