[comp.unix.xenix] A question about 386 binaries

tony@joshua.math.ucla.edu (04/17/89)

I hope someone out there can answer this question:

Is it true that all bianries created under various different 80386 based 
UNIX/XENIX operating systems are fully portable; i.e will the program 
executables compiled on a Unisys 386 machine running Unix Sys V work 
(without modifications) under SCO Xenix 2.3.1 (on a 386 clone)?  

How about C libraries and object files, are they portable also?

Thanks in advance for all replies.

Tony Lei

INTERNET:	tony@math.ucla.edu
UUCP:		..!ucbvax!ucla-cs!math.ucla.edu!tony

daveh@marob.MASA.COM (Dave Hammond) (04/17/89)

In article <817@sunset.MATH.UCLA.EDU> tony@MATH.UCLA.EDU () writes:
>Is it true that all bianries created under various different 80386 based 
>UNIX/XENIX operating systems are fully portable; i.e will the program 
>executables compiled on a Unisys 386 machine running Unix Sys V work 
>(without modifications) under SCO Xenix 2.3.1 (on a 386 clone)?  

Xenix 386 will run/link executable/object files in its native format
or in AT&T's COFF (Common Object File Format) format.

Most SysV R3.2 386 ports will run/link both COFF and Xenix binaries.

Does anyone know if there is any AT&T-mandated policy that all Sys VR3.2
386 ports run COFF binaries, Xenix binaries, or both?

--
Dave Hammond
daveh@marob.masa.com

jim@applix.UUCP (Jim Morton) (04/25/89)

In article <616@marob.MASA.COM>, daveh@marob.MASA.COM (Dave Hammond) writes:
> Does anyone know if there is any AT&T-mandated policy that all Sys VR3.2
> 386 ports run COFF binaries, Xenix binaries, or both?

BOTH! I can't quote AT&T licensing, but since COFF is their native format
and Xenix binary support, VP/ix and DOSMerge support were basically the
whole idea behind V.3.2, anything that says it is Unix System V/386 3.2
will have that support. The key is realizing things that aren't V.3.2
based (like AIX PS/2...)
--
Jim Morton, APPLiX Inc., Westboro, MA
UUCP: ...harvard!m2c!applix!jim
      jim@applix.m2c.org

rosso@sco.COM (Ross Oliver) (04/26/89)

In article <817@sunset.MATH.UCLA.EDU> tony@MATH.UCLA.EDU () writes:
>I hope someone out there can answer this question:
>
>Is it true that all bianries created under various different 80386 based 
>UNIX/XENIX operating systems are fully portable; i.e will the program 
>executables compiled on a Unisys 386 machine running Unix Sys V work 
>(without modifications) under SCO Xenix 2.3.1 (on a 386 clone)?  
>
>How about C libraries and object files, are they portable also?

Here's the scoop.  I'll start with some definitions:

  x.out: the format that XENIX (SCO, Microsoft, Altos, et. al.) uses for
	 binary executable files.

  OMF: stands for Object Module Format.  This format was defined by Intel,
       and is used for object modules (i.e. .o files) under both MS-DOS
       and XENIX (although MS-DOS uses the .OBJ extension).

  COFF: stands for Common Object File Format.  This is the format was
	defined by AT&T, and is used to refer to BOTH object files and
	executable binaries for 80386-based UNIX.


Now for the compatibility questions:

SCO XENIX Operating System release 2.2.x and earlier can execute
only x.out executables.

SCO XENIX Operating System release 2.3 and later can execute both
x.out and COFF executables.

SCO XENIX Development System 2.2.x and earlier can generate and use
OMF files, and generate x.out executables.

SCO XENIX Development System 2.3 can use existing OMF and COFF object
modules, but can generate only OMF modules and x.out executables.

AT&T incorporated the ability to execute x.out binaries into UNIX for
the 80386, so UNIX 3.2 from any vendor (including the upcoming SCO UNIX
System V product) will execute both x.out and COFF executables.

SCO UNIX System V/386 Release 3.2 Development System will be able to
generate and use OMF and COFF object modules, and generate both x.out
and COFF executables.

One final note: the XENIX floating point emulator does not emulate
a few of the 80287 and 80387 instructions.  The 80387 transcendental
functions, for example, are not emulated.  For x.out binaries, this
is not a problem, since the XENIX C compiler generates only those
instructions the emulator emulates.  However, COFF binaries may
contain coprocessor instructions that the XENIX floating point
emulator can't do.  To successfully run these binaries, a real
coprocessor must be present.  Otherwise, the programs will die with
and "illegal instruction" error.  This will not be a problem in
SCO UNIX System V because it includes both the XENIX and UNIX
floating point emulators.

Ross Oliver
Techical Support
The Santa Cruz Operation, Inc.