sendmsg and recvmsg and binary compatibility from 3.2 to 5.0?

sendmsg and recvmsg and binary compatibility from 3.2 to 5.0?

Post by Jens-Uwe Mag » Tue, 28 Nov 2000 04:00:00



I am seeing strange errors (EINVAL) logged from binaries compiled under
DEC Unix 3.2D if run under True64 5.0 (but the same binary runs fine
under 4.0x). These errors pop up in recvmsg and sendmsg system calls. A
quick and dirty test with one of the many modules tells me that if I
recompile under 5.0 that the problem goes away.

From perusing the struct msghdr I would believe this could be due to the
change of of the type of msg_iovlen in one of the variants, but
shouldn't this change be invisible to old binaries? Or is binary
compatibility limited in this area and 3.2 stuff does not run on 5.0?

--
Jens-Uwe Mager  <pgp-mailto:62CFDB25>

 
 
 

sendmsg and recvmsg and binary compatibility from 3.2 to 5.0?

Post by Andrew Duane U » Wed, 29 Nov 2000 04:00:00



>I am seeing strange errors (EINVAL) logged from binaries compiled under
>DEC Unix 3.2D if run under True64 5.0 (but the same binary runs fine
>under 4.0x). These errors pop up in recvmsg and sendmsg system calls. A
>quick and dirty test with one of the many modules tells me that if I
>recompile under 5.0 that the problem goes away.

>From perusing the struct msghdr I would believe this could be due to the
>change of of the type of msg_iovlen in one of the variants, but
>shouldn't this change be invisible to old binaries? Or is binary
>compatibility limited in this area and 3.2 stuff does not run on 5.0?

It is a known and patched bug. When the iovlen field was changed from
32 to 64 bits, four system calls were missed: sendmsg, recvmsg, osendmsg,
and orecvmsg.

Recompiling under V5.0 will correct the problem, it is only older
binaries that exhibit it (compiled under V3.x or V4.x). Another workaround
is to explicitly zero the msghdr structures before passing them to the
system calls - the problem is garbage in the upper 32 bits that used to
be unused.

--


Compaq Computer Corporation             (603)-884-1294
110 Spit Brook Road
M/S ZKO3-3/U14
Nashua, NH    03062-2698

 
 
 

sendmsg and recvmsg and binary compatibility from 3.2 to 5.0?

Post by Jens-Uwe Mag » Wed, 29 Nov 2000 04:00:00



Quote:>It is a known and patched bug. When the iovlen field was changed from
>32 to 64 bits, four system calls were missed: sendmsg, recvmsg, osendmsg,
>and orecvmsg.

Thanks for confirming that. At what level was that patched, e.g. 5.0A or
5.1?

--
Jens-Uwe Mager  <pgp-mailto:62CFDB25>

 
 
 

sendmsg and recvmsg and binary compatibility from 3.2 to 5.0?

Post by Andrew Duane U » Thu, 30 Nov 2000 04:00:00



>Thanks for confirming that. At what level was that patched, e.g. 5.0A or
>5.1?

It is in the release of V5.1, and in the latest patch kits
for both V5.0 and V5.0A

--


Compaq Computer Corporation             (603)-884-1294
110 Spit Brook Road
M/S ZKO3-3/U14
Nashua, NH    03062-2698

 
 
 

sendmsg and recvmsg and binary compatibility from 3.2 to 5.0?

Post by Jens-Uwe Mage » Sat, 02 Dec 2000 04:00:00




>>Thanks for confirming that. At what level was that patched, e.g. 5.0A or
>>5.1?
> It is in the release of V5.1, and in the latest patch kits
> for both V5.0 and V5.0A

Hmm, I just installed the latest patch kit for 5.0 from the service web
server (t64v50as0002-20000324.tar) and the problem is still there.
Anything else I can try?

--
Jens-Uwe Mager  <pgp-mailto:62CFDB25>