diff -Nru libzstd-1.4.8+dfsg/debian/changelog libzstd-1.4.8+dfsg/debian/changelog --- libzstd-1.4.8+dfsg/debian/changelog 2021-10-06 07:27:47.000000000 +0000 +++ libzstd-1.4.8+dfsg/debian/changelog 2021-10-11 18:43:18.000000000 +0000 @@ -1,3 +1,10 @@ +libzstd (1.4.8+dfsg-3+rpi1) bookworm-staging; urgency=medium + + [changes brought forward from 1.4.8+dfsg-2.1+rpi1 by Peter Michael Green at Fri, 07 May 2021 07:36:26 +0000] + * Fix broken unaligned accesses. + + -- Raspbian forward porter Mon, 11 Oct 2021 18:43:18 +0000 + libzstd (1.4.8+dfsg-3) unstable; urgency=medium * Team upload. diff -Nru libzstd-1.4.8+dfsg/debian/patches/9999-fix-broken-memory-access.patch libzstd-1.4.8+dfsg/debian/patches/9999-fix-broken-memory-access.patch --- libzstd-1.4.8+dfsg/debian/patches/9999-fix-broken-memory-access.patch 1970-01-01 00:00:00.000000000 +0000 +++ libzstd-1.4.8+dfsg/debian/patches/9999-fix-broken-memory-access.patch 2021-10-11 18:43:18.000000000 +0000 @@ -0,0 +1,95 @@ +Description: don't use broken unaligned access + Some unaligned accesses are ok on armv6+ but many are not, so violating + C's memory alignment rules is dangerous on this architecture, change + the defines so the code doesn't do it. +Author: Peter Micheal Green +Last-Update: 2021-05-07 + +--- libzstd-1.4.8+dfsg.orig/lib/common/mem.h ++++ libzstd-1.4.8+dfsg/lib/common/mem.h +@@ -144,7 +144,7 @@ MEM_STATIC size_t MEM_swapST(size_t in); + */ + #ifndef MEM_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */ + # if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) ) +-# define MEM_FORCE_MEMORY_ACCESS 2 ++# define MEM_FORCE_MEMORY_ACCESS 0 + # elif defined(__INTEL_COMPILER) || defined(__GNUC__) || defined(__ICCARM__) + # define MEM_FORCE_MEMORY_ACCESS 1 + # endif +--- libzstd-1.4.8+dfsg.orig/lib/common/xxhash.c ++++ libzstd-1.4.8+dfsg/lib/common/xxhash.c +@@ -31,7 +31,7 @@ + */ + #ifndef XXH_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */ + # if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) ) +-# define XXH_FORCE_MEMORY_ACCESS 2 ++# define XXH_FORCE_MEMORY_ACCESS 0 + # elif (defined(__INTEL_COMPILER) && !defined(WIN32)) || \ + (defined(__GNUC__) && ( defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) )) || \ + defined(__ICCARM__) +--- libzstd-1.4.8+dfsg.orig/lib/legacy/zstd_v02.c ++++ libzstd-1.4.8+dfsg/lib/legacy/zstd_v02.c +@@ -130,7 +130,7 @@ extern "C" { + */ + #ifndef MEM_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */ + # if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) ) +-# define MEM_FORCE_MEMORY_ACCESS 2 ++# define MEM_FORCE_MEMORY_ACCESS 0 + # elif (defined(__INTEL_COMPILER) && !defined(WIN32)) || \ + (defined(__GNUC__) && ( defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) )) + # define MEM_FORCE_MEMORY_ACCESS 1 +--- libzstd-1.4.8+dfsg.orig/lib/legacy/zstd_v03.c ++++ libzstd-1.4.8+dfsg/lib/legacy/zstd_v03.c +@@ -131,7 +131,7 @@ extern "C" { + */ + #ifndef MEM_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */ + # if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) ) +-# define MEM_FORCE_MEMORY_ACCESS 2 ++# define MEM_FORCE_MEMORY_ACCESS 0 + # elif (defined(__INTEL_COMPILER) && !defined(WIN32)) || \ + (defined(__GNUC__) && ( defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) )) + # define MEM_FORCE_MEMORY_ACCESS 1 +--- libzstd-1.4.8+dfsg.orig/lib/legacy/zstd_v04.c ++++ libzstd-1.4.8+dfsg/lib/legacy/zstd_v04.c +@@ -102,7 +102,7 @@ extern "C" { + */ + #ifndef MEM_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */ + # if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) ) +-# define MEM_FORCE_MEMORY_ACCESS 2 ++# define MEM_FORCE_MEMORY_ACCESS 0 + # elif (defined(__INTEL_COMPILER) && !defined(WIN32)) || \ + (defined(__GNUC__) && ( defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) )) + # define MEM_FORCE_MEMORY_ACCESS 1 +--- libzstd-1.4.8+dfsg.orig/lib/legacy/zstd_v05.c ++++ libzstd-1.4.8+dfsg/lib/legacy/zstd_v05.c +@@ -121,7 +121,7 @@ extern "C" { + */ + #ifndef MEM_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */ + # if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) ) +-# define MEM_FORCE_MEMORY_ACCESS 2 ++# define MEM_FORCE_MEMORY_ACCESS 0 + # elif (defined(__INTEL_COMPILER) && !defined(WIN32)) || \ + (defined(__GNUC__) && ( defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) )) + # define MEM_FORCE_MEMORY_ACCESS 1 +--- libzstd-1.4.8+dfsg.orig/lib/legacy/zstd_v06.c ++++ libzstd-1.4.8+dfsg/lib/legacy/zstd_v06.c +@@ -123,7 +123,7 @@ extern "C" { + */ + #ifndef MEM_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */ + # if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) ) +-# define MEM_FORCE_MEMORY_ACCESS 2 ++# define MEM_FORCE_MEMORY_ACCESS 0 + # elif (defined(__INTEL_COMPILER) && !defined(WIN32)) || \ + (defined(__GNUC__) && ( defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) )) + # define MEM_FORCE_MEMORY_ACCESS 1 +--- libzstd-1.4.8+dfsg.orig/lib/legacy/zstd_v07.c ++++ libzstd-1.4.8+dfsg/lib/legacy/zstd_v07.c +@@ -283,7 +283,7 @@ extern "C" { + */ + #ifndef MEM_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */ + # if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) ) +-# define MEM_FORCE_MEMORY_ACCESS 2 ++# define MEM_FORCE_MEMORY_ACCESS 0 + # elif (defined(__INTEL_COMPILER) && !defined(WIN32)) || \ + (defined(__GNUC__) && ( defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) )) + # define MEM_FORCE_MEMORY_ACCESS 1 diff -Nru libzstd-1.4.8+dfsg/debian/patches/series libzstd-1.4.8+dfsg/debian/patches/series --- libzstd-1.4.8+dfsg/debian/patches/series 2021-10-06 07:27:47.000000000 +0000 +++ libzstd-1.4.8+dfsg/debian/patches/series 2021-10-11 18:43:18.000000000 +0000 @@ -5,3 +5,4 @@ 0015-Skip-dev-random-tests-on-hurd.patch 0017-alpha-fbfs-st_mtime.patch 0018-fix-file-permissions-on-compression.patch +9999-fix-broken-memory-access.patch