tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Adding ifam_pid to ifa_msghdr

On Thu, Sep 01, 2016 at 06:23:27PM +0700, Robert Elz wrote:
>   | but arguing that compilers can't implement the platform ABI correctly is
>   | somewhat of a stretch.
> That's not what I said.   What I said was that the rules of C give compilers
> considerable latitude with inserting padding (or not) in structs.  Rational
> compilers aren't likely to abuse that, but compilers can - inserting extra
> padding, or not inserting some that one might prefer.

All the ABI contracts we provide are according to the ABI rules of the
corresponding platform. That provides a *very* tight list of
restrictions for any non-internal interface. A compiler is *not* free to
insert padding in random places without violating the platform ABI. If a
user wants to use a non-compatible compiler, it is up to them. But it is
not something we can or should care about. If a compiler is not willing
to follow the ABI rules, the system can't in any reasonable way interact
with it.

All that said: there are certainly reasons why structures with
explicitly sized fields and no possibility for internal padding are
useful. They can avoid the need for re-serialisation logic for netbsd32
and other multi-ABI situations. But that's quite a bit more involved.


Home | Main Index | Thread Index | Old Index