[Buildroot] [git commit] package/highway: bump to version 1.0.7

Thomas Petazzoni thomas.petazzoni at bootlin.com
Tue Jan 2 08:53:51 UTC 2024


commit: https://git.buildroot.net/buildroot/commit/?id=0db3c08daf335571a2b2d18a16d8980ddf4567ab
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/master

Drop patches (already in version)

https://github.com/google/highway/releases/tag/1.0.7
https://github.com/google/highway/releases/tag/1.0.6
https://github.com/google/highway/releases/tag/1.0.5
https://github.com/google/highway/releases/tag/1.0.4

Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
---
 .checkpackageignore                                |   2 -
 ...0001-Fix-compilation-for-armv7-with-gcc-8.patch |  46 --------
 ...tion-for-armv7-targets-with-vfp-v4-and-gc.patch | 118 ---------------------
 package/highway/highway.hash                       |   2 +-
 package/highway/highway.mk                         |   2 +-
 5 files changed, 2 insertions(+), 168 deletions(-)

diff --git a/.checkpackageignore b/.checkpackageignore
index def465e802..2348f7ec52 100644
--- a/.checkpackageignore
+++ b/.checkpackageignore
@@ -527,8 +527,6 @@ package/harfbuzz/0001-meson.build-check-for-pthread.h.patch Upstream
 package/haserl/0001-add-haserl_lualib.inc.patch Upstream
 package/haveged/S21haveged Shellcheck Variables
 package/heirloom-mailx/0001-fix-libressl-support.patch Upstream
-package/highway/0001-Fix-compilation-for-armv7-with-gcc-8.patch Upstream
-package/highway/0002-Fix-compilation-for-armv7-targets-with-vfp-v4-and-gc.patch Upstream
 package/hplip/0001-build-use-pkg-config-to-discover-libusb.patch Upstream
 package/hplip/0002-configure.in-fix-AM_INIT_AUTOMAKE-call.patch Upstream
 package/htpdate/S43htpdate Shellcheck
