On Mon, Feb 24, 2025 at 09:46:22PM +0100, Bjorn Ketelaars wrote:
> zstd-1.5.7 has been released. Overview on changes can be found at
> https://github.com/facebook/zstd/releases/tag/v1.5.7.
> 
> Bumped minor of libzstd because of the addition of a new symbol.

No fallout in my amd64 bulk.

I think you need to bump the major. More than one public enum has grown
additional members, which is normally an ABI break unless you can argue
otherwise. Moreover, several structs and enums were renamed (different
capitalization) and compat defines were added. Let's play it safe.

Regress on sparc64 is broken since the binary is has an RWE GNU_STACK
because the build system confuses itself. Once that's fixed, the regress
tests that come after show that 'zstd --long' is broken due to unaligned
access in xxhash. MEM_FORCE_MEMORY_ACCESS is no longer enough, we also
need to force it with XXH_FORCE_MEMORY_ACCESS. All this is also the case
for 1.5.6.

With this diff on top of yours, all tests pass on sparc64, and they still
pass on amd64 and aarch64, so I suggest you commit this.

ok tb

--- Makefile.orig       Thu Feb 27 15:09:26 2025
+++ Makefile    Thu Feb 27 15:15:05 2025
@@ -3,7 +3,7 @@ COMMENT =               zstandard fast real-time compression 
algori
 V =                    1.5.7
 DISTNAME =             zstd-${V}
 
-SHARED_LIBS =          zstd    6.5     # 1.5.7
+SHARED_LIBS =          zstd    7.0     # 1.5.7
 
 CATEGORIES =           archivers
 
@@ -31,7 +31,10 @@ MAKE_FLAGS =         SHARED_EXT_VER="so.$(LIBzstd_VERSION)" \
 FAKE_FLAGS =           PREFIX="${PREFIX}"
 
 # Avoid unaligned access; use memcpy.
-CPPFLAGS +=            -DMEM_FORCE_MEMORY_ACCESS=0
+CPPFLAGS +=            -DMEM_FORCE_MEMORY_ACCESS=0 -DXXH_FORCE_MEMORY_ACCESS=0
+# the magic in libzstd.mk fails, so add noexecstack here to make regress pass
+LDFLAGS_base-gcc =     -Wl,-z,noexecstack
+LDFLAGS +=             ${LDFLAGS_${CHOSEN_COMPILER}}
 
 USE_GMAKE =            Yes
 

Reply via email to