Necessary changes to Intel Linux/Unix version of DP4 - A4000009 - 01 Feb 2000

It has recently come to our attention that neither the standard Intel Unix DP4 executables (in \520\unix\unxsco.tar on release CD-ROM), nor our Linux equivalents (in \520\unix\linxsuse.tar) work on Red Hat Linux version 6.1. The fix for this problem involves making a change to the IPC mechanism used for communication between Unix DP4 programs. This has compatibility implications for existing programs.

The cause of the problem is that a handle to a piece of shared memory used for communication between applications and trm3 has been stored in a short (16 bit variable). This is a legacy from the days when DP4 Unix programs were 16 bit. We continued to use a short variable in order to allow existing 16 bit Unix programs to work with the newer 32 bit releases of DP4, and to avoid the compatibility problems described below for as long as possible. Up until now this has never caused any problems, as the handles concerned have always taken values that can safely be stored in 16 bit variables. Unfortunately this is not the case for Red Hat Linux 6.1. It is very likely that other new releases of other distributions of Linux will exhibit the same problem, and possible that future releases of Unix will too (non Intel versions of DP4, such as the RS6000 implementation, always used 32 bit variables for these quantitities, and it is necessary to do so) . Accordingly this information will in future (from release 4.521 onwards) be passed in a different, 32 bit, variable. At the same time we have taken the opportunity to make the same change to another similar variable, used by srv3, in case it too suffers from this problem in future. We have made the change both in our Intel Unix executables, and our Linux executables, because the Intel Unix executables will run on any version of Unix or Linux that has iBCS2 compatibility, whereas the Linux executables tend only to run on specific releases of Linux.

In order to minimise the compatibility problems the change has been made in such a way that most existing programs will continue to run. In particular there are no implications for DOS or Windows clients of Unix/Linux servers. However the following points should be noted: