Skip to content

2.1.6

Latest
Compare
Choose a tag to compare
@Dead2 Dead2 released this 10 Jan 22:35

This is a stable release, with several minor improvements and one corruption fix for inflateCopy().
This release also improves on the functable implementation, and also moves its initialization to happen in deflateInit() and inflateInit(). We also have some optimizations for RVV and ARM.

Notes for packagers:

  • FAR macro has been added back to zlib-compat mode in this release, please remember to remove downstream patches that add it.
  • Please consider removing CMake INSTALL_LIB_DIR workarounds, this should not be needed since v2.0.2 (2021), but packagers seem to keep copying the workaround from each other. Please see cmake/detect-install-dirs.cmake.

Changes

  • Fix inflateCopy corruption caused by change in 2.1.4 #1628
    • This is a regression caused by a change introduced in 2.1.4

  • Functable

    • Initialize functable without TLS, using atomics #1609
    • Initialize functable early, during DeflateInit and InflateInit #1613
  • API

    • Add FAR macro to zlib-compat headers to improve compatibility #1637
  • ARM

    • Improve performance of crc32_acle on 32-bit ARM #1397
    • Add support for attribute((target(...))) to overcome limitations of -march=native #1620
    • Remove tab character in ACLE uqsub16 assembly #1627
  • RVV

    • Optimize adler32_fold_copy using RVV #1597
  • x86

    • Simplify AVX2 and AVX512 adler32_fold_copy by removing templates #1599
  • Buildsystem

    • Don't attempt ARMv6 detection on AARCH64 #1617
    • Prevent tests writing into source directory #1604
    • CMake: Fix clang-cl warnings #1591
    • CMake: Export cmake target #1601 #1611
    • CMake: Remove duplicate enable tests option #1610
    • CMake: Fix reading version information from zlib.h.in #1614
    • CMake: Check whether compiler supports -march=native or -mcpu=native #1618
    • CMake: Always run compiler feature tests without LTO #1622
    • CMake: Make sure uqsub16 check doesn't get optimized away with LTO #1619
    • CMake: Update to GoogleTest 1.12.1 #1623
      • Don't disable GoogleTest because of old CMake version #1623 #1638
    • CI: Add linter workflow for whitespace errors #1625 #1632
    • CI: Cancel outdated running CI jobs for PR or branch #1629
    • CI: Added CI instance for WITH_NATIVE_INSTRUCTIONS #1634
    • Tests: Fix buffer overflow in compare256_rle benchmark #1612
  • Misc

    • Update copyright to sync with zlib 1.3 #1615