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