Summary: Compatibility of old binaries with Solaris 2.1

From: Jean-Jacques P. Drolet (drolet@cco.caltech.edu)
Date: Tue May 04 1993 - 01:12:21 CDT


In comp.sys.sun.misc, I wrote:

>Hi!

>Our lab is buying several SparcClassic workstations running Solaris
>2.1. These workstations are to be added to an existing network of
>SparcStations running SunOS 4.1.x. I would like to know how compatible
>Solaris is with programs compiled with cc on SunOS 4.1.x on other Sparc
>machines. Our software consists mostly of programs developed by group
>members for research purposes, and of some public-domain utilities.
>Did anybody experience incompatibilities, or can one simply copy
>the executables and expect the programs to run on Solaris?

>Many thanks!

SUMMARY:

The core operating system of Solaris 2.1 is not really compatible
with Sparc binaries compiled under SunOS 4.1.x. However, Solaris
2.1 features a compatibility mode that enables it to run many
of those binaries unmodified. Unfortunately, this compatibility
mode has its limitations, and several SunOS 4.1.x binaries will not run
under Solaris 2.1, or will be affected by new misbehaviors. According
to most of the replies I have received, some necessary, but not
sufficient, conditions for an application to run correctly under
the compatibility mode of Solaris 2.1 are the following:

- the executable must be dynamically linked;
- it must not read /dev/[k]mem directly;
- it must not jump into the kernel.

Moreover, it seems that some system calls are not supported
under the compatibility mode, including pipe() and kill().
Programs may fail if they use some advanced features of
RPC that were left out of the compatibility mode libraries in Solaris
2.1 (2.2 is expected to fix this). The setjmp() call in
these libraries seems to be buggy and to cause programs to bomb.
Binaries of FrameMaker and Island Graphics Write/Draw/Paint for
SunOS 4.1.x apparently don't work under Solaris 2.1. Solaris is
based on UNIX System V Release 4 instead of the Berkeley Standard Distribution
(BSD) UNIX on which all versions of SunOS prior to 5.0 were based.
As a result, the format and location of many system files has been changed,
and this also causes incompatibilities with older binaries.

Fortunately, I was told that the binaries of many public domain programs
such as xv and TeX compiled under SunOS 4.1.x work fine under Solaris
2.1.

It seems that the compatibility mode of Solaris 2.1 is a nice tool
to help alleviate the pain of switching to a new operating system.
However, one should not expect all his/her binaries to run correctly
under Solaris 2.1.

Many thanks to all those who replied to my request, and in particular to:
Steve Hanson <hanson@pogo.fnal.gov>
Luc Leclerc (leclerc@ino.qc.ca>
J. Anthony Fitzgerald <jaf@UNB.ca>
John Arnold <floyd@fss.icl.co.uk>
Adrian Booth <abcc@DIALix.oz.au>
ian@sq.com
Robert Bonomi <bonomi@delta.eecs.nwu.edu>
Paul Eggert <eggert@twinsun.com>

--
Jacques Drolet
drolet@drolet.cam.org



This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:07:47 CDT