[comp.unix.misc] Altos binary format?

jeffs@bcs800.UUCP (Jeff Smith) (12/05/90)

Does anyone know the format of the Altos binaries?  Is it
standard x.out format or does it support coff type?  Someone
had mentioned the bytes were swapped, or perhaps an unusual
header structure...anyone know for sure?

thanks!
jeffs

--
Jeff Smith                  | #include <stdDisclaimer.h>
Brock Control Systems       | uucp: ...!gatech!emory!bcs800!jeffs
Technical Support           | bitnet: hadadax@gsuvm1.bitnet
                            | jiffy: length of time it takes me to solve
tel: +800 444 3070          |      your problem by killing your process.

ti@altos86.Altos.COM (Ti Kan) (01/30/91)

In article <1136@bcs800.UUCP> jeffs@bcs800.UUCP (Jeff Smith) writes:
>Does anyone know the format of the Altos binaries?  Is it
>standard x.out format or does it support coff type?  Someone
>had mentioned the bytes were swapped, or perhaps an unusual
>header structure...anyone know for sure?
>
>thanks!
>jeffs

You didn't mention which operating system release running on
what Altos hardware.  Over the years, we have gone from XENIX III
to XENIX V to UNIX V.3.1 and now UNIX V.3.2.  All this occurred
on various hardware platforms from all proprietary to the
current open-architecture systems.  We have also switched to
straddling both the Motorola 68x and Intel 80x86 architectures
to being an exclusive Intel-based company.

Anyway, the Altos XENIX operating systems (on the Altos 186, 486,
586, 686, 886, 986, 1086, 2086, 3086 and 386/2000 machines) only
supported the x.out format.  I am not sure about any byte swapping or
unusual headers because these machine platforms pre-date my employment
at Altos.  The Altos UNIX-based operating systems (on the Altos
386/500, 386/600, 386/1000, 386/2000, 486/1000, System 5000, etc.)
both x.out and COFF binary format executables are supported.  On
these UNIX systems the x.out and COFF formats supported are quite
standard.

-Ti
-- 
Ti Kan | vorsprung durch technik!                                       \\\
Internet: ti@altos.com                                                   \\\
UUCP: ...!{sun|sco|pyramid|amdahl|uunet}!altos!ti                     /// \\\
The opinions herein are not necessarily those of Altos.              ////////\

jeffs@bcs800.UUCP (Jeff Smith) (02/01/91)

In <4649@altos86.Altos.COM> ti@altos86.Altos.COM (Ti Kan) writes:

>You didn't mention which operating system release running on
>what Altos hardware.  Over the years, we have gone from XENIX III
>to XENIX V to UNIX V.3.1 and now UNIX V.3.2.  All this occurred
>on various hardware platforms from all proprietary to the
>current open-architecture systems.  We have also switched to
>straddling both the Motorola 68x and Intel 80x86 architectures
>to being an exclusive Intel-based company.

Oops!  The hardware is an Altos 486/20, and the o/s is Xenix version
3.1as0.  The reason for asking, is that I also have Xenix 2.2.1 (SCO)
on a 286 (the altos is a 186) and wanted to compile on the 286 and
run on the altos.  I have the option of generating straight 8086 code
from the 286's compiler, and was told that the majority of the 486's
o/s was only 8086 (not 186) code anyway.  Only thing is, when I get
the executables on the altos and try to run, I get a message that says

$ new.prog
Killed
$ 

but it's an 8086 executable from xenix 2.2.1 that should be (according
to SCO) in x.out format.  I just didn't know if Altos supported the
format, or had their own.

thanks
jeffs
--
Jeff Smith                  | #include <stdDisclaimer.h>
Brock Control Systems       | uucp: ...!gatech!emory!bcs800!jeffs
Technical Support           | bitnet: hadadax@gsuvm1.bitnet
                            | jiffy: length of time it takes me to solve
tel: +800 444 3070          |      your problem by killing your process.

allbery@NCoast.ORG (Brandon S. Allbery KB8JRR) (02/07/91)

As quoted from <1190@bcs800.UUCP> by jeffs@bcs800.UUCP (Jeff Smith):
+---------------
| Oops!  The hardware is an Altos 486/20, and the o/s is Xenix version
| 3.1as0.  The reason for asking, is that I also have Xenix 2.2.1 (SCO)
| on a 286 (the altos is a 186) and wanted to compile on the 286 and
| run on the altos.  I have the option of generating straight 8086 code
| from the 286's compiler, and was told that the majority of the 486's
| o/s was only 8086 (not 186) code anyway.  Only thing is, when I get
| the executables on the altos and try to run, I get a message that says
+---------------

You must use the -compat option (not just the 8086 code generation option)
to cross-compile from SCO Xenix to Altos Xenix.  With -compat, it works fine.

+---------------
| but it's an 8086 executable from xenix 2.2.1 that should be (according
| to SCO) in x.out format.  I just didn't know if Altos supported the
| format, or had their own.
+---------------

x.out includes an indicator of what OS support the binary needs to be
runnable.  If the kernel can't comply (wrong processor, missing system calls,
etc.) it autokills the process --- as you saw.

SCO added some system calls that Altos didn't, and vice versa.  As a result,
the x.out files for each have different "Xenix version" flags.  That's why you
need "-compat":  it sets the version flag to a value which indicates a need
only for kernel services common to both versions.

++Brandon
-- 
Me: Brandon S. Allbery			    VHF/UHF: KB8JRR on 220, 2m, 440
Internet: allbery@NCoast.ORG		    Packet: KB8JRR @ WA8BXN
America OnLine: KB8JRR			    AMPR: KB8JRR.AmPR.ORG [44.70.4.88]
uunet!usenet.ins.cwru.edu!ncoast!allbery    Delphi: ALLBERY