1
0
mirror of https://git.openwrt.org/openwrt/openwrt.git synced 2024-10-18 05:18:14 +02:00

tools: libdeflate: bump to 1.22

Bump to the latest 1.22 version which allows dropping our only patch.

Changelog:
Version 1.22
* The CMake-based build system now implements a workaround for gcc being paired
  with a too-old binutils version.  This can prevent build errors.

Version 1.21
* Fixed build error on x86 with gcc 8.1 and gcc 8.2.

* Fixed build error on x86 when gcc 11 is paired with a binutils version that
  doesn't support AVX-VNNI, e.g. as it is on RHEL 9.

* Fixed build error on arm64 with gcc 6.

* Fixed build error on arm64 with gcc 13.1 and later with some -mcpu options.

* Enabled detection of dotprod support in Windows ARM64 builds.

Link: https://github.com/openwrt/openwrt/pull/16617
Signed-off-by: Robert Marko <robimarko@gmail.com>
This commit is contained in:
Robert Marko 2024-10-06 21:42:23 +02:00
parent cc29e90d0c
commit 0b05cc7048
2 changed files with 3 additions and 35 deletions

@ -7,12 +7,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libdeflate
PKG_VERSION:=1.20
PKG_RELEASE:=2
PKG_VERSION:=1.22
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/ebiggers/libdeflate/releases/download/v$(PKG_VERSION)
PKG_HASH:=c52cf0239fd644d71c9e88613dd7431a5306ebee1280c5791c71ca264869250a
PKG_HASH:=7834d9adbc9a809e0fb0d7b486060a9ae5f7819eb7f55bb8c22b10d7b3bed8da
include $(INCLUDE_DIR)/host-build.mk

@ -1,32 +0,0 @@
From e522b1d09d3536ddc15459b4259150f4a53ee65a Mon Sep 17 00:00:00 2001
From: Eric Biggers <ebiggers@google.com>
Date: Thu, 4 Apr 2024 20:16:33 -0400
Subject: [PATCH] lib/x86: increase AVX-VNNI gcc prerequisite to 12.1
Although gcc 11.1 supports AVX-VNNI, a popular distro pairs it with a
binutils version that does not. Require gcc 12 instead.
Resolves https://github.com/ebiggers/libdeflate/issues/365
---
lib/x86/adler32_impl.h | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
--- a/lib/x86/adler32_impl.h
+++ b/lib/x86/adler32_impl.h
@@ -52,8 +52,15 @@
/*
* AVX-VNNI implementation. This is used on CPUs that have AVX2 and AVX-VNNI
* but don't have AVX-512, for example Intel Alder Lake.
+ *
+ * Unusually for a new CPU feature, gcc added support for the AVX-VNNI
+ * intrinsics (in gcc 11.1) slightly before binutils added support for
+ * assembling AVX-VNNI instructions (in binutils 2.36). Distros can reasonably
+ * have gcc 11 with binutils 2.35. Because of this issue, we check for gcc 12
+ * instead of gcc 11. (libdeflate supports direct compilation without a
+ * configure step, so checking the binutils version is not always an option.)
*/
-#if GCC_PREREQ(11, 1) || CLANG_PREREQ(12, 0, 13000000) || MSVC_PREREQ(1930)
+#if GCC_PREREQ(12, 1) || CLANG_PREREQ(12, 0, 13000000) || MSVC_PREREQ(1930)
# define adler32_x86_avx2_vnni adler32_x86_avx2_vnni
# define SUFFIX _avx2_vnni
# define ATTRIBUTES _target_attribute("avx2,avxvnni")