xref: /freebsd-src/contrib/file/magic/Magdir/aout (revision 246e7a2b6494cd991b08ac669ed761ecea0cc98c)
1*b6cee71dSXin LI
2*b6cee71dSXin LI#------------------------------------------------------------------------------
3*b6cee71dSXin LI# $File: aout,v 1.1 2013/01/09 22:37:23 christos Exp $
4*b6cee71dSXin LI# aout:  file(1) magic for a.out executable/object/etc entries that
5*b6cee71dSXin LI# handle executables on multiple platforms.
6*b6cee71dSXin LI#
7*b6cee71dSXin LI
8*b6cee71dSXin LI#
9*b6cee71dSXin LI# Little-endian 32-bit-int a.out, merged from bsdi (for BSD/OS, from
10*b6cee71dSXin LI# BSDI), netbsd, and vax (for UNIX/32V and BSD)
11*b6cee71dSXin LI#
12*b6cee71dSXin LI# XXX - is there anything we can look at to distinguish BSD/OS 386 from
13*b6cee71dSXin LI# NetBSD 386 from various VAX binaries?  The BSD/OS shared library flag
14*b6cee71dSXin LI# works only for binaries using shared libraries.  Grabbing the entry
15*b6cee71dSXin LI# point from the a.out header, using it to find the first code executed
16*b6cee71dSXin LI# in the program, and looking at that might help.
17*b6cee71dSXin LI#
18*b6cee71dSXin LI0	lelong		0407		a.out little-endian 32-bit executable
19*b6cee71dSXin LI>16	lelong		>0		not stripped
20*b6cee71dSXin LI>32	byte		0x6a		(uses BSD/OS shared libs)
21*b6cee71dSXin LI
22*b6cee71dSXin LI0	lelong		0410		a.out little-endian 32-bit pure executable
23*b6cee71dSXin LI>16	lelong		>0		not stripped
24*b6cee71dSXin LI>32	byte		0x6a		(uses BSD/OS shared libs)
25*b6cee71dSXin LI
26*b6cee71dSXin LI0	lelong		0413		a.out little-endian 32-bit demand paged pure executable
27*b6cee71dSXin LI>16	lelong		>0		not stripped
28*b6cee71dSXin LI>32	byte		0x6a		(uses BSD/OS shared libs)
29*b6cee71dSXin LI
30*b6cee71dSXin LI#
31*b6cee71dSXin LI# Big-endian 32-bit-int a.out, merged from sun (for old 68010 SunOS a.out),
32*b6cee71dSXin LI# mips (for old 68020(!) SGI a.out), and netbsd (for old big-endian a.out).
33*b6cee71dSXin LI#
34*b6cee71dSXin LI# XXX - is there anything we can look at to distinguish old SunOS 68010
35*b6cee71dSXin LI# from old 68020 IRIX from old NetBSD?  Again, I guess we could look at
36*b6cee71dSXin LI# the first instruction or instructions in the program.
37*b6cee71dSXin LI#
38*b6cee71dSXin LI0	belong		0407		a.out big-endian 32-bit executable
39*b6cee71dSXin LI>16	belong		>0		not stripped
40*b6cee71dSXin LI
41*b6cee71dSXin LI0	belong		0410		a.out big-endian 32-bit pure executable
42*b6cee71dSXin LI>16	belong		>0		not stripped
43*b6cee71dSXin LI
44*b6cee71dSXin LI0	belong		0413		a.out big-endian 32-bit demand paged executable
45*b6cee71dSXin LI>16	belong		>0		not stripped
46*b6cee71dSXin LI
47