Debian Patches

Status for libselinux/3.8.1-1

Patch Description Author Forwarded Bugs Origin Last update
default =================================================================== no
man =================================================================== no
x32 [PATCH 1/2] Don't inject matchpathcon_filespec_add64() ifdef __x86_64__

As the code notes, it wants to add an
/* ABI backwards-compatible shim for non-LFS 32-bit systems */
it tries to detect these with
#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64 && __BITS_PER_LONG < 64
which is correct with the added precondition that the ino_t /without/
-D_FILE_OFFSET_BITS=64 /was actually/ u32
(i.e. it conflates /all/ ILP32 systems into being non-LFS).

This is not the case on x32, for example, which is LFS; thus, the
static_assert(sizeof(unsigned long) == sizeof(__ino_t), "inode size mismatch");
assertion fails (__ino_t is the "kernel ino_t" type,
which generally corresponds to the kernel's ulong, which is u64 on x32).

The correct spelling of the test for this is
#if (...) && sizeof(__ino_t) == 4
but this is not statically solvable with the preprocessor.

Thus, we need to explcitly special-case this.
__x86_64__ indicates one of two ABIs (LP64 (amd64) or ILP32 (x32)),
both of which have ino_t=u64, and is the macro used for defining
__INO_T_TYPE in the system headers, so it's the best fit here.
=?UTF-8?q?=D0=BD=D0=B0=D0=B1?= <nabijaczleweli@nabijaczleweli.xyz> no 2025-02-22

All known versions for source package 'libselinux'

Links