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'
- 0.0~git20260825.d0e9ba6-4 (sid, forky)
