Debian Patches

Status for libdozeu/0.0~git20260825.d0e9ba6-4

Patch Description Author Forwarded Bugs Origin Last update
use_native_smmintrin_on_sse4_1_x86.patch Use native x86 intrinsics instead of colliding SIMDe aliases dozeu.h unconditionally defined SIMDE_ENABLE_NATIVE_ALIASES and included
simde/x86/sse4.1.h. GCC 16 defines those SSE intrinsics natively in its own
headers (avx512vlintrin.h/smmintrin.h/tmmintrin.h), so any translation unit
that includes dozeu.h and later pulls in a native intrinsic header fails
with redefinition errors, breaking reverse dependencies such as vg on
unstable.
.
On SSE4.1-capable x86 include the compiler's own <smmintrin.h> instead.
Where only SSE2 is enabled, pre-include the complete <immintrin.h> before
enabling the SIMDe native aliases: its include guards then make any later
native header inclusion a no-op, so the aliases cannot be expanded inside
the compiler's declarations. SIMDe still supplies the emulated SSE3/SSSE3/
SSE4.1 code, preserving the SSE2 baseline.
.
Keep the SIMDe fallback for architectures without SSE2. Also include
<stdio.h> explicitly because the header uses fprintf(stderr, ...) and
previously relied on SIMDe providing it transitively.
Andreas Tille <tille@debian.org> no 2026-11-07
fix_32bit_layout.patch Fix the 32-bit build: 16-byte layout invariants and pointer-size casts dozeu.h keeps several ''__m128i''-related invariants that only held on 64-bit
targets, where pointers are 8 bytes wide:
.
* struct dz_query_s was 44 bytes on 32-bit instead of 48: arr[] (loaded and
stored through aligned __m128i vector ops, and required to stay exactly
sizeof(bonus) after it) was no longer 16-byte aligned, and the size was not
a multiple of 16 (failing dz_static_assert, i.e. "size of array '_st_' is
negative").
* struct dz_node_s was 12 bytes instead of 16.
* struct dz_forefront_s was 56 bytes instead of 64 (failing the size assert,
and breaking the dz_head_s/dz_cap_s/dz_forefront_s "fr" interchangeability
assumptions used by the traceback).
* struct dz_mem_s was 40 bytes instead of a 16-multiple, so
dz_mem(self) = self - sizeof(struct dz_mem_s) no longer recovered the arena
header after dz_mem_flush's 16-byte rounding of stack.top, corrupting the
stack state at runtime.
.
Pad these with pointer-size-conditional fields / aligned(16) so the layouts
become identical on 32-bit and 64-bit (a no-op on 64-bit), and parse nm
addresses through uintptr_t in the unit test so the header compiles without
-Wint-to-pointer-cast on 32-bit.
Andreas Tille <tille@debian.org> no 2026-11-09

All known versions for source package 'libdozeu'

Links