Bug#1063605: debian-policy: mandate use of `dpkg-buildflags` for all software compilation on Debian
Package: debian-policy
Version: 4.6.2.0
Severity: important
Hi,
with the upcoming time_t & friends 64-bit transition, dpkg-buildflags
will be used to configure the ABI in use. Thus all compiler
invocations *must* use the flags specified by dpkg-buildflags to avoid
ABI inconsistencies like this one:
struct T { time_t a; time_t b; };
If this struct is accessed from both `libfoo1t64` (built respecting
dpkg-buildflags and thus time_t is 64-bit) and `bar` (built by a user
invoking gcc themselves), the result is probably not what one wants.
Thus `dpkg-buildflags` *must* be used by all packages *and* all users,
including users building their own software. There is one exception
when libraries provide both 32-bit and 64-bit time_t ABIs like glibc
itself (but I doubt there are many of those).
Any compiler invocation missing these *should* be a serious bug.
(This should probably be mentioned in user documentation as well.)
Currently Debian Policy does not mention dpkg-buildflags at all.
Ansgar
Reply to: