Trying to compile with new new enough GCC but older binutils that dont
support AVX-VNNI will error out on the assembler, so backport an upstream
fix for it.
Fixes: 338b463e1e ("tools: libdeflate: update to 1.20")
Signed-off-by: Robert Marko <robimarko@gmail.com>
Changes:
* Improved CRC-32 performance on recent x86 CPUs by adding
VPCLMULQDQ-accelerated implementations using 256-bit and 512-bit vectors.
* Improved Adler-32 performance on recent x86 CPUs by adding
VNNI-accelerated implementations using 256-bit and 512-bit vectors.
* Improved CRC-32 and Adler-32 performance on short inputs.
* Optimized the portable implementation of Adler-32.
* Added some basic optimizations for RISC-V.
* Dropped support for gcc versions older than v4.9 (released in 2014) and
clang versions older than v3.9 (released in 2016).
* Dropped support for CRC-32 acceleration on 32-bit ARM using the ARMv8 pmull or crc32 instructions.
This code only worked on CPUs that also have a 64-bit mode, and it was
already disabled on many compiler versions due to compiler limitations.
CRC-32 acceleration remains fully supported on 64-bit ARM.
Signed-off-by: Robert Marko <robimarko@gmail.com>
Now that instead of relying on env variables for the GH download script
invoking ZSTD tarball compression it passes the full arguments via tar -I
we can drop the CLI max compression level override.
Signed-off-by: Robert Marko <robimarko@gmail.com>
The current .pc generated by make build system for zstd is wrong and
always assume a single-threaded library is used.
This wasn't the case for the meson build system that used his own logic
to generate the pkg-config file.
Add a patch to fix this by introducing install-mt-pc make target to
generate the correct pkg-config gile.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
This reverts commit 8d934c1196.
The update seems to be causing issues that need to be further
explored [0]. Let's revert it.
[0] - https://github.com/openwrt/openwrt/pull/15078
Signed-off-by: Nick Hainke <vincent@systemli.org>
We forgot to make sure install-includes is called for the libzstd in
order for it to install the required headers.
Fixes: 4b920e799f ("tools: zstd: convert to make and drop meson dependency")
Signed-off-by: Robert Marko <robimarko@gmail.com>
When using zst instead of xz, the hash changes. This commit fixes the
hash for packages and tools in core.
Signed-off-by: Paul Spooren <mail@aparcar.org>
In the light of recent XZ events, and fundamental XZ issues lets work on
moving away from using XZ.
So, use gz compressed tarballs as sources whenever possible.
dwarves only offers bz2 compressed tarballs, so use those as size
difference is minor compared to XZ.
Signed-off-by: Robert Marko <robimarko@gmail.com>
dwarves
libdeflate is currently intentionally being fetched via GIT.
However, with the move to using ZSTD to compress the cloned GIT repo
tarballs it means that we would first need to compile ZSTD.
But that means that we need to be able to unpack gzipped tarballs first
which we currently do by using libdeflate-gzip.
So, in order to do so lets fetch libdeflate as a tarball, use gzip to
extract it and then use libdeflate as regular for all other tools.
Signed-off-by: Robert Marko <robimarko@gmail.com>
ZSTD and libdeflate do not depend on SED nor flock, so instead of the whole
for loop that will filter 2 out of 4 core packages just specify that patch
and tar depend on sed explicitly.
ZSTD now depends on libdeflate since libdeflate-gzip will then be used to
unpack ZSTD as well as most tool archives.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Signed-off-by: Robert Marko <robimarko@gmail.com>
We dont really have a reason to deviate from the upstream default for
ZSTD_LEGACY_SUPPORT value of 5, as it will save a bit of space but
prevent decompressing data compressed with legacy ZSTD versions.
Signed-off-by: Robert Marko <robimarko@gmail.com>
ZTSD limits the safe compression level to a max of 19 as 20 to 22 cause
increased RAM usage. Higher levels require --ultra arg passed.
There isn't currently a way to set --ultra using ENV options similar to
ZSTD_CLEVEL and ZSTD_CLEVEL is limited to 19.
To fix this, we can increase the max safe compression level by providing
a custom ZSTDCLI_CLEVEL_MAX value with CFLAGS.
The max safe level is increased to 20.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Convert to make and drop meson dependency since it's not a core tools
and can't depend on advanced build system like cmake or meson.
On top of this make is the official build support and cmake/meson are
supported by 3rd parties.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
GCC14 no longer treats integer types and pointer types as equivalent in
assignments (including implied assignments of function arguments and return
values), and instead fails the compilation with a type error.
So, as a workaround lets disable the newly introduced error
-Werror=int-conversion and just make it print a warning to enable compiling
with GCC14 as Fedora 40 now defaults to it.
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add the new 'zycast' tool for remote flashing of Zyxel devices, support
for factory image generation for two new TP-Link devices, and improved
compatibility with two other devices.
17de36575f1e zycast: disable build on non-Linux OS
a5dfb5fb5e6e tplink-safeloader: add TP-Link RE205 v3 support
c1e06daf4622 tplink-safeloader: bump EAP225-V3 compat_level
335d063cff23 tplink-safeloader: bump EAP225-Outdoor v1 compat
c1e69e6f9c0d tplink-safeloader: show compat_level with FW info
e87f23849790 zycast: new tool for ZyXEL bootloader flashing
9067281d17da tplink-safeloader: add RE365 v1
Signed-off-by: Sander Vanheule <sander@svanheule.net>
Different from OPKG, APK uses a deterministic version schema which chips
the version into chunks and compares them individually. This enforces a
certain schema which was previously entirely flexible.
- Releases are added at the very and end prefixed with an `r` like
`1.2.3-r3`.
- Hashes are prefixed with a `~` like `1.2.3~abc123`.
- Dates become semantic versions, like `2024.04.01`
- Extra tags are possible like `_git`, `_alpha` and more.
For full details see the APK test list:
https://gitlab.alpinelinux.org/alpine/apk-tools/-/blob/master/test/version.data
Signed-off-by: Paul Spooren <mail@aparcar.org>
since kernel 6.4, commit bca2f3a9406b ("efi/zboot: Add BSS padding
before compression") introduces the use of hexdump to padding the
EFI kernel binary before compression.
util-linux which containing hexdump should then be compiled as a host
tool to guarantee not breaking the kernel build process.
Signed-off-by: Weijie Gao <hackpascal@gmail.com>
Disable compilation of separate tests as it causes
a build error when combined with ccache
Fixes: 4a3f430d72 ("tools/expat: update to 2.6.0")
Signed-off-by: Koen Vandeputte <koen.vandeputte@citymesh.com>
* liblzma:
- Use __attribute__((__no_sanitize_address__)) to avoid address
sanitization with CRC64 CLMUL. It uses 16-byte-aligned reads
which can extend past the bounds of the input buffer and
inherently trigger address sanitization errors. This isn't
a bug.
- Fixed an assertion failure that could be triggered by a large
unpadded_size argument. It was verified that there was no
other bug than the assertion failure.
- Fixed a bug that prevented building with Windows Vista
threading when __attribute__((__constructor__)) is not
supported.
* xz now properly handles special files such as "con" or "nul" on
Windows. Before this fix, the following wrote "foo" to the
console and deleted the input file "con_xz":
echo foo | xz > con_xz
xz --suffix=_xz --decompress con_xz
* Build systems:
- Allow builds with Windows win95 threading and small mode when
__attribute__((__constructor__)) is supported.
- Added a new line to liblzma.pc for MSYS2 (Windows):
Cflags.private: -DLZMA_API_STATIC
When compiling code that will link against static liblzma,
the LZMA_API_STATIC macro needs to be defined on Windows.
- CMake specific changes:
* Fixed a bug that allowed CLOCK_MONOTONIC to be used even
if the check for it failed.
* Fixed a bug where configuring CMake multiple times
resulted in HAVE_CLOCK_GETTIME and HAVE_CLOCK_MONOTONIC
not being set.
* Fixed the build with MinGW-w64-based Clang/LLVM 17.
llvm-windres now has more accurate GNU windres emulation
so the GNU windres workaround from 5.4.1 is needed with
llvm-windres version 17 too.
* The import library on Windows is now properly named
"liblzma.dll.a" instead of "libliblzma.dll.a"
* Fixed a bug causing the Ninja Generator to fail on
UNIX-like systems. This bug was introduced in 5.4.0.
* Added a new option to disable CLMUL CRC64.
* A module-definition (.def) file is now created when
building liblzma.dll with MinGW-w64.
* The pkg-config liblzma.pc file is now installed on all
builds except when using MSVC on Windows.
* Added large file support by default for platforms that
need it to handle files larger than 2 GiB. This includes
MinGW-w64, even 64-bit builds.
* Small fixes and improvements to the tests.
* Updated translations: Chinese (simplified) and Esperanto.
Signed-off-by: Nick Hainke <vincent@systemli.org>