diff --git a/package/highway/0001-Fix-compilation-for-armv7-with-gcc-8.patch b/package/highway/0001-Fix-compilation-for-armv7-with-gcc-8.patch
deleted file mode 100644
index 0634460453..0000000000
--- a/package/highway/0001-Fix-compilation-for-armv7-with-gcc-8.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 94cda9cc8cd12345a6dbe70e40f3119d5bf7ee78 Mon Sep 17 00:00:00 2001
-From: Julien Olivain <ju.o at free.fr>
-Date: Fri, 10 Feb 2023 21:25:36 +0100
-Subject: [PATCH] Fix compilation for armv7 with gcc < 8
-
-Highway uses the construct __attribute__((target(+neon-vfpv4)) for
-Armv7. The target "+neon-vfpv4" was introduced in gcc 8, in commit [1].
-When using a gcc < 8 (for example, like [2]), compilation fails with
-message:
-
-    In file included from /build/highway-1.0.3/hwy/foreach_target.h:81:0,
-                     from /build/highway-1.0.3/hwy/per_target.cc:20:
-    /build/highway-1.0.3/hwy/per_target.cc: At global scope:
-    /build/highway-1.0.3/hwy/per_target.cc:23:22: error: attribute(target("+neon-vfpv4")) is unknown
-
-This commit protects the definition of HWY_TARGET_STR only when gcc
-version 8 or greater is used for armv7.
-
-[1] https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=e87afe54b86c478ae63569e51e7abb67d3fe3fce
-[2] https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/arm-linux-gnueabihf/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf.tar.xz
-
-Signed-off-by: Julien Olivain <ju.o at free.fr>
----
- hwy/ops/set_macros-inl.h | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/hwy/ops/set_macros-inl.h b/hwy/ops/set_macros-inl.h
-index 051dbb3..00b4b1b 100644
---- a/hwy/ops/set_macros-inl.h
-+++ b/hwy/ops/set_macros-inl.h
-@@ -230,7 +230,12 @@
- // Can use pragmas instead of -march compiler flag
- #if HWY_HAVE_RUNTIME_DISPATCH
- #if HWY_ARCH_ARM_V7
-+#if HWY_COMPILER_GCC_ACTUAL >= 800
-+// The __attribute__((target(+neon-vfpv4)) was introduced in gcc >= 8.
-+// In case we have a gcc < 8, we can still compile by keeping
-+// HWY_TARGET_STR undefined.
- #define HWY_TARGET_STR "+neon-vfpv4"
-+#endif
- #else
- #define HWY_TARGET_STR "+crypto"
- #endif  // HWY_ARCH_ARM_V7
--- 
-2.39.2
-
diff --git a/package/highway/0002-Fix-compilation-for-armv7-targets-with-vfp-v4-and-gc.patch b/package/highway/0002-Fix-compilation-for-armv7-targets-with-vfp-v4-and-gc.patch
deleted file mode 100644
index f29b385501..0000000000
--- a/package/highway/0002-Fix-compilation-for-armv7-targets-with-vfp-v4-and-gc.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-From 93d4579f90dd6ad26fd0dcda6420b3bb2fdcbc02 Mon Sep 17 00:00:00 2001
-From: Julien Olivain <ju.o at free.fr>
-Date: Mon, 20 Feb 2023 23:22:28 +0100
-Subject: [PATCH] Fix compilation for armv7 targets with vfp < v4 and gcc >= 8
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-When using a armv7 gcc >= 8 toolchain (like [1]) with Highway
-configured with -DHWY_CMAKE_ARM7=OFF and HWY_ENABLE_CONTRIB=ON,
-compilation fails with error:
-
-    In file included from /build/highway-1.0.3/hwy/ops/arm_neon-inl.h:33,
-                     from /build/highway-1.0.3/hwy/highway.h:358,
-                     from /build/highway-1.0.3/hwy/contrib/sort/shared-inl.h:104,
-                     from /build/highway-1.0.3/hwy/contrib/sort/traits128-inl.h:27,
-                     from /build/highway-1.0.3/hwy/contrib/sort/vqsort_128d.cc:23,
-                     from /build/highway-1.0.3/hwy/foreach_target.h:81,
-                     from /build/highway-1.0.3/hwy/contrib/sort/vqsort_128d.cc:20:
-    /toolchain/lib/gcc/arm-buildroot-linux-gnueabihf/12.2.0/include/arm_neon.h: In function 'void hwy::N_NEON::StoreU(Vec128<long long unsigned int, 2>, Full128<long long unsigned int>, uint64_t*)':
-    /toolchain/lib/gcc/arm-buildroot-linux-gnueabihf/12.2.0/include/arm_neon.h:11052:1: error: inlining failed in call to 'always_inline' 'void vst1q_u64(uint64_t*, uint64x2_t)': target specific option mismatch
-    11052 | vst1q_u64 (uint64_t * __a, uint64x2_t __b)
-          | ^~~~~~~~~
-    /build/highway-1.0.3/hwy/ops/arm_neon-inl.h:2786:12: note: called from here
-     2786 |   vst1q_u64(unaligned, v.raw);
-          |   ~~~~~~~~~^~~~~~~~~~~~~~~~~~
-
-The same errors happen when configured with HWY_ENABLE_EXAMPLES=ON,
-or from client libraries like libjxl (at other places).
-
-The issue is that Highway Arm NEON ops have a dependency on the
-Advanced SIMD (Neon) v2 and the VFPv4 floating-point instructions.
-The SIMD (Neon) v1 and VFPv3 instructions are not supported.
-
-There was several attempts to fix variants of this issues.
-See #834 and #1032.
-
-HWY_NEON target is selected only if __ARM_NEON is defined. See:
-https://github.com/google/highway/blob/1.0.3/hwy/detect_targets.h#L251
-
-This test is not sufficient since __ARM_NEON will be predefined in
-any cases when Neon is enabled (neon-vfpv3, neon-vfpv4).
-
-The issue is that HWY_CMAKE_ARM7=ON implies VFPv4 / NEON SIMD v2.
-When setting HWY_CMAKE_ARM7=OFF, "neon-vfpv4" will not be forced,
-but the code is still using intrinsics assuming VFPv4. Gcc will fail
-with error because code cannot be generated for the selected
-architecture.
-
-This issue can be avoided by adding "-DHWY_DISABLED_TARGETS=HWY_NEON" in
-CXXFLAGS. The problem with this solution is that every client program will
-also need to do the same. This goes against the very purpose of
-"hwy/detect_targets.h".
-
-Technically, Armv7-a processors with VFPv4 can be detected using some
-ACLE (Arm C Language Extensions [2]) predefined macros:
-
-Basically, we want Highway to define HWY_NEON only when the target
-supports SIMDv2/VFPv4 or higher. An older target with vfpv3 only
-(e.g. Cortex-A8, A9, ...) would NOT define HWY_NEON, and therefore
-would fallback on HWY_SCALAR implementation.
-
-However, not all compiler completely support ACLE. There is also
-several versions too. So we cannot easily rely on macros like
-"__ARM_VFPV4__" (which clang predefine, but not gcc).
-
-The alternative solution proposed in this patch, is to declare the
-HWY_NEON target architecture as broken, when we detect the target is
-Armv7-A, but mandatory features for vfpv4 (namely half-float, FMA)
-are missing. Half-floats are tested using the macro __ARM_NEON_FP,
-and the FMA with the macro __ARM_FEATURE_FMA. See ACLE [2]. The
-intent of declaring the target as broken, rather than selecting
-HWY_NEON only if vfpv4 features are detected is to remain a bit
-conservative, since the detection is slithly inaccurate.
-
-For a given compiler/cflags, predefined macros for Arm/ACLE can be
-reviewed with commands like:
-
-    arm-linux-gnueabihf-gcc -mcpu=cortex-a9 -mfpu=neon-vfpv3 -Wp,-dM -E -c - < /dev/null | grep -Fi arm | sort
-    arm-linux-gnueabihf-gcc -mcpu=cortex-a7 -mfpu=neon-vfpv4 -Wp,-dM -E -c - < /dev/null | grep -Fi arm | sort
-    clang -target armv7a -mcpu=cortex-a9 -mfpu=neon-vfpv3 -mfloat-abi=hard -Wp,-dM -E -c - < /dev/null | grep -Fi arm | sort
-    clang -target armv7a -mcpu=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -Wp,-dM -E -c - < /dev/null | grep -Fi arm | sort
-
-The different values of __ARM_NEON_FP can be seen, depending which
-"-mfpu" is passed. Same for __ARM_FEATURE_FMA.
-
-[1] https://toolchains.bootlin.com/downloads/releases/toolchains/armv7-eabihf/tarballs/armv7-eabihf--glibc--bleeding-edge-2022.08-1.tar.bz2
-[2] https://github.com/ARM-software/acle/
-
-Signed-off-by: Julien Olivain <ju.o at free.fr>
----
- hwy/detect_targets.h | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/hwy/detect_targets.h b/hwy/detect_targets.h
-index 2beca95..40ae7fe 100644
---- a/hwy/detect_targets.h
-+++ b/hwy/detect_targets.h
-@@ -154,6 +154,16 @@
-      (defined(__BYTE_ORDER) && __BYTE_ORDER == __BIG_ENDIAN))
- #define HWY_BROKEN_TARGETS (HWY_NEON)
- 
-+// armv7-a without a detected vfpv4 is not supported
-+// (for example Cortex-A8, Cortex-A9)
-+// vfpv4 always have neon half-float _and_ FMA.
-+#elif HWY_ARCH_ARM_V7 && \
-+    (__ARM_ARCH_PROFILE == 'A') && \
-+    !defined(__ARM_VFPV4__) && \
-+        !((__ARM_NEON_FP & 0x2 /* half-float */) && \
-+          (__ARM_FEATURE_FMA == 1))
-+#define HWY_BROKEN_TARGETS (HWY_NEON)
-+
- // SVE[2] require recent clang or gcc versions.
- #elif (HWY_COMPILER_CLANG && HWY_COMPILER_CLANG < 1100) || \
-     (HWY_COMPILER_GCC_ACTUAL && HWY_COMPILER_GCC_ACTUAL < 1000)
--- 
-2.39.2
-
diff --git a/package/highway/highway.hash b/package/highway/highway.hash
index 16a9282176..55b1bca774 100644
--- a/package/highway/highway.hash
+++ b/package/highway/highway.hash
@@ -1,3 +1,3 @@
 # Locally computed:
-sha256  566fc77315878473d9a6bd815f7de78c73734acdcb745c3dde8579560ac5440e  highway-1.0.3.tar.gz
+sha256  5434488108186c170a5e2fca5e3c9b6ef59a1caa4d520b008a9b8be6b8abe6c5  highway-1.0.7.tar.gz
 sha256  43070e2d4e532684de521b885f385d0841030efa2b1a20bafb76133a5e1379c1  LICENSE
diff --git a/package/highway/highway.mk b/package/highway/highway.mk
index 56d63a83f9..692794959a 100644
--- a/package/highway/highway.mk
+++ b/package/highway/highway.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-HIGHWAY_VERSION = 1.0.3
+HIGHWAY_VERSION = 1.0.7
 HIGHWAY_SITE = $(call github,google,highway,$(HIGHWAY_VERSION))
 HIGHWAY_LICENSE = Apache-2.0
 HIGHWAY_LICENSE_FILES = LICENSE



More information about the buildroot mailing list