[…] So you did not know to add {$packrecords C} ?? […]
Nah, I wasn't particularly aware of that now. I don't compile my RTL, though. I use what's packaged.
So I first headed to
/usr/share/fpcsrc/3.0.0/packages/rtl-extra/src/ipc.pp and then looked at
bits/msq.h for reference. As
the fields aren't already in order, I assumed that's the problem.
And there's a
{$packrecords C} in
ipc.pp; I can't tell right off the bat whether it has/had its proper effect, but I guess the peeps who write RTL units know what they're doing.
PS: “the fields aren't already in order”: I've had another look onto I: I mean the fields
msg_first and
msg_last don't appear in my
bits/msq.h, but they do in the
if defined(Linux) branch in
ipc.pp.
PPS: And this is already, at least in
trunk, fixed. But, as I wrote, I usually work/produce with already packaged (“stable”) stuff.