* Tom Lane <tgl@sss.pgh.pa.us> [010306 11:49] wrote:
> Peter Eisentraut <peter_e@gmx.net> writes:
> > What I don't like is that my /usr/include/sys/shm.h (through other
> > headers) has [foo]
> > whereas /usr/src/linux/include/shm.h has [bar]
>
> Are those declarations perhaps bit-compatible? Looks a tad endian-
> dependent, though ...
Of course not, the size of the struct changed (short->unsigned
long, basically int16_t -> uint32_t), because the kernel and userland
in Linux are hardly in sync you have the fun of guessing if you
get:
old struct -> old syscall (ok)
new struct -> old syscall (boom)
old struct -> new syscall (boom)
new struct -> new syscall (ok)
Honestly I think this problem should be left to the vendor to fix
properly (if it needs fixing), the sysV API was published at least
6 years ago, they ought to have it mostly correct by now.
--
-Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org]