head	1.23;
access;
symbols
	netbsd-9-5-RELEASE:1.17
	netbsd-11-0-RELEASE:1.22
	netbsd-11-0-RC7:1.22
	netbsd-11-0-RC6:1.22
	netbsd-11-0-RC5:1.22
	FILE5_48:1.1.1.18
	netbsd-11-0-RC4:1.22
	netbsd-11-0-RC3:1.22
	netbsd-11-0-RC2:1.22
	netbsd-11-0-RC1:1.22
	perseant-exfatfs-base-20250801:1.22
	netbsd-11:1.22.0.4
	netbsd-11-base:1.22
	netbsd-10-1-RELEASE:1.21
	perseant-exfatfs-base-20240630:1.22
	perseant-exfatfs:1.22.0.2
	perseant-exfatfs-base:1.22
	netbsd-8-3-RELEASE:1.14
	netbsd-9-4-RELEASE:1.17
	netbsd-10-0-RELEASE:1.21
	netbsd-10-0-RC6:1.21
	netbsd-10-0-RC5:1.21
	netbsd-10-0-RC4:1.21
	netbsd-10-0-RC3:1.21
	netbsd-10-0-RC2:1.21
	netbsd-10-0-RC1:1.21
	FILE5_45:1.1.1.17
	netbsd-10:1.21.0.2
	netbsd-10-base:1.21
	FILE5_43:1.1.1.16
	netbsd-9-3-RELEASE:1.17
	cjep_sun2x-base1:1.20
	cjep_sun2x:1.20.0.4
	cjep_sun2x-base:1.20
	cjep_staticlib_x-base1:1.20
	netbsd-9-2-RELEASE:1.17
	cjep_staticlib_x:1.20.0.2
	cjep_staticlib_x-base:1.20
	FILE5_40:1.1.1.15
	netbsd-9-1-RELEASE:1.17
	FILE5_39:1.1.1.14
	phil-wifi-20200421:1.18
	phil-wifi-20200411:1.18
	is-mlppp:1.18.0.2
	is-mlppp-base:1.18
	phil-wifi-20200406:1.18
	netbsd-8-2-RELEASE:1.14
	netbsd-9-0-RELEASE:1.17
	netbsd-9-0-RC2:1.17
	FILE5_38:1.1.1.13
	netbsd-9-0-RC1:1.17
	phil-wifi-20191119:1.17
	netbsd-9:1.17.0.2
	netbsd-9-base:1.17
	phil-wifi-20190609:1.17
	netbsd-8-1-RELEASE:1.14
	FILE5_37:1.1.1.12
	netbsd-8-1-RC1:1.14
	pgoyette-compat-merge-20190127:1.14.10.2
	pgoyette-compat-20190127:1.16
	pgoyette-compat-20190118:1.16
	pgoyette-compat-1226:1.16
	pgoyette-compat-1126:1.16
	pgoyette-compat-1020:1.16
	FILE5_35:1.1.1.11
	pgoyette-compat-0930:1.15
	pgoyette-compat-0906:1.15
	netbsd-7-2-RELEASE:1.9
	pgoyette-compat-0728:1.15
	netbsd-8-0-RELEASE:1.14
	phil-wifi:1.15.0.2
	phil-wifi-base:1.15
	pgoyette-compat-0625:1.15
	netbsd-8-0-RC2:1.14
	pgoyette-compat-0521:1.15
	pgoyette-compat-0502:1.15
	pgoyette-compat-0422:1.15
	netbsd-8-0-RC1:1.14
	FILE5_33:1.1.1.10
	pgoyette-compat-0415:1.14
	pgoyette-compat-0407:1.14
	pgoyette-compat-0330:1.14
	pgoyette-compat-0322:1.14
	pgoyette-compat-0315:1.14
	netbsd-7-1-2-RELEASE:1.9
	pgoyette-compat:1.14.0.10
	pgoyette-compat-base:1.14
	netbsd-7-1-1-RELEASE:1.9
	matt-nb8-mediatek:1.14.0.8
	matt-nb8-mediatek-base:1.14
	FILE5_32:1.1.1.9
	perseant-stdc-iso10646:1.14.0.6
	perseant-stdc-iso10646-base:1.14
	netbsd-8:1.14.0.4
	netbsd-8-base:1.14
	FILE5_31:1.1.1.9
	prg-localcount2-base3:1.14
	prg-localcount2-base2:1.14
	prg-localcount2-base1:1.14
	prg-localcount2:1.14.0.2
	prg-localcount2-base:1.14
	pgoyette-localcount-20170426:1.14
	bouyer-socketcan-base1:1.14
	pgoyette-localcount-20170320:1.14
	netbsd-7-1:1.9.0.8
	netbsd-7-1-RELEASE:1.9
	netbsd-7-1-RC2:1.9
	FILE5_30:1.1.1.9
	netbsd-7-nhusb-base-20170116:1.9
	bouyer-socketcan:1.13.0.4
	bouyer-socketcan-base:1.13
	pgoyette-localcount-20170107:1.13
	netbsd-7-1-RC1:1.9
	pgoyette-localcount-20161104:1.13
	netbsd-7-0-2-RELEASE:1.9
	localcount-20160914:1.13
	netbsd-7-nhusb:1.9.0.6
	netbsd-7-nhusb-base:1.9
	pgoyette-localcount-20160806:1.13
	pgoyette-localcount-20160726:1.13
	pgoyette-localcount:1.13.0.2
	pgoyette-localcount-base:1.13
	netbsd-7-0-1-RELEASE:1.9
	netbsd-7-0:1.9.0.4
	netbsd-7-0-RELEASE:1.9
	netbsd-7-0-RC3:1.9
	netbsd-7-0-RC2:1.9
	netbsd-7-0-RC1:1.9
	FILE5_22:1.1.1.8
	FILE5_20:1.1.1.8
	netbsd-6-0-6-RELEASE:1.1.1.2.6.1
	netbsd-6-1-5-RELEASE:1.1.1.2.6.1
	netbsd-7:1.9.0.2
	netbsd-7-base:1.9
	FILE5_19:1.1.1.7
	yamt-pagecache-base9:1.8
	yamt-pagecache-tag8:1.1.1.2.4.3
	netbsd-6-1-4-RELEASE:1.1.1.2.6.1
	netbsd-6-0-5-RELEASE:1.1.1.2.6.1
	tls-earlyentropy:1.8.0.2
	tls-earlyentropy-base:1.9
	riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.8
	riastradh-drm2-base3:1.8
	netbsd-6-1-3-RELEASE:1.1.1.2.6.1
	netbsd-6-0-4-RELEASE:1.1.1.2.6.1
	FILE5_16:1.1.1.6
	netbsd-6-1-2-RELEASE:1.1.1.2.6.1
	netbsd-6-0-3-RELEASE:1.1.1.2.6.1
	netbsd-6-1-1-RELEASE:1.1.1.2.6.1
	riastradh-drm2-base2:1.6
	riastradh-drm2-base1:1.6
	riastradh-drm2:1.6.0.6
	riastradh-drm2-base:1.6
	netbsd-6-1:1.1.1.2.6.1.0.6
	netbsd-6-0-2-RELEASE:1.1.1.2.6.1
	netbsd-6-1-RELEASE:1.1.1.2.6.1
	khorben-n900:1.6.0.4
	netbsd-6-1-RC4:1.1.1.2.6.1
	netbsd-6-1-RC3:1.1.1.2.6.1
	agc-symver:1.6.0.2
	agc-symver-base:1.6
	FILE5_14:1.1.1.5
	netbsd-6-1-RC2:1.1.1.2.6.1
	netbsd-6-1-RC1:1.1.1.2.6.1
	yamt-pagecache-base8:1.4
	FILE_5_12:1.1.1.4
	netbsd-6-0-1-RELEASE:1.1.1.2.6.1
	yamt-pagecache-base7:1.3
	matt-nb6-plus-nbase:1.1.1.2.6.1
	yamt-pagecache-base6:1.3
	netbsd-6-0:1.1.1.2.6.1.0.4
	netbsd-6-0-RELEASE:1.1.1.2.6.1
	netbsd-6-0-RC2:1.1.1.2.6.1
	tls-maxphys:1.3.0.2
	tls-maxphys-base:1.9
	matt-nb6-plus:1.1.1.2.6.1.0.2
	matt-nb6-plus-base:1.1.1.2.6.1
	netbsd-6-0-RC1:1.1.1.2.6.1
	yamt-pagecache-base5:1.2
	yamt-pagecache-base4:1.2
	FILE5_11:1.1.1.3
	netbsd-6:1.1.1.2.0.6
	netbsd-6-base:1.1.1.2
	yamt-pagecache-base3:1.1.1.2
	yamt-pagecache-base2:1.1.1.2
	yamt-pagecache:1.1.1.2.0.4
	yamt-pagecache-base:1.1.1.2
	FILE5_09:1.1.1.2
	cherry-xenmp:1.1.1.2.0.2
	cherry-xenmp-base:1.1.1.2
	FILE5_07:1.1.1.2
	bouyer-quota2-nbase:1.1.1.1
	bouyer-quota2:1.1.1.1.0.4
	bouyer-quota2-base:1.1.1.1
	matt-mips64-premerge-20101231:1.1.1.1
	matt-premerge-20091211:1.1.1.1
	jym-xensuspend-base:1.1.1.1
	jym-xensuspend:1.1.1.1.0.2
	jym-xensuspend-nbase:1.1.1.1
	FILE5_03:1.1.1.1
	CHRISTOS:1.1.1;
locks; strict;
comment	@# @;


1.23
date	2026.06.10.20.54.16;	author christos;	state Exp;
branches;
next	1.22;
commitid	7mUHk6JZASLAkiJG;

1.22
date	2023.08.18.19.00.10;	author christos;	state Exp;
branches;
next	1.21;
commitid	MBLVQLzqzmQ7IiBE;

1.21
date	2022.09.24.20.21.46;	author christos;	state Exp;
branches;
next	1.20;
commitid	zJ5LoIcubBSIH9VD;

1.20
date	2021.04.09.19.11.41;	author christos;	state Exp;
branches;
next	1.19;
commitid	hKe2GL3vw8SVrEOC;

1.19
date	2020.06.15.00.37.24;	author christos;	state Exp;
branches;
next	1.18;
commitid	OSLCnHKb0ryCRfcC;

1.18
date	2019.12.17.02.31.05;	author christos;	state Exp;
branches;
next	1.17;
commitid	T4BTFY7rQ43kj0PB;

1.17
date	2019.05.22.17.26.05;	author christos;	state Exp;
branches;
next	1.16;
commitid	GumkPZ4rDiPTYdoB;

1.16
date	2018.10.19.00.11.48;	author christos;	state Exp;
branches;
next	1.15;
commitid	rS69r6X9WBZwavWA;

1.15
date	2018.04.15.19.45.32;	author christos;	state Exp;
branches
	1.15.2.1;
next	1.14;
commitid	PISTUVsbDjqSFzyA;

1.14
date	2017.02.10.17.53.24;	author christos;	state Exp;
branches
	1.14.10.1;
next	1.13;
commitid	bl2PZy94aycnQqFz;

1.13
date	2015.01.02.23.38.45;	author christos;	state Exp;
branches
	1.13.2.1
	1.13.4.1;
next	1.12;
commitid	HUMUFqiFjuLmvv4y;

1.12
date	2014.10.20.21.48.57;	author christos;	state Exp;
branches;
next	1.11;
commitid	hE8TPef93m86hZUx;

1.11
date	2014.10.10.20.15.01;	author christos;	state Exp;
branches;
next	1.10;
commitid	DPDduhHSBYgR4HTx;

1.10
date	2014.09.19.08.59.38;	author matt;	state Exp;
branches;
next	1.9;
commitid	69qTdyvYn3A01WQx;

1.9
date	2014.06.13.02.08.06;	author christos;	state Exp;
branches;
next	1.8;
commitid	4S2W0uH1Gw96TiEx;

1.8
date	2013.12.01.19.32.14;	author christos;	state Exp;
branches
	1.8.2.1;
next	1.7;
commitid	gZ22t2PQqTQYTsfx;

1.7
date	2013.08.04.07.49.07;	author matt;	state Exp;
branches;
next	1.6;
commitid	1vZ3dCyqVLdVP60x;

1.6
date	2013.03.23.16.23.46;	author christos;	state Exp;
branches;
next	1.5;

1.5
date	2013.03.23.16.15.58;	author christos;	state Exp;
branches;
next	1.4;

1.4
date	2013.01.03.23.05.37;	author christos;	state Exp;
branches;
next	1.3;

1.3
date	2012.08.04.15.51.20;	author matt;	state Exp;
branches
	1.3.2.1;
next	1.2;

1.2
date	2012.02.22.18.25.12;	author christos;	state Exp;
branches;
next	1.1;

1.1
date	2009.05.08.16.35.08;	author christos;	state Exp;
branches
	1.1.1.1;
next	;

1.15.2.1
date	2019.06.10.21.44.46;	author christos;	state Exp;
branches;
next	1.15.2.2;
commitid	jtc8rnCzWiEEHGqB;

1.15.2.2
date	2020.04.08.14.04.04;	author martin;	state Exp;
branches;
next	;
commitid	Qli2aW9E74UFuA3C;

1.14.10.1
date	2018.04.22.07.20.08;	author pgoyette;	state Exp;
branches;
next	1.14.10.2;
commitid	W6xykws0Zbl4kpzA;

1.14.10.2
date	2018.10.20.06.58.20;	author pgoyette;	state Exp;
branches;
next	;
commitid	mTSoqZEZ4arHnFWA;

1.13.2.1
date	2017.03.20.06.52.19;	author pgoyette;	state Exp;
branches;
next	;
commitid	jjw7cAwgyKq7RfKz;

1.13.4.1
date	2017.04.21.16.51.24;	author bouyer;	state Exp;
branches;
next	;
commitid	dUG7nkTKALCadqOz;

1.8.2.1
date	2014.08.10.07.07.10;	author tls;	state Exp;
branches;
next	;
commitid	b1wUlsZGswrdGMLx;

1.3.2.1
date	2013.02.25.00.26.06;	author tls;	state Exp;
branches;
next	1.3.2.2;

1.3.2.2
date	2013.06.23.06.26.32;	author tls;	state Exp;
branches;
next	1.3.2.3;
commitid	OnlO1cBgtQRcIHUw;

1.3.2.3
date	2014.08.19.23.46.47;	author tls;	state Exp;
branches;
next	;
commitid	jTnpym9Qu0o4R1Nx;

1.1.1.1
date	2009.05.08.16.35.08;	author christos;	state Exp;
branches
	1.1.1.1.2.1;
next	1.1.1.2;

1.1.1.2
date	2011.05.12.20.46.59;	author christos;	state Exp;
branches
	1.1.1.2.4.1
	1.1.1.2.6.1;
next	1.1.1.3;

1.1.1.3
date	2012.02.22.17.48.32;	author christos;	state Exp;
branches;
next	1.1.1.4;

1.1.1.4
date	2013.01.03.16.27.54;	author christos;	state Exp;
branches;
next	1.1.1.5;

1.1.1.5
date	2013.03.23.15.49.17;	author christos;	state Exp;
branches;
next	1.1.1.6;

1.1.1.6
date	2013.12.01.19.28.18;	author christos;	state Exp;
branches;
next	1.1.1.7;
commitid	RVQIxe3FpM3lSsfx;

1.1.1.7
date	2014.06.13.01.48.24;	author christos;	state Exp;
branches;
next	1.1.1.8;
commitid	jtTYsE5FmJU6MiEx;

1.1.1.8
date	2014.10.10.20.08.21;	author christos;	state Exp;
branches;
next	1.1.1.9;
commitid	pfOzhE33qnut2HTx;

1.1.1.9
date	2017.02.10.17.42.57;	author christos;	state Exp;
branches;
next	1.1.1.10;
commitid	HAP3kn9Hn6ovMqFz;

1.1.1.10
date	2018.04.15.19.32.48;	author christos;	state Exp;
branches;
next	1.1.1.11;
commitid	unKSwpX2g9VqBzyA;

1.1.1.11
date	2018.10.18.23.54.09;	author christos;	state Exp;
branches;
next	1.1.1.12;
commitid	e8WctwerBeEm4vWA;

1.1.1.12
date	2019.05.22.17.19.57;	author christos;	state Exp;
branches;
next	1.1.1.13;
commitid	VXeNRYYruN1MWdoB;

1.1.1.13
date	2019.12.17.02.23.53;	author christos;	state Exp;
branches;
next	1.1.1.14;
commitid	vqYTz60fS9PNg0PB;

1.1.1.14
date	2020.06.15.00.18.48;	author christos;	state Exp;
branches;
next	1.1.1.15;
commitid	HMbuXSjPojU5LfcC;

1.1.1.15
date	2021.04.09.18.58.01;	author christos;	state Exp;
branches;
next	1.1.1.16;
commitid	W9ddLLbSkHHinEOC;

1.1.1.16
date	2022.09.24.20.07.54;	author christos;	state Exp;
branches;
next	1.1.1.17;
commitid	Nf6F9kcpc0EPC9VD;

1.1.1.17
date	2023.08.18.18.36.50;	author christos;	state Exp;
branches;
next	1.1.1.18;
commitid	IX26ghc1E2S0AiBE;

1.1.1.18
date	2026.06.10.15.59.13;	author christos;	state Exp;
branches;
next	;
commitid	3UWc0DrzTz7bHgJG;

1.1.1.1.2.1
date	2009.05.08.16.35.08;	author jym;	state dead;
branches;
next	1.1.1.1.2.2;

1.1.1.1.2.2
date	2009.05.13.18.51.55;	author jym;	state Exp;
branches;
next	;

1.1.1.2.4.1
date	2012.04.17.00.03.08;	author yamt;	state Exp;
branches;
next	1.1.1.2.4.2;

1.1.1.2.4.2
date	2012.10.30.18.54.57;	author yamt;	state Exp;
branches;
next	1.1.1.2.4.3;

1.1.1.2.4.3
date	2013.01.23.00.04.35;	author yamt;	state Exp;
branches;
next	1.1.1.2.4.4;

1.1.1.2.4.4
date	2014.05.22.15.44.59;	author yamt;	state Exp;
branches;
next	;
commitid	tYJXbWAuFvTh7yBx;

1.1.1.2.6.1
date	2012.03.07.23.18.26;	author riz;	state Exp;
branches;
next	;


desc
@@


1.23
log
@merge changes between file-5.45 and file-5.48
@
text
@
#------------------------------------------------------------------------------
# $File: elf,v 1.91 2024/11/09 23:52:23 christos Exp $
# elf:  file(1) magic for ELF executables
#
# We have to check the byte order flag to see what byte order all the
# other stuff in the header is in.
#
# What're the correct byte orders for the nCUBE and the Fujitsu VPP500?
#
# https://www.sco.com/developers/gabi/latest/ch4.eheader.html
#
# Created by: unknown
# Modified by (1): Daniel Quinlan <quinlan@@yggdrasil.com>
# Modified by (2): Peter Tobias <tobias@@server.et-inf.fho-emden.de> (core support)
# Modified by (3): Christian 'Dr. Disk' Hechelmann <drdisk@@ds9.au.s.shuttle.de> (fix of core support)
# Modified by (4): <gerardo.cacciari@@gmail.com> (VMS Itanium)
# Modified by (5): Matthias Urlichs <smurf@@debian.org> (Listing of many architectures)

0	name		elf-mips
>0	lelong&0xf0000000	0x00000000	MIPS-I
>0	lelong&0xf0000000	0x10000000	MIPS-II
>0	lelong&0xf0000000	0x20000000	MIPS-III
>0	lelong&0xf0000000	0x30000000	MIPS-IV
>0	lelong&0xf0000000	0x40000000	MIPS-V
>0	lelong&0xf0000000	0x50000000	MIPS32
>0	lelong&0xf0000000	0x60000000	MIPS64
>0	lelong&0xf0000000	0x70000000	MIPS32 rel2
>0	lelong&0xf0000000	0x80000000	MIPS64 rel2
>0	lelong&0xf0000000	0x90000000	MIPS32 rel6
>0	lelong&0xf0000000	0xa0000000	MIPS64 rel6

0	name		elf-sparc
>0	lelong&0x00ffff00	0x00000100	V8+ Required,
>0	lelong&0x00ffff00	0x00000200	Sun UltraSPARC1 Extensions Required,
>0	lelong&0x00ffff00	0x00000400	HaL R1 Extensions Required,
>0	lelong&0x00ffff00	0x00000800	Sun UltraSPARC3 Extensions Required,
>0	lelong&0x3		0		total store ordering,
>0	lelong&0x3		1		partial store ordering,
>0	lelong&0x3		2		relaxed memory ordering,

0	name		elf-pa-risc
>2	leshort		0x020b		1.0
>2	leshort		0x0210		1.1
>2	leshort		0x0214		2.0
>0	leshort		&0x0008		(LP64)

0	name		elf-riscv
>0	lelong&0x00000001	0x00000001	RVC,
>0	lelong&0x00000008	0x00000008	RVE,
>0	lelong&0x00000006	0x00000000	soft-float ABI,
>0	lelong&0x00000006	0x00000002	single-float ABI,
>0	lelong&0x00000006	0x00000004	double-float ABI,
>0	lelong&0x00000006	0x00000006	quad-float ABI,

0	name		elf-le
>16	leshort		0		no file type,
!:mime	application/octet-stream
>16	leshort		1		relocatable,
!:mime	application/x-object
>16	leshort		2		executable,
!:mime	application/x-executable
>16	leshort		3		${x?pie executable:shared object},

!:mime	application/x-${x?pie-executable:sharedlib}
>16	leshort		4		core file,
!:mime	application/x-coredump
# OS-specific
>7	byte		202
>>16	leshort		0xFE01		executable,
!:mime	application/x-executable
# Core file detection is not reliable.
#>>>(0x38+0xcc) string	>\0		of '%s'
#>>>(0x38+0x10) lelong	>0		(signal %d),
>16	leshort		&0xff00
>>18	leshort		!8		processor-specific,
>>18	leshort		8
>>>16	leshort		0xFF80		PlayStation 2 IOP module,
!:mime	application/x-sharedlib
>>>16	leshort		!0xFF80		processor-specific,
>18	clear		x
>18	leshort		0		no machine,
>18	leshort		1		AT&T WE32100,
>18	leshort		2		SPARC,
>18	leshort		3		Intel i386,
>18	leshort		4		Motorola m68k,
>>4	byte		1
>>>36	lelong		&0x01000000	68000,
>>>36	lelong		&0x00810000	CPU32,
>>>36	lelong		0		68020,
>18	leshort		5		Motorola m88k,
>18	leshort		6		Intel i486,
>18	leshort		7		Intel i860,
# The official e_machine number for MIPS is now #8, regardless of endianness.
# The second number (#10) will be deprecated later. For now, we still
# say something if #10 is encountered, but only gory details for #8.
>18	leshort		8		MIPS,
>>4	byte		1
>>>36	lelong		&0x20		N32
>18	leshort		10		MIPS,
>>4	byte		1
>>>36	lelong		&0x20		N32
>18	leshort		8
# only for 32-bit
>>4	byte		1
>>>36	use		elf-mips
# only for 64-bit
>>4	byte		2
>>>48	use		elf-mips
>18	leshort		9		Amdahl,
>18	leshort		10		MIPS (deprecated),
>18	leshort		11		RS6000,
>18	leshort		15		PA-RISC,
# only for 32-bit
>>4	byte		1
>>>36	use		elf-pa-risc
# only for 64-bit
>>4	byte		2
>>>48	use		elf-pa-risc
>18	leshort		16		nCUBE,
>18	leshort		17		Fujitsu VPP500,
>18	leshort		18		SPARC32PLUS,
# only for 32-bit
>>4	byte		1
>>>36	use		elf-sparc
>18	leshort		19		Intel 80960,
>18	leshort		20		PowerPC or cisco 4500,
>18	leshort		21		64-bit PowerPC or cisco 7500,
>>48	lelong		0		Unspecified or Power ELF V1 ABI,
>>48	lelong		1		Power ELF V1 ABI,
>>48	lelong		2		OpenPOWER ELF V2 ABI,
>18	leshort		22		IBM S/390,
>18	leshort		23		Cell SPU,
>18	leshort		24		cisco SVIP,
>18	leshort		25		cisco 7200,
>18	leshort		36		NEC V800 or cisco 12000,
>18	leshort		37		Fujitsu FR20,
>18	leshort		38		TRW RH-32,
>18	leshort		39		Motorola RCE,
>18	leshort		40		ARM,
>>4	byte		1
>>>36	lelong&0xff000000	0x04000000	EABI4
>>>36	lelong&0xff000000	0x05000000	EABI5
>>>36	lelong		&0x00800000	BE8
>>>36	lelong		&0x00400000	LE8
>18	leshort		41		Alpha,
>18	leshort		42		Renesas SH,
>18	leshort		43		SPARC V9,
>>4	byte		2
>>>48	use		elf-sparc
>18	leshort		44		Siemens Tricore Embedded Processor,
>18	leshort		45		Argonaut RISC Core, Argonaut Technologies Inc.,
>18	leshort		46		Renesas H8/300,
>18	leshort		47		Renesas H8/300H,
>18	leshort		48		Renesas H8S,
>18	leshort		49		Renesas H8/500,
>18	leshort		50		IA-64,
>18	leshort		51		Stanford MIPS-X,
>18	leshort		52		Motorola Coldfire,
>18	leshort		53		Motorola M68HC12,
>18	leshort		54		Fujitsu MMA,
>18	leshort		55		Siemens PCP,
>18	leshort		56		Sony nCPU,
>18	leshort		57		Denso NDR1,
>18	leshort		58		Start*Core,
>18	leshort		59		Toyota ME16,
>18	leshort		60		ST100,
>18	leshort		61		Tinyj emb.,
>18	leshort		62		x86-64,
>18	leshort		63		Sony DSP,
>18	leshort		64		DEC PDP-10,
>18	leshort		65		DEC PDP-11,
>18	leshort		66		FX66,
>18	leshort		67		ST9+ 8/16 bit,
>18	leshort		68		ST7 8 bit,
>18	leshort		69		MC68HC16,
>18	leshort		70		MC68HC11,
>18	leshort		71		MC68HC08,
>18	leshort		72		MC68HC05,
>18	leshort		73		SGI SVx or Cray NV1,
>18	leshort		74		ST19 8 bit,
>18	leshort		75		Digital VAX,
>18	leshort		76		Axis cris,
>18	leshort		77		Infineon 32-bit embedded,
>18	leshort		78		Element 14 64-bit DSP,
>18	leshort		79		LSI Logic 16-bit DSP,
>18	leshort		80		MMIX,
>18	leshort		81		Harvard machine-independent,
>18	leshort		82		SiTera Prism,
>18	leshort		83		Atmel AVR 8-bit,
>18	leshort		84		Fujitsu FR30,
>18	leshort		85		Mitsubishi D10V,
>18	leshort		86		Mitsubishi D30V,
>18	leshort		87		NEC v850,
>18	leshort		88		Renesas M32R,
>18	leshort		89		Matsushita MN10300,
>18	leshort		90		Matsushita MN10200,
>18	leshort		91		picoJava,
>18	leshort		92		OpenRISC,
>18	leshort		93		Synopsys ARCompact ARC700 cores,
>18	leshort		94		Tensilica Xtensa,
>18	leshort		95		Alphamosaic VideoCore,
>18	leshort		96		Thompson Multimedia,
>18	leshort		97		NatSemi 32k,
>18	leshort		98		Tenor Network TPC,
>18	leshort		99		Trebia SNP 1000,
>18	leshort		100		STMicroelectronics ST200,
>18	leshort		101		Ubicom IP2022,
>18	leshort		102		MAX Processor,
>18	leshort		103		NatSemi CompactRISC,
>18	leshort		104		Fujitsu F2MC16,
>18	leshort		105		TI msp430,
>18	leshort		106		Analog Devices Blackfin,
>18	leshort		107		S1C33 Family of Seiko Epson,
>18	leshort		108		Sharp embedded,
>18	leshort		109		Arca RISC,
>18	leshort		110		PKU-Unity Ltd.,
>18	leshort		111		eXcess: 16/32/64-bit,
>18	leshort		112		Icera Deep Execution Processor,
>18	leshort		113		Altera Nios II,
>18	leshort		114		NatSemi CRX,
>18	leshort		115		Motorola XGATE,
>18	leshort		116		Infineon C16x/XC16x,
>18	leshort		117		Renesas M16C series,
>18	leshort		118		Microchip dsPIC30F,
>18	leshort		119		Freescale RISC core,
>18	leshort		120		Renesas M32C series,
>18	leshort		131		Altium TSK3000 core,
>18	leshort		132		Freescale RS08,
>18	leshort		134		Cyan Technology eCOG2,
>18	leshort		135		Sunplus S+core7 RISC,
>18	leshort		136		New Japan Radio (NJR) 24-bit DSP,
>18	leshort		137		Broadcom VideoCore III,
>18	leshort		138		LatticeMico32,
>18	leshort		139		Seiko Epson C17 family,
>18	leshort		140		TI TMS320C6000 DSP family,
>18	leshort		141		TI TMS320C2000 DSP family,
>18	leshort		142		TI TMS320C55x DSP family,
>18	leshort		144		TI Programmable Realtime Unit
>18	leshort		160		STMicroelectronics 64bit VLIW DSP,
>18	leshort		161		Cypress M8C,
>18	leshort		162		Renesas R32C series,
>18	leshort		163		NXP TriMedia family,
>18	leshort		164		QUALCOMM DSP6,
>18	leshort		165		Intel 8051 and variants,
>18	leshort		166		STMicroelectronics STxP7x family,
>18	leshort		167		Andes embedded RISC,
>18	leshort		168		Cyan eCOG1X family,
>18	leshort		169		Dallas MAXQ30,
>18	leshort		170		New Japan Radio (NJR) 16-bit DSP,
>18	leshort		171		M2000 Reconfigurable RISC,
>18	leshort		172		Cray NV2 vector architecture,
>18	leshort		173		Renesas RX family,
>18	leshort		174		META,
>18	leshort		175		MCST Elbrus,
>18	leshort		176		Cyan Technology eCOG16 family,
>18	leshort		177		NatSemi CompactRISC,
>18	leshort		178		Freescale Extended Time Processing Unit,
>18	leshort		179		Infineon SLE9X,
>18	leshort		180		Intel L1OM,
>18	leshort		181		Intel K1OM,
>18	leshort		183		ARM aarch64,
>18	leshort		185		Atmel 32-bit family,
>18	leshort		186		STMicroeletronics STM8 8-bit,
>18	leshort		187		Tilera TILE64,
>18	leshort		188		Tilera TILEPro,
>18	leshort		189		Xilinx MicroBlaze 32-bit RISC,
>18	leshort		190		NVIDIA CUDA architecture,
>18	leshort		191		Tilera TILE-Gx,
>18	leshort		195		Synopsys ARCv2/HS3x/HS4x cores,
>18	leshort		197		Renesas RL78 family,
>18	leshort		199		Renesas 78K0R,
>18	leshort		200		Freescale 56800EX,
>18	leshort		201		Beyond BA1,
>18	leshort		202		Beyond BA2,
>18	leshort		203		XMOS xCORE,
>18	leshort		204		Microchip 8-bit PIC(r),
>18	leshort		210		KM211 KM32,
>18	leshort		211		KM211 KMX32,
>18	leshort		212		KM211 KMX16,
>18	leshort		213		KM211 KMX8,
>18	leshort		214		KM211 KVARC,
>18	leshort		215		Paneve CDP,
>18	leshort		216		Cognitive Smart Memory,
>18	leshort		217		iCelero CoolEngine,
>18	leshort		218		Nanoradio Optimized RISC,
>18	leshort		219		CSR Kalimba architecture family
>18	leshort		220		Zilog Z80
>18	leshort		221		Controls and Data Services VISIUMcore processor
>18	leshort		222		FTDI Chip FT32 high performance 32-bit RISC architecture
>18	leshort		223		Moxie processor family
>18	leshort		224		AMD GPU architecture
>18	leshort		243		UCB RISC-V,
# only for 32-bit
>>4	byte		1
>>>36	use		elf-riscv
# only for 64-bit
>>4	byte		2
>>>48	use		elf-riscv
>18	leshort		244		Lanai 32-bit processor,
>18	leshort		245		CEVA Processor Architecture Family,
>18	leshort		246		CEVA X2 Processor Family,
>18	leshort		247		eBPF,
>18	leshort		248		Graphcore Intelligent Processing Unit,
>18	leshort		249		Imagination Technologies,
>18	leshort		250		Netronome Flow Processor,
>18	leshort		251             NEC Vector Engine,
>18	leshort		252		C-SKY processor family,
>18	leshort		253		Synopsys ARCv3 64-bit ISA/HS6x cores,
>18	leshort		254		MOS Technology MCS 6502 processor,
>18	leshort		255		Synopsys ARCv3 32-bit,
>18	leshort		256		Kalray VLIW core of the MPPA family,
>18	leshort		257		WDC 65816/65C816,
>18	leshort		258		LoongArch,
>18	leshort		259		ChipON KungFu32,
>18	leshort		0x1057		AVR (unofficial),
>18	leshort		0x1059		MSP430 (unofficial),
>18	leshort		0x1223		Adapteva Epiphany (unofficial),
>18	leshort		0x2530		Morpho MT (unofficial),
>18	leshort		0x3330		FR30 (unofficial),
>18	leshort		0x3426		OpenRISC (obsolete),
>18	leshort		0x4688		Infineon C166 (unofficial),
>18	leshort		0x5441		Cygnus FRV (unofficial),
>18	leshort		0x5aa5		DLX (unofficial),
>18	leshort		0x7650		Cygnus D10V (unofficial),
>18	leshort		0x7676		Cygnus D30V (unofficial),
>18	leshort		0x8217		Ubicom IP2xxx (unofficial),
>18	leshort		0x8472		OpenRISC (obsolete),
>18	leshort		0x9025		Cygnus PowerPC (unofficial),
>18	leshort		0x9026		Alpha (unofficial),
>18	leshort		0x9041		Cygnus M32R (unofficial),
>18	leshort		0x9080		Cygnus V850 (unofficial),
>18	leshort		0xa390		IBM S/390 (obsolete),
>18	leshort		0xabc7		Old Xtensa (unofficial),
>18	leshort		0xad45		xstormy16 (unofficial),
>18	leshort		0xbaab		Old MicroBlaze (unofficial),,
>18	leshort		0xbeef		Cygnus MN10300 (unofficial),
>18	leshort		0xdead		Cygnus MN10200 (unofficial),
>18	leshort		0xf00d		Toshiba MeP (unofficial),
>18	leshort		0xfeb0		Renesas M32C (unofficial),
>18	leshort		0xfeba		Vitesse IQ2000 (unofficial),
>18	leshort		0xfebb		NIOS (unofficial),
>18	leshort		0xfeed		Moxie (unofficial),
>18	default		x
>>18	leshort		x		*unknown arch %#x*
>20	lelong		0		invalid version
>20	lelong		1		version 1

0	string		\177ELF		ELF
!:strength *2
>4	byte		0		invalid class
>4	byte		1		32-bit
>4	byte		2		64-bit
>5	byte		0		invalid byte order
>5	byte		1		LSB
>>0	use		elf-le
>5	byte		2		MSB
>>0	use		\^elf-le
>7	byte		0		(SYSV)
>7	byte		1		(HP-UX)
>7	byte		2		(NetBSD)
>7	byte		3		(GNU/Linux)
>7	byte		4		(GNU/Hurd)
>7	byte		5		(86Open)
>7	byte		6		(Solaris)
>7	byte		7		(Monterey)
>7	byte		8		(IRIX)
>7	byte		9		(FreeBSD)
>7	byte		10		(Tru64)
>7	byte		11		(Novell Modesto)
>7	byte		12		(OpenBSD)
>7	byte		13		(OpenVMS)
>7	byte		14		(HP NonStop Kernel)
>7	byte		15		(AROS Research Operating System)
>7	byte		16		(FenixOS)
>7	byte		17		(Nuxi CloudABI)
>7	byte		97		(ARM)
>7	byte		102		(Cell LV2)
>7	byte		202		(Cafe OS)
>7	byte		255		(embedded)

# SELF Signed ELF used on the playstation
# https://www.psdevwiki.com/ps4/SELF_File_Format#make_fself_by_flatz
# https://www.psdevwiki.com/ps3/SELF_-_SPRX
0	lelong		0x4F153D1D
>4	lelong		0x00010112	PS4 Signed ELF file
>8	byte		1		\b, SELF/SPRX signed-elf/prx
>8	byte		2		\b, SRVK signed-revoke-list
>8	byte		3		\b, SPKG signed-package
>8	byte		4		\b, SSPP signed-security-policy-profile
>8	byte		5		\b, SDIFF signed-diff
>8	byte		6		\b, SPSFO signed-param-sfo
>9	byte&0xf0	x		\b, version %#x	
>9	byte&0x0f	4		\b, game
>9	byte&0x0f	5		\b, module
>9	byte&0x0f	6		\b, video app
>9	byte&0x0f	8		\b, System/EX application
>9	byte&0x0f	9		\b, System/EX module/dll
#>12	leshort		x		\b, header size %d
#>14	leshort		x		\b, signature size %d
#>16	lelong		x		\b, file size %d
#>18	leshort		x		\b, number of segments %d
#>20	leshort		22
@


1.22
log
@merge conflicts between file-5.43 and file-5.45
@
text
@d3 1
a3 1
# $File: elf,v 1.88 2023/01/08 17:09:18 christos Exp $
d85 1
a85 1
>18	leshort		3		Intel 80386,
d92 2
a93 2
>18	leshort		6		Intel 80486,
>18	leshort		7		Intel 80860,
d378 1
d381 23
@


1.21
log
@merge changes between 5.40 and 5.43
@
text
@d3 1
a3 1
# $File: elf,v 1.87 2021/05/25 15:19:51 christos Exp $
d11 2
d287 6
@


1.20
log
@merge local changes between 5.39 and 5.40 and add magic entries from HEAD.
@
text
@d3 1
a3 1
# $File: elf,v 1.85 2021/03/27 20:18:38 christos Exp $
d306 1
a306 1
>18	leshort		258		Loongson Loongarch,
d337 1
a337 1
>>18	leshort		x		*unknown arch 0x%x*
@


1.19
log
@merge conflicts
@
text
@d3 1
a3 1
# $File: elf,v 1.80 2020/02/12 22:17:33 christos Exp $
d46 8
d73 6
a78 1
>16	leshort		&0xff00		processor-specific,
d127 3
d198 1
a198 1
>18	leshort		93		ARC Cores Tangent-A5,
d237 1
d268 1
d286 9
d296 12
a307 1
>18	leshort		251             NEC VE,
@


1.18
log
@merge conflicts
@
text
@d3 1
a3 1
# $File: elf,v 1.79 2019/12/16 04:24:01 christos Exp $
d53 3
a55 2
>16	leshort		3		shared object,
!:mime	application/x-sharedlib
@


1.17
log
@merge conflicts
@
text
@d3 1
a3 1
# $File: elf,v 1.77 2019/01/16 19:33:35 christos Exp $
d41 1
a41 1
>2	leshort		0x0208		1.0
d53 2
a54 3
>16	leshort		3		${x?pie executable:shared object},

!:mime	application/x-${x?pie-executable:sharedlib}
@


1.16
log
@Merge conflicts
@
text
@d3 1
a3 1
# $File: elf,v 1.74 2018/06/23 16:39:53 christos Exp $
d41 2
d268 2
@


1.15
log
@merge conflicts for file-5.33
@
text
@d3 1
a3 1
# $File: elf,v 1.72 2018/02/24 19:50:04 christos Exp $
d51 1
a51 1
>16	leshort		3		${x?pie executable:shared object}
d54 1
a54 1
>16	leshort		4		core file
d56 4
d328 1
@


1.15.2.1
log
@Sync with HEAD
@
text
@d3 1
a3 1
# $File: elf,v 1.77 2019/01/16 19:33:35 christos Exp $
a40 2
>2	leshort		0x0208		1.0
>2	leshort		0x0210		1.1
d51 1
a51 1
>16	leshort		3		${x?pie executable:shared object},
d54 1
a54 1
>16	leshort		4		core file,
a55 4
# OS-specific
>7	byte		202
>>16	leshort		0xFE01		executable,
!:mime	application/x-executable
a261 2
>18	leshort		247		eBPF,
>18	leshort		251             NEC VE,
a323 1
>7	byte		202		(Cafe OS)
@


1.15.2.2
log
@Merge changes from current as of 20200406
@
text
@d3 1
a3 1
# $File: elf,v 1.79 2019/12/16 04:24:01 christos Exp $
d41 1
a41 1
>2	leshort		0x020b		1.0
d53 3
a55 2
>16	leshort		3		shared object,
!:mime	application/x-sharedlib
@


1.14
log
@merge conflicts
@
text
@d3 1
a3 1
# $File: elf,v 1.70 2016/06/02 12:36:30 christos Exp $
d51 3
a53 2
>16	leshort		3		shared object,
!:mime	application/x-sharedlib
@


1.14.10.1
log
@Sync with HEAD
@
text
@d3 1
a3 1
# $File: elf,v 1.72 2018/02/24 19:50:04 christos Exp $
d51 2
a52 3
>16	leshort		3		${x?pie executable:shared object}

!:mime	application/x-${x?pie-executable:sharedlib}
@


1.14.10.2
log
@Sync with head
@
text
@d3 1
a3 1
# $File: elf,v 1.74 2018/06/23 16:39:53 christos Exp $
d51 1
a51 1
>16	leshort		3		${x?pie executable:shared object},
d54 1
a54 1
>16	leshort		4		core file,
a55 4
# OS-specific
>7	byte		202
>>16	leshort		0xFE01		executable,
!:mime	application/x-executable
a323 1
>7	byte		202		(Cafe OS)
@


1.13
log
@add a clear that did not merge.
@
text
@d3 1
a3 1
# $File: elf,v 1.68 2014/09/19 19:05:57 christos Exp $
d18 26
d84 1
a84 9
>>>36  lelong&0xf0000000	0x00000000	MIPS-I
>>>36  lelong&0xf0000000	0x10000000	MIPS-II
>>>36  lelong&0xf0000000	0x20000000	MIPS-III
>>>36  lelong&0xf0000000	0x30000000	MIPS-IV
>>>36  lelong&0xf0000000	0x40000000	MIPS-V
>>>36  lelong&0xf0000000	0x50000000	MIPS32
>>>36  lelong&0xf0000000	0x60000000	MIPS64
>>>36  lelong&0xf0000000	0x70000000	MIPS32 rel2
>>>36  lelong&0xf0000000	0x80000000	MIPS64 rel2
d87 1
a87 9
>>>48  lelong&0xf0000000	0x00000000	MIPS-I
>>>48  lelong&0xf0000000	0x10000000	MIPS-II
>>>48  lelong&0xf0000000	0x20000000	MIPS-III
>>>48  lelong&0xf0000000	0x30000000	MIPS-IV
>>>48  lelong&0xf0000000	0x40000000	MIPS-V
>>>48  lelong&0xf0000000	0x50000000	MIPS32
>>>48  lelong&0xf0000000	0x60000000	MIPS64
>>>48  lelong&0xf0000000	0x70000000	MIPS32 rel2
>>>48  lelong&0xf0000000	0x80000000	MIPS64 rel2
d94 1
a94 2
>>>38	leshort		0x0214		2.0
>>>36	leshort		&0x0008		(LP64)
d97 1
a97 2
>>>50	leshort		0x0214		2.0
>>>48	leshort		&0x0008		(LP64)
d103 1
a103 4
>>>36	lelong&0xffff00	0x000100	V8+ Required,
>>>36	lelong&0xffff00	0x000200	Sun UltraSPARC1 Extensions Required,
>>>36	lelong&0xffff00	0x000400	HaL R1 Extensions Required,
>>>36	lelong&0xffff00	0x000800	Sun UltraSPARC3 Extensions Required,
d125 1
a125 6
>>>48	lelong&0xffff00	0x000200	Sun UltraSPARC1 Extensions Required,
>>>48	lelong&0xffff00	0x000400	HaL R1 Extensions Required,
>>>48	lelong&0xffff00	0x000800	Sun UltraSPARC3 Extensions Required,
>>>48	lelong&0x3	0		total store ordering,
>>>48	lelong&0x3	1		partial store ordering,
>>>48	lelong&0x3	2		relaxed memory ordering,
d304 20
a323 22
# Up to now only 0, 1 and 2 are defined; I've seen a file with 0x83, it seemed
# like proper ELF, but extracting the string had bad results.
>4      byte            <0x80
>>8	string		>\0		(%s)
>8	string		\0
>>7	byte		0		(SYSV)
>>7	byte		1		(HP-UX)
>>7	byte		2		(NetBSD)
>>7	byte		3		(GNU/Linux)
>>7	byte		4		(GNU/Hurd)
>>7	byte		5		(86Open)
>>7	byte		6		(Solaris)
>>7	byte		7		(Monterey)
>>7	byte		8		(IRIX)
>>7	byte		9		(FreeBSD)
>>7	byte		10		(Tru64)
>>7	byte		11		(Novell Modesto)
>>7	byte		12		(OpenBSD)
>8      string          \2
>>7     byte            13              (OpenVMS)
>>7	byte		97		(ARM)
>>7	byte		255		(embedded)
@


1.13.4.1
log
@Sync with HEAD
@
text
@d3 1
a3 1
# $File: elf,v 1.70 2016/06/02 12:36:30 christos Exp $
a17 26
0	name		elf-mips
>0	lelong&0xf0000000	0x00000000	MIPS-I
>0	lelong&0xf0000000	0x10000000	MIPS-II
>0	lelong&0xf0000000	0x20000000	MIPS-III
>0	lelong&0xf0000000	0x30000000	MIPS-IV
>0	lelong&0xf0000000	0x40000000	MIPS-V
>0	lelong&0xf0000000	0x50000000	MIPS32
>0	lelong&0xf0000000	0x60000000	MIPS64
>0	lelong&0xf0000000	0x70000000	MIPS32 rel2
>0	lelong&0xf0000000	0x80000000	MIPS64 rel2
>0	lelong&0xf0000000	0x90000000	MIPS32 rel6
>0	lelong&0xf0000000	0xa0000000	MIPS64 rel6

0	name		elf-sparc
>0	lelong&0x00ffff00	0x00000100	V8+ Required,
>0	lelong&0x00ffff00	0x00000200	Sun UltraSPARC1 Extensions Required,
>0	lelong&0x00ffff00	0x00000400	HaL R1 Extensions Required,
>0	lelong&0x00ffff00	0x00000800	Sun UltraSPARC3 Extensions Required,
>0	lelong&0x3		0		total store ordering,
>0	lelong&0x3		1		partial store ordering,
>0	lelong&0x3		2		relaxed memory ordering,

0	name		elf-pa-risc
>2	leshort		0x0214		2.0
>0	leshort		&0x0008		(LP64)

d58 9
a66 1
>>>36	use		elf-mips
d69 9
a77 1
>>>48	use		elf-mips
d84 2
a85 1
>>>36	use		elf-pa-risc
d88 2
a89 1
>>>48	use		elf-pa-risc
d95 4
a98 1
>>>36	use		elf-sparc
d120 6
a125 1
>>>48	use		elf-sparc
d304 22
a325 20
>7	byte		0		(SYSV)
>7	byte		1		(HP-UX)
>7	byte		2		(NetBSD)
>7	byte		3		(GNU/Linux)
>7	byte		4		(GNU/Hurd)
>7	byte		5		(86Open)
>7	byte		6		(Solaris)
>7	byte		7		(Monterey)
>7	byte		8		(IRIX)
>7	byte		9		(FreeBSD)
>7	byte		10		(Tru64)
>7	byte		11		(Novell Modesto)
>7	byte		12		(OpenBSD)
>7	byte		13		(OpenVMS)
>7	byte		14		(HP NonStop Kernel)
>7	byte		15		(AROS Research Operating System)
>7	byte		16		(FenixOS)
>7	byte		17		(Nuxi CloudABI)
>7	byte		97		(ARM)
>7	byte		255		(embedded)
@


1.13.2.1
log
@Sync with HEAD
@
text
@d3 1
a3 1
# $File: elf,v 1.70 2016/06/02 12:36:30 christos Exp $
a17 26
0	name		elf-mips
>0	lelong&0xf0000000	0x00000000	MIPS-I
>0	lelong&0xf0000000	0x10000000	MIPS-II
>0	lelong&0xf0000000	0x20000000	MIPS-III
>0	lelong&0xf0000000	0x30000000	MIPS-IV
>0	lelong&0xf0000000	0x40000000	MIPS-V
>0	lelong&0xf0000000	0x50000000	MIPS32
>0	lelong&0xf0000000	0x60000000	MIPS64
>0	lelong&0xf0000000	0x70000000	MIPS32 rel2
>0	lelong&0xf0000000	0x80000000	MIPS64 rel2
>0	lelong&0xf0000000	0x90000000	MIPS32 rel6
>0	lelong&0xf0000000	0xa0000000	MIPS64 rel6

0	name		elf-sparc
>0	lelong&0x00ffff00	0x00000100	V8+ Required,
>0	lelong&0x00ffff00	0x00000200	Sun UltraSPARC1 Extensions Required,
>0	lelong&0x00ffff00	0x00000400	HaL R1 Extensions Required,
>0	lelong&0x00ffff00	0x00000800	Sun UltraSPARC3 Extensions Required,
>0	lelong&0x3		0		total store ordering,
>0	lelong&0x3		1		partial store ordering,
>0	lelong&0x3		2		relaxed memory ordering,

0	name		elf-pa-risc
>2	leshort		0x0214		2.0
>0	leshort		&0x0008		(LP64)

d58 9
a66 1
>>>36	use		elf-mips
d69 9
a77 1
>>>48	use		elf-mips
d84 2
a85 1
>>>36	use		elf-pa-risc
d88 2
a89 1
>>>48	use		elf-pa-risc
d95 4
a98 1
>>>36	use		elf-sparc
d120 6
a125 1
>>>48	use		elf-sparc
d304 22
a325 20
>7	byte		0		(SYSV)
>7	byte		1		(HP-UX)
>7	byte		2		(NetBSD)
>7	byte		3		(GNU/Linux)
>7	byte		4		(GNU/Hurd)
>7	byte		5		(86Open)
>7	byte		6		(Solaris)
>7	byte		7		(Monterey)
>7	byte		8		(IRIX)
>7	byte		9		(FreeBSD)
>7	byte		10		(Tru64)
>7	byte		11		(Novell Modesto)
>7	byte		12		(OpenBSD)
>7	byte		13		(OpenVMS)
>7	byte		14		(HP NonStop Kernel)
>7	byte		15		(AROS Research Operating System)
>7	byte		16		(FenixOS)
>7	byte		17		(Nuxi CloudABI)
>7	byte		97		(ARM)
>7	byte		255		(embedded)
@


1.12
log
@sync with head of upstream to fix MacOS/X compilation and more.
@
text
@d33 1
@


1.11
log
@welcome to file-5.20
@
text
@a32 1
>18	clear		x
@


1.10
log
@Add UCB RISC-V EM value
@
text
@d3 1
a3 1
# $File: elf,v 1.67 2014/06/12 13:52:48 christos Exp $
d260 1
a260 1
>18	leshort		243		UCB RISC-V
@


1.9
log
@merge conflicts
@
text
@d260 1
@


1.8
log
@merge conflicts
@
text
@d3 1
a3 1
# $File: elf,v 1.64 2013/08/04 09:31:47 christos Exp $
d35 2
a36 2
>18	leshort		1		AT&T WE32100
>18	leshort		2		SPARC
d38 1
a38 1
>18	leshort		4		Motorola
d43 1
a43 1
>18	leshort		5		Motorola 88000,
d99 1
a116 1
>18	leshort		0xa390		IBM S/390 (obsolete),
d146 2
d177 2
d180 8
d189 6
d196 32
a227 1
>18	beshort		138		LatticeMico32,
d229 7
d237 2
d241 2
d244 21
d266 6
d273 1
d275 13
@


1.8.2.1
log
@Rebase.
@
text
@d3 1
a3 1
# $File: elf,v 1.67 2014/06/12 13:52:48 christos Exp $
d35 2
a36 2
>18	leshort		1		AT&T WE32100,
>18	leshort		2		SPARC,
d38 1
a38 1
>18	leshort		4		Motorola m68k,
d43 1
a43 1
>18	leshort		5		Motorola m88k,
a98 1
>18	leshort		19		Intel 80960,
d116 1
a145 2
>18	leshort		64		DEC PDP-10,
>18	leshort		65		DEC PDP-11,
a174 2
>18	leshort		95		Alphamosaic VideoCore,
>18	leshort		96		Thompson Multimedia,
a175 8
>18	leshort		98		Tenor Network TPC,
>18	leshort		99		Trebia SNP 1000,
>18	leshort		100		STMicroelectronics ST200,
>18	leshort		101		Ubicom IP2022,
>18	leshort		102		MAX Processor,
>18	leshort		103		NatSemi CompactRISC,
>18	leshort		104		Fujitsu F2MC16,
>18	leshort		105		TI msp430,
a176 6
>18	leshort		107		S1C33 Family of Seiko Epson,
>18	leshort		108		Sharp embedded,
>18	leshort		109		Arca RISC,
>18	leshort		110		PKU-Unity Ltd.,
>18	leshort		111		eXcess: 16/32/64-bit,
>18	leshort		112		Icera Deep Execution Processor,
d178 1
a178 32
>18	leshort		114		NatSemi CRX,
>18	leshort		115		Motorola XGATE,
>18	leshort		116		Infineon C16x/XC16x,
>18	leshort		117		Renesas M16C series,
>18	leshort		118		Microchip dsPIC30F,
>18	leshort		119		Freescale RISC core,
>18	leshort		120		Renesas M32C series,
>18	leshort		131		Altium TSK3000 core,
>18	leshort		132		Freescale RS08,
>18	leshort		134		Cyan Technology eCOG2,
>18	leshort		135		Sunplus S+core7 RISC,
>18	leshort		136		New Japan Radio (NJR) 24-bit DSP,
>18	leshort		137		Broadcom VideoCore III,
>18	leshort		138		LatticeMico32,
>18	leshort		139		Seiko Epson C17 family,
>18	leshort		140		TI TMS320C6000 DSP family,
>18	leshort		141		TI TMS320C2000 DSP family,
>18	leshort		142		TI TMS320C55x DSP family,
>18	leshort		160		STMicroelectronics 64bit VLIW DSP,
>18	leshort		161		Cypress M8C,
>18	leshort		162		Renesas R32C series,
>18	leshort		163		NXP TriMedia family,
>18	leshort		164		QUALCOMM DSP6,
>18	leshort		165		Intel 8051 and variants,
>18	leshort		166		STMicroelectronics STxP7x family,
>18	leshort		167		Andes embedded RISC,
>18	leshort		168		Cyan eCOG1X family,
>18	leshort		169		Dallas MAXQ30,
>18	leshort		170		New Japan Radio (NJR) 16-bit DSP,
>18	leshort		171		M2000 Reconfigurable RISC,
>18	leshort		172		Cray NV2 vector architecture,
>18	leshort		173		Renesas RX family,
a179 7
>18	leshort		175		MCST Elbrus,
>18	leshort		176		Cyan Technology eCOG16 family,
>18	leshort		177		NatSemi CompactRISC,
>18	leshort		178		Freescale Extended Time Processing Unit,
>18	leshort		179		Infineon SLE9X,
>18	leshort		180		Intel L1OM,
>18	leshort		181		Intel K1OM,
a180 2
>18	leshort		185		Atmel 32-bit family,
>18	leshort		186		STMicroeletronics STM8 8-bit,
a182 2
>18	leshort		189		Xilinx MicroBlaze 32-bit RISC,
>18	leshort		190		NVIDIA CUDA architecture,
a183 21
>18	leshort		197		Renesas RL78 family,
>18	leshort		199		Renesas 78K0R,
>18	leshort		200		Freescale 56800EX,
>18	leshort		201		Beyond BA1,
>18	leshort		202		Beyond BA2,
>18	leshort		203		XMOS xCORE,
>18	leshort		204		Microchip 8-bit PIC(r),
>18	leshort		210		KM211 KM32,
>18	leshort		211		KM211 KMX32,
>18	leshort		212		KM211 KMX16,
>18	leshort		213		KM211 KMX8,
>18	leshort		214		KM211 KVARC,
>18	leshort		215		Paneve CDP,
>18	leshort		216		Cognitive Smart Memory,
>18	leshort		217		iCelero CoolEngine,
>18	leshort		218		Nanoradio Optimized RISC,
>18	leshort		0x1057		AVR (unofficial),
>18	leshort		0x1059		MSP430 (unofficial),
>18	leshort		0x1223		Adapteva Epiphany (unofficial),
>18	leshort		0x2530		Morpho MT (unofficial),
>18	leshort		0x3330		FR30 (unofficial),
a184 6
>18	leshort		0x4688		Infineon C166 (unofficial),
>18	leshort		0x5441		Cygnus FRV (unofficial),
>18	leshort		0x5aa5		DLX (unofficial),
>18	leshort		0x7650		Cygnus D10V (unofficial),
>18	leshort		0x7676		Cygnus D30V (unofficial),
>18	leshort		0x8217		Ubicom IP2xxx (unofficial),
a185 1
>18	leshort		0x9025		Cygnus PowerPC (unofficial),
a186 13
>18	leshort		0x9041		Cygnus M32R (unofficial),
>18	leshort		0x9080		Cygnus V850 (unofficial),
>18	leshort		0xa390		IBM S/390 (obsolete),
>18	leshort		0xabc7		Old Xtensa (unofficial),
>18	leshort		0xad45		xstormy16 (unofficial),
>18	leshort		0xbaab		Old MicroBlaze (unofficial),,
>18	leshort		0xbeef		Cygnus MN10300 (unofficial),
>18	leshort		0xdead		Cygnus MN10200 (unofficial),
>18	leshort		0xf00d		Toshiba MeP (unofficial),
>18	leshort		0xfeb0		Renesas M32C (unofficial),
>18	leshort		0xfeba		Vitesse IQ2000 (unofficial),
>18	leshort		0xfebb		NIOS (unofficial),
>18	leshort		0xfeed		Moxie (unofficial),
@


1.7
log
@Print out BE8 and LE8 for arm elf
@
text
@d3 1
a3 1
# $File: elf,v 1.59 2013/03/21 17:50:02 christos Exp $
d33 1
d40 4
a43 4
>>>36	lelong		&0x01000000	68000 - invalid byte order,
>>>36	lelong		&0x00810000	CPU32 - invalid byte order,
>>>36	lelong		0		68020 - invalid byte order,
>18	leshort		5		Motorola 88000 - invalid byte order,
d78 1
a78 1
>18	leshort		9		Amdahl - invalid byte order,
d80 2
a81 2
>18	leshort		11		RS6000 - invalid byte order,
>18	leshort		15		PA-RISC - invalid byte order,
d178 1
d187 2
@


1.6
log
@remove extra space
@
text
@d112 2
@


1.5
log
@merge new file
@
text
@d192 1
a192 1
>5	byte		1		LSB 
d194 1
a194 1
>5	byte		2		MSB 
@


1.4
log
@merge changes
@
text
@d3 1
a3 1
# $File: elf,v 1.58 2012/11/06 20:43:52 christos Exp $
a19 1
!:strength *2
d187 1
@


1.3
log
@Add EABI4 and EABI5 for arm
@
text
@d3 1
a3 1
# $File: elf,v 1.54 2011/12/17 17:16:29 christos Exp $
d17 3
a19 7
0	string		\177ELF		ELF
>4	byte		0		invalid class
>4	byte		1		32-bit
>4	byte		2		64-bit
>5	byte		0		invalid byte order
>5	byte		1		LSB
>>16	leshort		0		no file type,
d22 1
a22 1
>>16	leshort		1		relocatable,
d24 1
a24 1
>>16	leshort		2		executable,
d26 1
a26 1
>>16	leshort		3		shared object,
d28 1
a28 1
>>16	leshort		4		core file
d33 13
a45 13
>>16	leshort		&0xff00		processor-specific,
>>18	leshort		0		no machine,
>>18	leshort		1		AT&T WE32100 - invalid byte order,
>>18	leshort		2		SPARC - invalid byte order,
>>18	leshort		3		Intel 80386,
>>18	leshort		4		Motorola
>>>4	byte		1
>>>>36	lelong		&0x01000000	68000 - invalid byte order,
>>>>36	lelong		&0x00810000	CPU32 - invalid byte order,
>>>>36	lelong		0		68020 - invalid byte order,
>>18	leshort		5		Motorola 88000 - invalid byte order,
>>18	leshort		6		Intel 80486,
>>18	leshort		7		Intel 80860,
d49 7
a55 153
>>18	leshort		8		MIPS,
>>>4	byte		1
>>>>36	lelong		&0x20		N32
>>18	leshort		10		MIPS,
>>>4	byte		1
>>>>36	lelong		&0x20		N32
>>18	leshort		8
# only for 32-bit
>>>4	byte		1
>>>>36  lelong&0xf0000000	0x00000000	MIPS-I
>>>>36  lelong&0xf0000000	0x10000000	MIPS-II
>>>>36  lelong&0xf0000000	0x20000000	MIPS-III
>>>>36  lelong&0xf0000000	0x30000000	MIPS-IV
>>>>36  lelong&0xf0000000	0x40000000	MIPS-V
>>>>36  lelong&0xf0000000	0x50000000	MIPS32
>>>>36  lelong&0xf0000000	0x60000000	MIPS64
>>>>36  lelong&0xf0000000	0x70000000	MIPS32 rel2
>>>>36  lelong&0xf0000000	0x80000000	MIPS64 rel2
# only for 64-bit
>>>4	byte		2
>>>>48  lelong&0xf0000000	0x00000000	MIPS-I
>>>>48  lelong&0xf0000000	0x10000000	MIPS-II
>>>>48  lelong&0xf0000000	0x20000000	MIPS-III
>>>>48  lelong&0xf0000000	0x30000000	MIPS-IV
>>>>48  lelong&0xf0000000	0x40000000	MIPS-V
>>>>48  lelong&0xf0000000	0x50000000	MIPS32
>>>>48  lelong&0xf0000000	0x60000000	MIPS64
>>>>48  lelong&0xf0000000	0x70000000	MIPS32 rel2
>>>>48  lelong&0xf0000000	0x80000000	MIPS64 rel2
>>18	leshort		9		Amdahl - invalid byte order,
>>18	leshort		10		MIPS (deprecated),
>>18	leshort		11		RS6000 - invalid byte order,
>>18	leshort		15		PA-RISC - invalid byte order,
# only for 32-bit
>>>4	byte		1
>>>>38	leshort		0x0214		2.0
>>>>36	leshort		&0x0008		(LP64)
# only for 64-bit
>>>4	byte		2
>>>>50	leshort		0x0214		2.0
>>>>48	leshort		&0x0008		(LP64)
>>18	leshort		16		nCUBE,
>>18	leshort		17		Fujitsu VPP500,
>>18	leshort		18		SPARC32PLUS - invalid byte order,
>>18	leshort		20		PowerPC,
>>18	leshort		22		IBM S/390,
>>18	leshort		36		NEC V800,
>>18	leshort		37		Fujitsu FR20,
>>18	leshort		38		TRW RH-32,
>>18	leshort		39		Motorola RCE,
>>18	leshort		40		ARM,
>>>4	byte		1
>>>>36  lelong&0xff000000	0x04000000	EABI4
>>>>36  lelong&0xff000000	0x05000000	EABI5
>>18	leshort		41		Alpha,
>>18	leshort		0xa390		IBM S/390 (obsolete),
>>18	leshort		42		Renesas SH,
>>18	leshort		43		SPARC V9 - invalid byte order,
>>18	leshort		44		Siemens Tricore Embedded Processor,
>>18	leshort		45		Argonaut RISC Core, Argonaut Technologies Inc.,
>>18	leshort		46		Renesas H8/300,
>>18	leshort		47		Renesas H8/300H,
>>18	leshort		48		Renesas H8S,
>>18	leshort		49		Renesas H8/500,
>>18	leshort		50		IA-64,
>>18	leshort		51		Stanford MIPS-X,
>>18	leshort		52		Motorola Coldfire,
>>18	leshort		53		Motorola M68HC12,
>>18	leshort		54		Fujitsu MMA,
>>18	leshort		55		Siemens PCP,
>>18	leshort		56		Sony nCPU,
>>18	leshort		57		Denso NDR1,
>>18	leshort		58		Start*Core,
>>18	leshort		59		Toyota ME16,
>>18	leshort		60		ST100,
>>18	leshort		61		Tinyj emb.,
>>18	leshort		62		x86-64,
>>18	leshort		63		Sony DSP,
>>18	leshort		66		FX66,
>>18	leshort		67		ST9+ 8/16 bit,
>>18	leshort		68		ST7 8 bit,
>>18	leshort		69		MC68HC16,
>>18	leshort		70		MC68HC11,
>>18	leshort		71		MC68HC08,
>>18	leshort		72		MC68HC05,
>>18	leshort		73		SGI SVx,
>>18	leshort		74		ST19 8 bit,
>>18	leshort		75		Digital VAX,
>>18	leshort		76		Axis cris,
>>18	leshort		77		Infineon 32-bit embedded,
>>18	leshort		78		Element 14 64-bit DSP,
>>18	leshort		79		LSI Logic 16-bit DSP,
>>18	leshort		80		MMIX,
>>18	leshort		81		Harvard machine-independent,
>>18	leshort		82		SiTera Prism,
>>18	leshort		83		Atmel AVR 8-bit,
>>18	leshort		84		Fujitsu FR30,
>>18	leshort		85		Mitsubishi D10V,
>>18	leshort		86		Mitsubishi D30V,
>>18	leshort		87		NEC v850,
>>18	leshort		88		Renesas M32R,
>>18	leshort		89		Matsushita MN10300,
>>18	leshort		90		Matsushita MN10200,
>>18	leshort		91		picoJava,
>>18	leshort		92		OpenRISC,
>>18	leshort		93		ARC Cores Tangent-A5,
>>18	leshort		94		Tensilica Xtensa,
>>18	leshort		97		NatSemi 32k,
>>18	leshort		106		Analog Devices Blackfin,
>>18	leshort		113		Altera Nios II,
>>18	leshort		0xae		META,
>>18	leshort		187		Tilera TILE64,
>>18	leshort		188		Tilera TILEPro,
>>18	leshort		191		Tilera TILE-Gx,
>>18	leshort		0x3426		OpenRISC (obsolete),
>>18	leshort		0x8472		OpenRISC (obsolete),
>>18	leshort		0x9026		Alpha (unofficial),
>>20	lelong		0		invalid version
>>20	lelong		1		version 1
>5	byte		2		MSB
>>16	beshort		0		no file type,
!:mime	application/octet-stream
>>16	beshort		1		relocatable,
!:mime	application/x-object
>>16	beshort		2		executable,
!:mime	application/x-executable
>>16	beshort		3		shared object,
!:mime	application/x-sharedlib
>>16	beshort		4		core file,
!:mime	application/x-coredump
#>>>(0x38+0xcc) string	>\0		of '%s'
#>>>(0x38+0x10) belong	>0		(signal %d),
>>16	beshort		&0xff00		processor-specific,
>>18	beshort		0		no machine,
>>18	beshort		1		AT&T WE32100,
>>18	beshort		2		SPARC,
>>18	beshort		3		Intel 80386 - invalid byte order,
>>18	beshort		4		Motorola
>>>4	byte		1
>>>>36	belong		&0x01000000	68000,
>>>>36	belong		&0x00810000	CPU32,
>>>>36	belong		0		68020,
>>18	beshort		5		Motorola 88000,
>>18	beshort		6		Intel 80486 - invalid byte order,
>>18	beshort		7		Intel 80860,
# only for MIPS - see comment in little-endian section above.
>>18	beshort		8		MIPS,
>>>4	byte		1
>>>>36	belong		&0x20		N32
>>18	beshort		10		MIPS,
>>>4	byte		1
>>>>36	belong		&0x20		N32
>>18	beshort		8
d57 10
a66 10
>>>4	byte		1
>>>>36  belong&0xf0000000	0x00000000	MIPS-I
>>>>36  belong&0xf0000000	0x10000000	MIPS-II
>>>>36  belong&0xf0000000	0x20000000	MIPS-III
>>>>36  belong&0xf0000000	0x30000000	MIPS-IV
>>>>36  belong&0xf0000000	0x40000000	MIPS-V
>>>>36  belong&0xf0000000	0x50000000	MIPS32
>>>>36  belong&0xf0000000	0x60000000	MIPS64
>>>>36  belong&0xf0000000	0x70000000	MIPS32 rel2
>>>>36  belong&0xf0000000	0x80000000	MIPS64 rel2
d68 14
a81 14
>>>4	byte		2
>>>>48	belong&0xf0000000	0x00000000	MIPS-I
>>>>48	belong&0xf0000000	0x10000000	MIPS-II
>>>>48	belong&0xf0000000	0x20000000	MIPS-III
>>>>48	belong&0xf0000000	0x30000000	MIPS-IV
>>>>48	belong&0xf0000000	0x40000000	MIPS-V
>>>>48	belong&0xf0000000	0x50000000	MIPS32
>>>>48	belong&0xf0000000	0x60000000	MIPS64
>>>>48	belong&0xf0000000	0x70000000	MIPS32 rel2
>>>>48	belong&0xf0000000	0x80000000	MIPS64 rel2
>>18	beshort		9		Amdahl,
>>18	beshort		10		MIPS (deprecated),
>>18	beshort		11		RS6000,
>>18	beshort		15		PA-RISC
d83 3
a85 3
>>>4	byte		1
>>>>38	beshort		0x0214		2.0
>>>>36	beshort		&0x0008		(LP64)
d87 6
a92 6
>>>4	byte		2
>>>>50	beshort		0x0214		2.0
>>>>48	beshort		&0x0008		(LP64)
>>18	beshort		16		nCUBE,
>>18	beshort		17		Fujitsu VPP500,
>>18	beshort		18		SPARC32PLUS,
d94 102
a195 57
>>>4	byte		1
>>>>36	belong&0xffff00	0x000100	V8+ Required,
>>>>36	belong&0xffff00	0x000200	Sun UltraSPARC1 Extensions Required,
>>>>36	belong&0xffff00	0x000400	HaL R1 Extensions Required,
>>>>36	belong&0xffff00	0x000800	Sun UltraSPARC3 Extensions Required,
>>18	beshort		20		PowerPC or cisco 4500,
>>18	beshort		21		64-bit PowerPC or cisco 7500,
>>18	beshort		22		IBM S/390,
>>18	beshort		23		Cell SPU,
>>18	beshort		24		cisco SVIP,
>>18	beshort		25		cisco 7200,
>>18	beshort		36		NEC V800 or cisco 12000,
>>18	beshort		37		Fujitsu FR20,
>>18	beshort		38		TRW RH-32,
>>18	beshort		39		Motorola RCE,
>>18	beshort		40		ARM,
>>>4	byte		2
>>>>36  belong&0xff000000	0x04000000	EABI4
>>>>36  belong&0xff000000	0x05000000	EABI5
>>18	beshort		41		Alpha,
>>18	beshort		42		Renesas SH,
>>18	beshort		43		SPARC V9,
>>>4	byte		2
>>>>48	belong&0xffff00	0x000200	Sun UltraSPARC1 Extensions Required,
>>>>48	belong&0xffff00	0x000400	HaL R1 Extensions Required,
>>>>48	belong&0xffff00	0x000800	Sun UltraSPARC3 Extensions Required,
>>>>48	belong&0x3	0		total store ordering,
>>>>48	belong&0x3	1		partial store ordering,
>>>>48	belong&0x3	2		relaxed memory ordering,
>>18	beshort		44		Siemens Tricore Embedded Processor,
>>18	beshort		45		Argonaut RISC Core, Argonaut Technologies Inc.,
>>18	beshort		46		Renesas H8/300,
>>18	beshort		47		Renesas H8/300H,
>>18	beshort		48		Renesas H8S,
>>18	beshort		49		Renesas H8/500,
>>18	beshort		50		IA-64,
>>18	beshort		51		Stanford MIPS-X,
>>18	beshort		52		Motorola Coldfire,
>>18	beshort		53		Motorola M68HC12,
>>18	beshort		73		Cray NV1,
>>18	beshort		75		Digital VAX,
>>18	beshort		88		Renesas M32R,
>>18	leshort		92		OpenRISC,
>>18	leshort		0x3426		OpenRISC (obsolete),
>>18	leshort		0x8472		OpenRISC (obsolete),
>>18	beshort		94		Tensilica Xtensa,
>>18	beshort		97		NatSemi 32k,
>>18	beshort		187		Tilera TILE64,
>>18	beshort		188		Tilera TILEPro,
>>18	beshort		191		Tilera TILE-Gx,
>>18	beshort		0x18ad		AVR32 (unofficial),
>>18	beshort		0x9026		Alpha (unofficial),
>>18	beshort		0xa390		IBM S/390 (obsolete),
>>>20	belong		0		invalid version
>>>20	belong		1		version 1
>>>4	byte		1
>>>>36	belong		1		MathCoPro/FPU/MAU Required
@


1.3.2.1
log
@resync with head
@
text
@d3 1
a3 1
# $File: elf,v 1.58 2012/11/06 20:43:52 christos Exp $
d17 7
a23 3

0	name		elf-le
>16	leshort		0		no file type,
d26 1
a26 1
>16	leshort		1		relocatable,
d28 1
a28 1
>16	leshort		2		executable,
d30 1
a30 1
>16	leshort		3		shared object,
d32 1
a32 1
>16	leshort		4		core file
d37 13
a49 13
>16	leshort		&0xff00		processor-specific,
>18	leshort		0		no machine,
>18	leshort		1		AT&T WE32100
>18	leshort		2		SPARC
>18	leshort		3		Intel 80386,
>18	leshort		4		Motorola
>>4	byte		1
>>>36	lelong		&0x01000000	68000 - invalid byte order,
>>>36	lelong		&0x00810000	CPU32 - invalid byte order,
>>>36	lelong		0		68020 - invalid byte order,
>18	leshort		5		Motorola 88000 - invalid byte order,
>18	leshort		6		Intel 80486,
>18	leshort		7		Intel 80860,
d53 153
a205 7
>18	leshort		8		MIPS,
>>4	byte		1
>>>36	lelong		&0x20		N32
>18	leshort		10		MIPS,
>>4	byte		1
>>>36	lelong		&0x20		N32
>18	leshort		8
d207 10
a216 10
>>4	byte		1
>>>36  lelong&0xf0000000	0x00000000	MIPS-I
>>>36  lelong&0xf0000000	0x10000000	MIPS-II
>>>36  lelong&0xf0000000	0x20000000	MIPS-III
>>>36  lelong&0xf0000000	0x30000000	MIPS-IV
>>>36  lelong&0xf0000000	0x40000000	MIPS-V
>>>36  lelong&0xf0000000	0x50000000	MIPS32
>>>36  lelong&0xf0000000	0x60000000	MIPS64
>>>36  lelong&0xf0000000	0x70000000	MIPS32 rel2
>>>36  lelong&0xf0000000	0x80000000	MIPS64 rel2
d218 14
a231 14
>>4	byte		2
>>>48  lelong&0xf0000000	0x00000000	MIPS-I
>>>48  lelong&0xf0000000	0x10000000	MIPS-II
>>>48  lelong&0xf0000000	0x20000000	MIPS-III
>>>48  lelong&0xf0000000	0x30000000	MIPS-IV
>>>48  lelong&0xf0000000	0x40000000	MIPS-V
>>>48  lelong&0xf0000000	0x50000000	MIPS32
>>>48  lelong&0xf0000000	0x60000000	MIPS64
>>>48  lelong&0xf0000000	0x70000000	MIPS32 rel2
>>>48  lelong&0xf0000000	0x80000000	MIPS64 rel2
>18	leshort		9		Amdahl - invalid byte order,
>18	leshort		10		MIPS (deprecated),
>18	leshort		11		RS6000 - invalid byte order,
>18	leshort		15		PA-RISC - invalid byte order,
d233 3
a235 3
>>4	byte		1
>>>38	leshort		0x0214		2.0
>>>36	leshort		&0x0008		(LP64)
d237 6
a242 6
>>4	byte		2
>>>50	leshort		0x0214		2.0
>>>48	leshort		&0x0008		(LP64)
>18	leshort		16		nCUBE,
>18	leshort		17		Fujitsu VPP500,
>18	leshort		18		SPARC32PLUS,
d244 57
a300 102
>>4	byte		1
>>>36	lelong&0xffff00	0x000100	V8+ Required,
>>>36	lelong&0xffff00	0x000200	Sun UltraSPARC1 Extensions Required,
>>>36	lelong&0xffff00	0x000400	HaL R1 Extensions Required,
>>>36	lelong&0xffff00	0x000800	Sun UltraSPARC3 Extensions Required,
>18	leshort		20		PowerPC or cisco 4500,
>18	leshort		21		64-bit PowerPC or cisco 7500,
>18	leshort		22		IBM S/390,
>18	leshort		23		Cell SPU,
>18	leshort		24		cisco SVIP,
>18	leshort		25		cisco 7200,
>18	leshort		36		NEC V800 or cisco 12000,
>18	leshort		37		Fujitsu FR20,
>18	leshort		38		TRW RH-32,
>18	leshort		39		Motorola RCE,
>18	leshort		40		ARM,
>>4	byte		1
>>>36	lelong&0xff000000	0x04000000	EABI4
>>>36	lelong&0xff000000	0x05000000	EABI5
>18	leshort		41		Alpha,
>18	leshort		0xa390		IBM S/390 (obsolete),
>18	leshort		42		Renesas SH,
>18	leshort		43		SPARC V9,
>>4	byte		2
>>>48	lelong&0xffff00	0x000200	Sun UltraSPARC1 Extensions Required,
>>>48	lelong&0xffff00	0x000400	HaL R1 Extensions Required,
>>>48	lelong&0xffff00	0x000800	Sun UltraSPARC3 Extensions Required,
>>>48	lelong&0x3	0		total store ordering,
>>>48	lelong&0x3	1		partial store ordering,
>>>48	lelong&0x3	2		relaxed memory ordering,
>18	leshort		44		Siemens Tricore Embedded Processor,
>18	leshort		45		Argonaut RISC Core, Argonaut Technologies Inc.,
>18	leshort		46		Renesas H8/300,
>18	leshort		47		Renesas H8/300H,
>18	leshort		48		Renesas H8S,
>18	leshort		49		Renesas H8/500,
>18	leshort		50		IA-64,
>18	leshort		51		Stanford MIPS-X,
>18	leshort		52		Motorola Coldfire,
>18	leshort		53		Motorola M68HC12,
>18	leshort		54		Fujitsu MMA,
>18	leshort		55		Siemens PCP,
>18	leshort		56		Sony nCPU,
>18	leshort		57		Denso NDR1,
>18	leshort		58		Start*Core,
>18	leshort		59		Toyota ME16,
>18	leshort		60		ST100,
>18	leshort		61		Tinyj emb.,
>18	leshort		62		x86-64,
>18	leshort		63		Sony DSP,
>18	leshort		66		FX66,
>18	leshort		67		ST9+ 8/16 bit,
>18	leshort		68		ST7 8 bit,
>18	leshort		69		MC68HC16,
>18	leshort		70		MC68HC11,
>18	leshort		71		MC68HC08,
>18	leshort		72		MC68HC05,
>18	leshort		73		SGI SVx or Cray NV1,
>18	leshort		74		ST19 8 bit,
>18	leshort		75		Digital VAX,
>18	leshort		76		Axis cris,
>18	leshort		77		Infineon 32-bit embedded,
>18	leshort		78		Element 14 64-bit DSP,
>18	leshort		79		LSI Logic 16-bit DSP,
>18	leshort		80		MMIX,
>18	leshort		81		Harvard machine-independent,
>18	leshort		82		SiTera Prism,
>18	leshort		83		Atmel AVR 8-bit,
>18	leshort		84		Fujitsu FR30,
>18	leshort		85		Mitsubishi D10V,
>18	leshort		86		Mitsubishi D30V,
>18	leshort		87		NEC v850,
>18	leshort		88		Renesas M32R,
>18	leshort		89		Matsushita MN10300,
>18	leshort		90		Matsushita MN10200,
>18	leshort		91		picoJava,
>18	leshort		92		OpenRISC,
>18	leshort		93		ARC Cores Tangent-A5,
>18	leshort		94		Tensilica Xtensa,
>18	leshort		97		NatSemi 32k,
>18	leshort		106		Analog Devices Blackfin,
>18	leshort		113		Altera Nios II,
>18	leshort		174		META,
>18	leshort		183		ARM aarch64,
>18	leshort		187		Tilera TILE64,
>18	leshort		188		Tilera TILEPro,
>18	leshort		191		Tilera TILE-Gx,
>18	leshort		0x3426		OpenRISC (obsolete),
>18	leshort		0x8472		OpenRISC (obsolete),
>18	leshort		0x9026		Alpha (unofficial),
>20	lelong		0		invalid version
>20	lelong		1		version 1

0	string		\177ELF		ELF
>4	byte		0		invalid class
>4	byte		1		32-bit
>4	byte		2		64-bit
>5	byte		0		invalid byte order
>5	byte		1		LSB 
>>0	use		elf-le
>5	byte		2		MSB 
>>0	use		\^elf-le
@


1.3.2.2
log
@resync from head
@
text
@d3 1
a3 1
# $File: elf,v 1.59 2013/03/21 17:50:02 christos Exp $
d20 1
a187 1
!:strength *2
d192 1
a192 1
>5	byte		1		LSB
d194 1
a194 1
>5	byte		2		MSB
@


1.3.2.3
log
@Rebase to HEAD as of a few days ago.
@
text
@d3 1
a3 1
# $File: elf,v 1.67 2014/06/12 13:52:48 christos Exp $
a32 1
>18	clear		x
d34 2
a35 2
>18	leshort		1		AT&T WE32100,
>18	leshort		2		SPARC,
d37 1
a37 1
>18	leshort		4		Motorola m68k,
d39 4
a42 4
>>>36	lelong		&0x01000000	68000,
>>>36	lelong		&0x00810000	CPU32,
>>>36	lelong		0		68020,
>18	leshort		5		Motorola m88k,
d77 1
a77 1
>18	leshort		9		Amdahl,
d79 2
a80 2
>18	leshort		11		RS6000,
>18	leshort		15		PA-RISC,
a97 1
>18	leshort		19		Intel 80960,
a111 2
>>>36	lelong		&0x00800000	BE8
>>>36	lelong		&0x00400000	LE8
d113 1
a142 2
>18	leshort		64		DEC PDP-10,
>18	leshort		65		DEC PDP-11,
a171 2
>18	leshort		95		Alphamosaic VideoCore,
>18	leshort		96		Thompson Multimedia,
a172 8
>18	leshort		98		Tenor Network TPC,
>18	leshort		99		Trebia SNP 1000,
>18	leshort		100		STMicroelectronics ST200,
>18	leshort		101		Ubicom IP2022,
>18	leshort		102		MAX Processor,
>18	leshort		103		NatSemi CompactRISC,
>18	leshort		104		Fujitsu F2MC16,
>18	leshort		105		TI msp430,
a173 6
>18	leshort		107		S1C33 Family of Seiko Epson,
>18	leshort		108		Sharp embedded,
>18	leshort		109		Arca RISC,
>18	leshort		110		PKU-Unity Ltd.,
>18	leshort		111		eXcess: 16/32/64-bit,
>18	leshort		112		Icera Deep Execution Processor,
a174 32
>18	leshort		114		NatSemi CRX,
>18	leshort		115		Motorola XGATE,
>18	leshort		116		Infineon C16x/XC16x,
>18	leshort		117		Renesas M16C series,
>18	leshort		118		Microchip dsPIC30F,
>18	leshort		119		Freescale RISC core,
>18	leshort		120		Renesas M32C series,
>18	leshort		131		Altium TSK3000 core,
>18	leshort		132		Freescale RS08,
>18	leshort		134		Cyan Technology eCOG2,
>18	leshort		135		Sunplus S+core7 RISC,
>18	leshort		136		New Japan Radio (NJR) 24-bit DSP,
>18	leshort		137		Broadcom VideoCore III,
>18	leshort		138		LatticeMico32,
>18	leshort		139		Seiko Epson C17 family,
>18	leshort		140		TI TMS320C6000 DSP family,
>18	leshort		141		TI TMS320C2000 DSP family,
>18	leshort		142		TI TMS320C55x DSP family,
>18	leshort		160		STMicroelectronics 64bit VLIW DSP,
>18	leshort		161		Cypress M8C,
>18	leshort		162		Renesas R32C series,
>18	leshort		163		NXP TriMedia family,
>18	leshort		164		QUALCOMM DSP6,
>18	leshort		165		Intel 8051 and variants,
>18	leshort		166		STMicroelectronics STxP7x family,
>18	leshort		167		Andes embedded RISC,
>18	leshort		168		Cyan eCOG1X family,
>18	leshort		169		Dallas MAXQ30,
>18	leshort		170		New Japan Radio (NJR) 16-bit DSP,
>18	leshort		171		M2000 Reconfigurable RISC,
>18	leshort		172		Cray NV2 vector architecture,
>18	leshort		173		Renesas RX family,
a175 7
>18	leshort		175		MCST Elbrus,
>18	leshort		176		Cyan Technology eCOG16 family,
>18	leshort		177		NatSemi CompactRISC,
>18	leshort		178		Freescale Extended Time Processing Unit,
>18	leshort		179		Infineon SLE9X,
>18	leshort		180		Intel L1OM,
>18	leshort		181		Intel K1OM,
a176 2
>18	leshort		185		Atmel 32-bit family,
>18	leshort		186		STMicroeletronics STM8 8-bit,
a178 2
>18	leshort		189		Xilinx MicroBlaze 32-bit RISC,
>18	leshort		190		NVIDIA CUDA architecture,
a179 21
>18	leshort		197		Renesas RL78 family,
>18	leshort		199		Renesas 78K0R,
>18	leshort		200		Freescale 56800EX,
>18	leshort		201		Beyond BA1,
>18	leshort		202		Beyond BA2,
>18	leshort		203		XMOS xCORE,
>18	leshort		204		Microchip 8-bit PIC(r),
>18	leshort		210		KM211 KM32,
>18	leshort		211		KM211 KMX32,
>18	leshort		212		KM211 KMX16,
>18	leshort		213		KM211 KMX8,
>18	leshort		214		KM211 KVARC,
>18	leshort		215		Paneve CDP,
>18	leshort		216		Cognitive Smart Memory,
>18	leshort		217		iCelero CoolEngine,
>18	leshort		218		Nanoradio Optimized RISC,
>18	leshort		0x1057		AVR (unofficial),
>18	leshort		0x1059		MSP430 (unofficial),
>18	leshort		0x1223		Adapteva Epiphany (unofficial),
>18	leshort		0x2530		Morpho MT (unofficial),
>18	leshort		0x3330		FR30 (unofficial),
a180 6
>18	leshort		0x4688		Infineon C166 (unofficial),
>18	leshort		0x5441		Cygnus FRV (unofficial),
>18	leshort		0x5aa5		DLX (unofficial),
>18	leshort		0x7650		Cygnus D10V (unofficial),
>18	leshort		0x7676		Cygnus D30V (unofficial),
>18	leshort		0x8217		Ubicom IP2xxx (unofficial),
a181 1
>18	leshort		0x9025		Cygnus PowerPC (unofficial),
a182 15
>18	leshort		0x9041		Cygnus M32R (unofficial),
>18	leshort		0x9080		Cygnus V850 (unofficial),
>18	leshort		0xa390		IBM S/390 (obsolete),
>18	leshort		0xabc7		Old Xtensa (unofficial),
>18	leshort		0xad45		xstormy16 (unofficial),
>18	leshort		0xbaab		Old MicroBlaze (unofficial),,
>18	leshort		0xbeef		Cygnus MN10300 (unofficial),
>18	leshort		0xdead		Cygnus MN10200 (unofficial),
>18	leshort		0xf00d		Toshiba MeP (unofficial),
>18	leshort		0xfeb0		Renesas M32C (unofficial),
>18	leshort		0xfeba		Vitesse IQ2000 (unofficial),
>18	leshort		0xfebb		NIOS (unofficial),
>18	leshort		0xfeed		Moxie (unofficial),
>18	default		x
>>18	leshort		x		*unknown arch 0x%x*
@


1.2
log
@Look at the proper offsets for MD info, depending on the size of the binary
32 or 64.
@
text
@d104 3
d260 3
@


1.1
log
@Initial revision
@
text
@d3 1
d43 4
a46 3
>>>36	lelong		&0x01000000	68000 - invalid byte order,
>>>36	lelong		&0x00810000	CPU32 - invalid byte order,
>>>36	lelong		0		68020 - invalid byte order,
d54 2
a55 1
>>>36	lelong		&0x20		N32
d57 2
a58 1
>>>36	lelong		&0x20		N32
d86 8
a93 2
>>>50	leshort		0x0214		2.0
>>>48	leshort		&0x0008		(LP64),
d161 3
a168 1
>>36	lelong		1		MathCoPro/FPU/MAU Required
d188 4
a191 3
>>>36	belong		&0x01000000	68000,
>>>36	belong		&0x00810000	CPU32,
>>>36	belong		0		68020,
d197 2
a198 1
>>>36	belong		&0x20		N32
d200 2
a201 1
>>>36	belong		&0x20		N32
d229 8
a236 2
>>>50	beshort		0x0214		2.0
>>>48	beshort		&0x0008		(LP64)
d240 6
a245 4
>>>36	belong&0xffff00	0x000100	V8+ Required,
>>>36	belong&0xffff00	0x000200	Sun UltraSPARC1 Extensions Required,
>>>36	belong&0xffff00	0x000400	HaL R1 Extensions Required,
>>>36	belong&0xffff00	0x000800	Sun UltraSPARC3 Extensions Required,
d260 7
a266 6
>>>48	belong&0xffff00	0x000200	Sun UltraSPARC1 Extensions Required,
>>>48	belong&0xffff00	0x000400	HaL R1 Extensions Required,
>>>48	belong&0xffff00	0x000800	Sun UltraSPARC3 Extensions Required,
>>>48	belong&0x3	0		total store ordering,
>>>48	belong&0x3	1		partial store ordering,
>>>48	belong&0x3	2		relaxed memory ordering,
d285 3
d291 4
a294 3
>>20	belong		0		invalid version
>>20	belong		1		version 1
>>36	belong		1		MathCoPro/FPU/MAU Required
@


1.1.1.1
log
@from ftp.astron.com
@
text
@@


1.1.1.2
log
@from ftp.astron.com.
- many security related fixes
- no MAXPATHLEN limits
- fixed missing text specification on ascii magic
- new ``pascal'' style string formats
- whitespace comparison fix
- more magic
@
text
@a2 1
# $File: elf,v 1.53 2009/09/19 16:28:09 christos Exp $
@


1.1.1.2.4.1
log
@sync with head
@
text
@d3 1
a3 1
# $File: elf,v 1.54 2011/12/17 17:16:29 christos Exp $
d43 3
a45 4
>>>4	byte		1
>>>>36	lelong		&0x01000000	68000 - invalid byte order,
>>>>36	lelong		&0x00810000	CPU32 - invalid byte order,
>>>>36	lelong		0		68020 - invalid byte order,
d53 1
a53 2
>>>4	byte		1
>>>>36	lelong		&0x20		N32
d55 1
a55 2
>>>4	byte		1
>>>>36	lelong		&0x20		N32
d83 2
a84 8
# only for 32-bit
>>>4	byte		1
>>>>38	leshort		0x0214		2.0
>>>>36	leshort		&0x0008		(LP64)
# only for 64-bit
>>>4	byte		2
>>>>50	leshort		0x0214		2.0
>>>>48	leshort		&0x0008		(LP64)
a151 3
>>18	leshort		187		Tilera TILE64,
>>18	leshort		188		Tilera TILEPro,
>>18	leshort		191		Tilera TILE-Gx,
d157 1
d177 3
a179 4
>>>4	byte		1
>>>>36	belong		&0x01000000	68000,
>>>>36	belong		&0x00810000	CPU32,
>>>>36	belong		0		68020,
d185 1
a185 2
>>>4	byte		1
>>>>36	belong		&0x20		N32
d187 1
a187 2
>>>4	byte		1
>>>>36	belong		&0x20		N32
d215 2
a216 8
# only for 32-bit
>>>4	byte		1
>>>>38	beshort		0x0214		2.0
>>>>36	beshort		&0x0008		(LP64)
# only for 64-bit
>>>4	byte		2
>>>>50	beshort		0x0214		2.0
>>>>48	beshort		&0x0008		(LP64)
d220 4
a223 6
# only for 32-bit
>>>4	byte		1
>>>>36	belong&0xffff00	0x000100	V8+ Required,
>>>>36	belong&0xffff00	0x000200	Sun UltraSPARC1 Extensions Required,
>>>>36	belong&0xffff00	0x000400	HaL R1 Extensions Required,
>>>>36	belong&0xffff00	0x000800	Sun UltraSPARC3 Extensions Required,
d238 6
a243 7
>>>4	byte		2
>>>>48	belong&0xffff00	0x000200	Sun UltraSPARC1 Extensions Required,
>>>>48	belong&0xffff00	0x000400	HaL R1 Extensions Required,
>>>>48	belong&0xffff00	0x000800	Sun UltraSPARC3 Extensions Required,
>>>>48	belong&0x3	0		total store ordering,
>>>>48	belong&0x3	1		partial store ordering,
>>>>48	belong&0x3	2		relaxed memory ordering,
a261 3
>>18	beshort		187		Tilera TILE64,
>>18	beshort		188		Tilera TILEPro,
>>18	beshort		191		Tilera TILE-Gx,
d265 3
a267 4
>>>20	belong		0		invalid version
>>>20	belong		1		version 1
>>>4	byte		1
>>>>36	belong		1		MathCoPro/FPU/MAU Required
@


1.1.1.2.4.2
log
@sync with head
@
text
@a103 3
>>>4	byte		1
>>>>36  lelong&0xff000000	0x04000000	EABI4
>>>>36  lelong&0xff000000	0x05000000	EABI5
a256 3
>>>4	byte		2
>>>>36  belong&0xff000000	0x04000000	EABI4
>>>>36  belong&0xff000000	0x05000000	EABI5
@


1.1.1.2.4.3
log
@sync with head
@
text
@d3 1
a3 1
# $File: elf,v 1.58 2012/11/06 20:43:52 christos Exp $
d17 7
a23 3

0	name		elf-le
>16	leshort		0		no file type,
d26 1
a26 1
>16	leshort		1		relocatable,
d28 1
a28 1
>16	leshort		2		executable,
d30 1
a30 1
>16	leshort		3		shared object,
d32 1
a32 1
>16	leshort		4		core file
d37 13
a49 13
>16	leshort		&0xff00		processor-specific,
>18	leshort		0		no machine,
>18	leshort		1		AT&T WE32100
>18	leshort		2		SPARC
>18	leshort		3		Intel 80386,
>18	leshort		4		Motorola
>>4	byte		1
>>>36	lelong		&0x01000000	68000 - invalid byte order,
>>>36	lelong		&0x00810000	CPU32 - invalid byte order,
>>>36	lelong		0		68020 - invalid byte order,
>18	leshort		5		Motorola 88000 - invalid byte order,
>18	leshort		6		Intel 80486,
>18	leshort		7		Intel 80860,
d53 153
a205 7
>18	leshort		8		MIPS,
>>4	byte		1
>>>36	lelong		&0x20		N32
>18	leshort		10		MIPS,
>>4	byte		1
>>>36	lelong		&0x20		N32
>18	leshort		8
d207 10
a216 10
>>4	byte		1
>>>36  lelong&0xf0000000	0x00000000	MIPS-I
>>>36  lelong&0xf0000000	0x10000000	MIPS-II
>>>36  lelong&0xf0000000	0x20000000	MIPS-III
>>>36  lelong&0xf0000000	0x30000000	MIPS-IV
>>>36  lelong&0xf0000000	0x40000000	MIPS-V
>>>36  lelong&0xf0000000	0x50000000	MIPS32
>>>36  lelong&0xf0000000	0x60000000	MIPS64
>>>36  lelong&0xf0000000	0x70000000	MIPS32 rel2
>>>36  lelong&0xf0000000	0x80000000	MIPS64 rel2
d218 14
a231 14
>>4	byte		2
>>>48  lelong&0xf0000000	0x00000000	MIPS-I
>>>48  lelong&0xf0000000	0x10000000	MIPS-II
>>>48  lelong&0xf0000000	0x20000000	MIPS-III
>>>48  lelong&0xf0000000	0x30000000	MIPS-IV
>>>48  lelong&0xf0000000	0x40000000	MIPS-V
>>>48  lelong&0xf0000000	0x50000000	MIPS32
>>>48  lelong&0xf0000000	0x60000000	MIPS64
>>>48  lelong&0xf0000000	0x70000000	MIPS32 rel2
>>>48  lelong&0xf0000000	0x80000000	MIPS64 rel2
>18	leshort		9		Amdahl - invalid byte order,
>18	leshort		10		MIPS (deprecated),
>18	leshort		11		RS6000 - invalid byte order,
>18	leshort		15		PA-RISC - invalid byte order,
d233 3
a235 3
>>4	byte		1
>>>38	leshort		0x0214		2.0
>>>36	leshort		&0x0008		(LP64)
d237 6
a242 6
>>4	byte		2
>>>50	leshort		0x0214		2.0
>>>48	leshort		&0x0008		(LP64)
>18	leshort		16		nCUBE,
>18	leshort		17		Fujitsu VPP500,
>18	leshort		18		SPARC32PLUS,
d244 57
a300 102
>>4	byte		1
>>>36	lelong&0xffff00	0x000100	V8+ Required,
>>>36	lelong&0xffff00	0x000200	Sun UltraSPARC1 Extensions Required,
>>>36	lelong&0xffff00	0x000400	HaL R1 Extensions Required,
>>>36	lelong&0xffff00	0x000800	Sun UltraSPARC3 Extensions Required,
>18	leshort		20		PowerPC or cisco 4500,
>18	leshort		21		64-bit PowerPC or cisco 7500,
>18	leshort		22		IBM S/390,
>18	leshort		23		Cell SPU,
>18	leshort		24		cisco SVIP,
>18	leshort		25		cisco 7200,
>18	leshort		36		NEC V800 or cisco 12000,
>18	leshort		37		Fujitsu FR20,
>18	leshort		38		TRW RH-32,
>18	leshort		39		Motorola RCE,
>18	leshort		40		ARM,
>>4	byte		1
>>>36	lelong&0xff000000	0x04000000	EABI4
>>>36	lelong&0xff000000	0x05000000	EABI5
>18	leshort		41		Alpha,
>18	leshort		0xa390		IBM S/390 (obsolete),
>18	leshort		42		Renesas SH,
>18	leshort		43		SPARC V9,
>>4	byte		2
>>>48	lelong&0xffff00	0x000200	Sun UltraSPARC1 Extensions Required,
>>>48	lelong&0xffff00	0x000400	HaL R1 Extensions Required,
>>>48	lelong&0xffff00	0x000800	Sun UltraSPARC3 Extensions Required,
>>>48	lelong&0x3	0		total store ordering,
>>>48	lelong&0x3	1		partial store ordering,
>>>48	lelong&0x3	2		relaxed memory ordering,
>18	leshort		44		Siemens Tricore Embedded Processor,
>18	leshort		45		Argonaut RISC Core, Argonaut Technologies Inc.,
>18	leshort		46		Renesas H8/300,
>18	leshort		47		Renesas H8/300H,
>18	leshort		48		Renesas H8S,
>18	leshort		49		Renesas H8/500,
>18	leshort		50		IA-64,
>18	leshort		51		Stanford MIPS-X,
>18	leshort		52		Motorola Coldfire,
>18	leshort		53		Motorola M68HC12,
>18	leshort		54		Fujitsu MMA,
>18	leshort		55		Siemens PCP,
>18	leshort		56		Sony nCPU,
>18	leshort		57		Denso NDR1,
>18	leshort		58		Start*Core,
>18	leshort		59		Toyota ME16,
>18	leshort		60		ST100,
>18	leshort		61		Tinyj emb.,
>18	leshort		62		x86-64,
>18	leshort		63		Sony DSP,
>18	leshort		66		FX66,
>18	leshort		67		ST9+ 8/16 bit,
>18	leshort		68		ST7 8 bit,
>18	leshort		69		MC68HC16,
>18	leshort		70		MC68HC11,
>18	leshort		71		MC68HC08,
>18	leshort		72		MC68HC05,
>18	leshort		73		SGI SVx or Cray NV1,
>18	leshort		74		ST19 8 bit,
>18	leshort		75		Digital VAX,
>18	leshort		76		Axis cris,
>18	leshort		77		Infineon 32-bit embedded,
>18	leshort		78		Element 14 64-bit DSP,
>18	leshort		79		LSI Logic 16-bit DSP,
>18	leshort		80		MMIX,
>18	leshort		81		Harvard machine-independent,
>18	leshort		82		SiTera Prism,
>18	leshort		83		Atmel AVR 8-bit,
>18	leshort		84		Fujitsu FR30,
>18	leshort		85		Mitsubishi D10V,
>18	leshort		86		Mitsubishi D30V,
>18	leshort		87		NEC v850,
>18	leshort		88		Renesas M32R,
>18	leshort		89		Matsushita MN10300,
>18	leshort		90		Matsushita MN10200,
>18	leshort		91		picoJava,
>18	leshort		92		OpenRISC,
>18	leshort		93		ARC Cores Tangent-A5,
>18	leshort		94		Tensilica Xtensa,
>18	leshort		97		NatSemi 32k,
>18	leshort		106		Analog Devices Blackfin,
>18	leshort		113		Altera Nios II,
>18	leshort		174		META,
>18	leshort		183		ARM aarch64,
>18	leshort		187		Tilera TILE64,
>18	leshort		188		Tilera TILEPro,
>18	leshort		191		Tilera TILE-Gx,
>18	leshort		0x3426		OpenRISC (obsolete),
>18	leshort		0x8472		OpenRISC (obsolete),
>18	leshort		0x9026		Alpha (unofficial),
>20	lelong		0		invalid version
>20	lelong		1		version 1

0	string		\177ELF		ELF
>4	byte		0		invalid class
>4	byte		1		32-bit
>4	byte		2		64-bit
>5	byte		0		invalid byte order
>5	byte		1		LSB 
>>0	use		elf-le
>5	byte		2		MSB 
>>0	use		\^elf-le
@


1.1.1.2.4.4
log
@sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs.  ("Protocol error: too many arguments")
@
text
@d3 1
a3 1
# $File: elf,v 1.64 2013/08/04 09:31:47 christos Exp $
d20 1
a33 1
>18	clear		x
d40 4
a43 4
>>>36	lelong		&0x01000000	68000,
>>>36	lelong		&0x00810000	CPU32,
>>>36	lelong		0		68020,
>18	leshort		5		Motorola 88000,
d78 1
a78 1
>18	leshort		9		Amdahl,
d80 2
a81 2
>18	leshort		11		RS6000,
>18	leshort		15		PA-RISC,
a112 2
>>>36	lelong		&0x00800000	BE8
>>>36	lelong		&0x00400000	LE8
a175 1
>18	beshort		138		LatticeMico32,
a183 2
>18	default		x
>>18	leshort		x		*unknown arch 0x%x*
a187 1
!:strength *2
d192 1
a192 1
>5	byte		1		LSB
d194 1
a194 1
>5	byte		2		MSB
@


1.1.1.2.6.1
log
@Pull up following revision(s) (requested by christos in ticket #30):
	Update file to 5.11 (CDF security fixes)
@
text
@d3 1
a3 1
# $File: elf,v 1.54 2011/12/17 17:16:29 christos Exp $
d43 3
a45 4
>>>4	byte		1
>>>>36	lelong		&0x01000000	68000 - invalid byte order,
>>>>36	lelong		&0x00810000	CPU32 - invalid byte order,
>>>>36	lelong		0		68020 - invalid byte order,
d53 1
a53 2
>>>4	byte		1
>>>>36	lelong		&0x20		N32
d55 1
a55 2
>>>4	byte		1
>>>>36	lelong		&0x20		N32
d83 2
a84 8
# only for 32-bit
>>>4	byte		1
>>>>38	leshort		0x0214		2.0
>>>>36	leshort		&0x0008		(LP64)
# only for 64-bit
>>>4	byte		2
>>>>50	leshort		0x0214		2.0
>>>>48	leshort		&0x0008		(LP64)
a151 3
>>18	leshort		187		Tilera TILE64,
>>18	leshort		188		Tilera TILEPro,
>>18	leshort		191		Tilera TILE-Gx,
d157 1
d177 3
a179 4
>>>4	byte		1
>>>>36	belong		&0x01000000	68000,
>>>>36	belong		&0x00810000	CPU32,
>>>>36	belong		0		68020,
d185 1
a185 2
>>>4	byte		1
>>>>36	belong		&0x20		N32
d187 1
a187 2
>>>4	byte		1
>>>>36	belong		&0x20		N32
d215 2
a216 8
# only for 32-bit
>>>4	byte		1
>>>>38	beshort		0x0214		2.0
>>>>36	beshort		&0x0008		(LP64)
# only for 64-bit
>>>4	byte		2
>>>>50	beshort		0x0214		2.0
>>>>48	beshort		&0x0008		(LP64)
d220 4
a223 6
# only for 32-bit
>>>4	byte		1
>>>>36	belong&0xffff00	0x000100	V8+ Required,
>>>>36	belong&0xffff00	0x000200	Sun UltraSPARC1 Extensions Required,
>>>>36	belong&0xffff00	0x000400	HaL R1 Extensions Required,
>>>>36	belong&0xffff00	0x000800	Sun UltraSPARC3 Extensions Required,
d238 6
a243 7
>>>4	byte		2
>>>>48	belong&0xffff00	0x000200	Sun UltraSPARC1 Extensions Required,
>>>>48	belong&0xffff00	0x000400	HaL R1 Extensions Required,
>>>>48	belong&0xffff00	0x000800	Sun UltraSPARC3 Extensions Required,
>>>>48	belong&0x3	0		total store ordering,
>>>>48	belong&0x3	1		partial store ordering,
>>>>48	belong&0x3	2		relaxed memory ordering,
a261 3
>>18	beshort		187		Tilera TILE64,
>>18	beshort		188		Tilera TILEPro,
>>18	beshort		191		Tilera TILE-Gx,
d265 3
a267 4
>>>20	belong		0		invalid version
>>>20	belong		1		version 1
>>>4	byte		1
>>>>36	belong		1		MathCoPro/FPU/MAU Required
@


1.1.1.3
log
@from ftp.astron.com, CDF security fixes
@
text
@d3 1
a3 1
# $File: elf,v 1.54 2011/12/17 17:16:29 christos Exp $
a151 3
>>18	leshort		187		Tilera TILE64,
>>18	leshort		188		Tilera TILEPro,
>>18	leshort		191		Tilera TILE-Gx,
a261 3
>>18	beshort		187		Tilera TILE64,
>>18	beshort		188		Tilera TILEPro,
>>18	beshort		191		Tilera TILE-Gx,
@


1.1.1.4
log
@from ftp.astron.com
@
text
@d3 1
a3 1
# $File: elf,v 1.58 2012/11/06 20:43:52 christos Exp $
d17 7
a23 3

0	name		elf-le
>16	leshort		0		no file type,
d26 1
a26 1
>16	leshort		1		relocatable,
d28 1
a28 1
>16	leshort		2		executable,
d30 1
a30 1
>16	leshort		3		shared object,
d32 1
a32 1
>16	leshort		4		core file
d37 6
a42 7
>16	leshort		&0xff00		processor-specific,
>18	leshort		0		no machine,
>18	leshort		1		AT&T WE32100
>18	leshort		2		SPARC
>18	leshort		3		Intel 80386,
>18	leshort		4		Motorola
>>4	byte		1
d46 3
a48 3
>18	leshort		5		Motorola 88000 - invalid byte order,
>18	leshort		6		Intel 80486,
>18	leshort		7		Intel 80860,
d52 1
a52 2
>18	leshort		8		MIPS,
>>4	byte		1
d54 1
a54 2
>18	leshort		10		MIPS,
>>4	byte		1
d56 1
a56 1
>18	leshort		8
d58 10
a67 10
>>4	byte		1
>>>36  lelong&0xf0000000	0x00000000	MIPS-I
>>>36  lelong&0xf0000000	0x10000000	MIPS-II
>>>36  lelong&0xf0000000	0x20000000	MIPS-III
>>>36  lelong&0xf0000000	0x30000000	MIPS-IV
>>>36  lelong&0xf0000000	0x40000000	MIPS-V
>>>36  lelong&0xf0000000	0x50000000	MIPS32
>>>36  lelong&0xf0000000	0x60000000	MIPS64
>>>36  lelong&0xf0000000	0x70000000	MIPS32 rel2
>>>36  lelong&0xf0000000	0x80000000	MIPS64 rel2
d69 123
a191 14
>>4	byte		2
>>>48  lelong&0xf0000000	0x00000000	MIPS-I
>>>48  lelong&0xf0000000	0x10000000	MIPS-II
>>>48  lelong&0xf0000000	0x20000000	MIPS-III
>>>48  lelong&0xf0000000	0x30000000	MIPS-IV
>>>48  lelong&0xf0000000	0x40000000	MIPS-V
>>>48  lelong&0xf0000000	0x50000000	MIPS32
>>>48  lelong&0xf0000000	0x60000000	MIPS64
>>>48  lelong&0xf0000000	0x70000000	MIPS32 rel2
>>>48  lelong&0xf0000000	0x80000000	MIPS64 rel2
>18	leshort		9		Amdahl - invalid byte order,
>18	leshort		10		MIPS (deprecated),
>18	leshort		11		RS6000 - invalid byte order,
>18	leshort		15		PA-RISC - invalid byte order,
d193 10
a202 3
>>4	byte		1
>>>38	leshort		0x0214		2.0
>>>36	leshort		&0x0008		(LP64)
d204 70
a273 109
>>4	byte		2
>>>50	leshort		0x0214		2.0
>>>48	leshort		&0x0008		(LP64)
>18	leshort		16		nCUBE,
>18	leshort		17		Fujitsu VPP500,
>18	leshort		18		SPARC32PLUS,
# only for 32-bit
>>4	byte		1
>>>36	lelong&0xffff00	0x000100	V8+ Required,
>>>36	lelong&0xffff00	0x000200	Sun UltraSPARC1 Extensions Required,
>>>36	lelong&0xffff00	0x000400	HaL R1 Extensions Required,
>>>36	lelong&0xffff00	0x000800	Sun UltraSPARC3 Extensions Required,
>18	leshort		20		PowerPC or cisco 4500,
>18	leshort		21		64-bit PowerPC or cisco 7500,
>18	leshort		22		IBM S/390,
>18	leshort		23		Cell SPU,
>18	leshort		24		cisco SVIP,
>18	leshort		25		cisco 7200,
>18	leshort		36		NEC V800 or cisco 12000,
>18	leshort		37		Fujitsu FR20,
>18	leshort		38		TRW RH-32,
>18	leshort		39		Motorola RCE,
>18	leshort		40		ARM,
>>4	byte		1
>>>36	lelong&0xff000000	0x04000000	EABI4
>>>36	lelong&0xff000000	0x05000000	EABI5
>18	leshort		41		Alpha,
>18	leshort		0xa390		IBM S/390 (obsolete),
>18	leshort		42		Renesas SH,
>18	leshort		43		SPARC V9,
>>4	byte		2
>>>48	lelong&0xffff00	0x000200	Sun UltraSPARC1 Extensions Required,
>>>48	lelong&0xffff00	0x000400	HaL R1 Extensions Required,
>>>48	lelong&0xffff00	0x000800	Sun UltraSPARC3 Extensions Required,
>>>48	lelong&0x3	0		total store ordering,
>>>48	lelong&0x3	1		partial store ordering,
>>>48	lelong&0x3	2		relaxed memory ordering,
>18	leshort		44		Siemens Tricore Embedded Processor,
>18	leshort		45		Argonaut RISC Core, Argonaut Technologies Inc.,
>18	leshort		46		Renesas H8/300,
>18	leshort		47		Renesas H8/300H,
>18	leshort		48		Renesas H8S,
>18	leshort		49		Renesas H8/500,
>18	leshort		50		IA-64,
>18	leshort		51		Stanford MIPS-X,
>18	leshort		52		Motorola Coldfire,
>18	leshort		53		Motorola M68HC12,
>18	leshort		54		Fujitsu MMA,
>18	leshort		55		Siemens PCP,
>18	leshort		56		Sony nCPU,
>18	leshort		57		Denso NDR1,
>18	leshort		58		Start*Core,
>18	leshort		59		Toyota ME16,
>18	leshort		60		ST100,
>18	leshort		61		Tinyj emb.,
>18	leshort		62		x86-64,
>18	leshort		63		Sony DSP,
>18	leshort		66		FX66,
>18	leshort		67		ST9+ 8/16 bit,
>18	leshort		68		ST7 8 bit,
>18	leshort		69		MC68HC16,
>18	leshort		70		MC68HC11,
>18	leshort		71		MC68HC08,
>18	leshort		72		MC68HC05,
>18	leshort		73		SGI SVx or Cray NV1,
>18	leshort		74		ST19 8 bit,
>18	leshort		75		Digital VAX,
>18	leshort		76		Axis cris,
>18	leshort		77		Infineon 32-bit embedded,
>18	leshort		78		Element 14 64-bit DSP,
>18	leshort		79		LSI Logic 16-bit DSP,
>18	leshort		80		MMIX,
>18	leshort		81		Harvard machine-independent,
>18	leshort		82		SiTera Prism,
>18	leshort		83		Atmel AVR 8-bit,
>18	leshort		84		Fujitsu FR30,
>18	leshort		85		Mitsubishi D10V,
>18	leshort		86		Mitsubishi D30V,
>18	leshort		87		NEC v850,
>18	leshort		88		Renesas M32R,
>18	leshort		89		Matsushita MN10300,
>18	leshort		90		Matsushita MN10200,
>18	leshort		91		picoJava,
>18	leshort		92		OpenRISC,
>18	leshort		93		ARC Cores Tangent-A5,
>18	leshort		94		Tensilica Xtensa,
>18	leshort		97		NatSemi 32k,
>18	leshort		106		Analog Devices Blackfin,
>18	leshort		113		Altera Nios II,
>18	leshort		174		META,
>18	leshort		183		ARM aarch64,
>18	leshort		187		Tilera TILE64,
>18	leshort		188		Tilera TILEPro,
>18	leshort		191		Tilera TILE-Gx,
>18	leshort		0x3426		OpenRISC (obsolete),
>18	leshort		0x8472		OpenRISC (obsolete),
>18	leshort		0x9026		Alpha (unofficial),
>20	lelong		0		invalid version
>20	lelong		1		version 1

0	string		\177ELF		ELF
>4	byte		0		invalid class
>4	byte		1		32-bit
>4	byte		2		64-bit
>5	byte		0		invalid byte order
>5	byte		1		LSB 
>>0	use		elf-le
>5	byte		2		MSB 
>>0	use		\^elf-le
@


1.1.1.5
log
@import file-5.14
changes are "name" + "use" keyword features, bug fixes
@
text
@d3 1
a3 1
# $File: elf,v 1.59 2013/03/21 17:50:02 christos Exp $
d20 1
a187 1
!:strength *2
@


1.1.1.6
log
@from ftp.astron.com, this is a bug fix release:
       * always leave magic file loaded, don't unload for magic_check, etc.
       * fix default encoding to binary instead of unknown which broke recently
       * handle empty and one byte files, less specially so that
         --mime-encoding does not break completely.
       * fix erroneous non-zero exit code from non-existant file and message
       * add CDF MSI file detection (Guy Helmer)
@
text
@d3 1
a3 1
# $File: elf,v 1.64 2013/08/04 09:31:47 christos Exp $
a32 1
>18	clear		x
d39 4
a42 4
>>>36	lelong		&0x01000000	68000,
>>>36	lelong		&0x00810000	CPU32,
>>>36	lelong		0		68020,
>18	leshort		5		Motorola 88000,
d77 1
a77 1
>18	leshort		9		Amdahl,
d79 2
a80 2
>18	leshort		11		RS6000,
>18	leshort		15		PA-RISC,
a111 2
>>>36	lelong		&0x00800000	BE8
>>>36	lelong		&0x00400000	LE8
a174 1
>18	beshort		138		LatticeMico32,
a182 2
>18	default		x
>>18	leshort		x		*unknown arch 0x%x*
d192 1
a192 1
>5	byte		1		LSB
d194 1
a194 1
>5	byte		2		MSB
@


1.1.1.7
log
@import file-5.19

2014-06-09   9:04  Christos Zoulas <christos@@zoulas.com>

	* Misc buffer overruns and missing buffer size tests in cdf parsing
	  (Francisco Alonso, Jan Kaluza)

2014-06-02  14:50  Christos Zoulas <christos@@zoulas.com>

	* Enforce limit of 8K on regex searches that have no limits
	* Allow the l modifier for regex to mean line count. Default
	  to byte count. If line count is specified, assume a max
	  of 80 characters per line to limit the byte count.
	* Don't allow conversions to be used for dates, allowing
	  the mask field to be used as an offset.

2014-05-30  12:51  Christos Zoulas <christos@@zoulas.com>

	* Make the range operator limit the length of the
	  regex search.

2014-05-14  19:23  Christos Zoulas <christos@@zoulas.com>

	* PR/347: Windows fixes
	* PR/352: Hangul word processor recognition
	* PR/354: Encoding irregularities in text files

2014-05-06  6:12  Christos Zoulas <christos@@zoulas.com>

	* Fix uninitialized title in CDF files (Jan Kaluza)

2014-05-04  14:55  Christos Zoulas <christos@@zoulas.com>

	* PR/351: Fix compilation of empty files

2014-04-30  17:39  Christos Zoulas <christos@@zoulas.com>

	* Fix integer formats: We don't specify 'l' or
	  'h' and 'hh' specifiers anymore, only 'll' for
	  quads and nothing for the rest. This is so that
	  magic writing is simpler.

2014-04-01  15:25  Christos Zoulas <christos@@zoulas.com>

	* PR/341: Jan Kaluza, fix memory leak
	* PR/342: Jan Kaluza, fix out of bounds read

2014-03-28  15:25  Christos Zoulas <christos@@zoulas.com>

	* Fix issue with long formats not matching fmtcheck
@
text
@d3 1
a3 1
# $File: elf,v 1.67 2014/06/12 13:52:48 christos Exp $
d35 2
a36 2
>18	leshort		1		AT&T WE32100,
>18	leshort		2		SPARC,
d38 1
a38 1
>18	leshort		4		Motorola m68k,
d43 1
a43 1
>18	leshort		5		Motorola m88k,
a98 1
>18	leshort		19		Intel 80960,
d116 1
a145 2
>18	leshort		64		DEC PDP-10,
>18	leshort		65		DEC PDP-11,
a174 2
>18	leshort		95		Alphamosaic VideoCore,
>18	leshort		96		Thompson Multimedia,
a175 8
>18	leshort		98		Tenor Network TPC,
>18	leshort		99		Trebia SNP 1000,
>18	leshort		100		STMicroelectronics ST200,
>18	leshort		101		Ubicom IP2022,
>18	leshort		102		MAX Processor,
>18	leshort		103		NatSemi CompactRISC,
>18	leshort		104		Fujitsu F2MC16,
>18	leshort		105		TI msp430,
a176 6
>18	leshort		107		S1C33 Family of Seiko Epson,
>18	leshort		108		Sharp embedded,
>18	leshort		109		Arca RISC,
>18	leshort		110		PKU-Unity Ltd.,
>18	leshort		111		eXcess: 16/32/64-bit,
>18	leshort		112		Icera Deep Execution Processor,
d178 1
a178 32
>18	leshort		114		NatSemi CRX,
>18	leshort		115		Motorola XGATE,
>18	leshort		116		Infineon C16x/XC16x,
>18	leshort		117		Renesas M16C series,
>18	leshort		118		Microchip dsPIC30F,
>18	leshort		119		Freescale RISC core,
>18	leshort		120		Renesas M32C series,
>18	leshort		131		Altium TSK3000 core,
>18	leshort		132		Freescale RS08,
>18	leshort		134		Cyan Technology eCOG2,
>18	leshort		135		Sunplus S+core7 RISC,
>18	leshort		136		New Japan Radio (NJR) 24-bit DSP,
>18	leshort		137		Broadcom VideoCore III,
>18	leshort		138		LatticeMico32,
>18	leshort		139		Seiko Epson C17 family,
>18	leshort		140		TI TMS320C6000 DSP family,
>18	leshort		141		TI TMS320C2000 DSP family,
>18	leshort		142		TI TMS320C55x DSP family,
>18	leshort		160		STMicroelectronics 64bit VLIW DSP,
>18	leshort		161		Cypress M8C,
>18	leshort		162		Renesas R32C series,
>18	leshort		163		NXP TriMedia family,
>18	leshort		164		QUALCOMM DSP6,
>18	leshort		165		Intel 8051 and variants,
>18	leshort		166		STMicroelectronics STxP7x family,
>18	leshort		167		Andes embedded RISC,
>18	leshort		168		Cyan eCOG1X family,
>18	leshort		169		Dallas MAXQ30,
>18	leshort		170		New Japan Radio (NJR) 16-bit DSP,
>18	leshort		171		M2000 Reconfigurable RISC,
>18	leshort		172		Cray NV2 vector architecture,
>18	leshort		173		Renesas RX family,
a179 7
>18	leshort		175		MCST Elbrus,
>18	leshort		176		Cyan Technology eCOG16 family,
>18	leshort		177		NatSemi CompactRISC,
>18	leshort		178		Freescale Extended Time Processing Unit,
>18	leshort		179		Infineon SLE9X,
>18	leshort		180		Intel L1OM,
>18	leshort		181		Intel K1OM,
a180 2
>18	leshort		185		Atmel 32-bit family,
>18	leshort		186		STMicroeletronics STM8 8-bit,
a182 2
>18	leshort		189		Xilinx MicroBlaze 32-bit RISC,
>18	leshort		190		NVIDIA CUDA architecture,
a183 21
>18	leshort		197		Renesas RL78 family,
>18	leshort		199		Renesas 78K0R,
>18	leshort		200		Freescale 56800EX,
>18	leshort		201		Beyond BA1,
>18	leshort		202		Beyond BA2,
>18	leshort		203		XMOS xCORE,
>18	leshort		204		Microchip 8-bit PIC(r),
>18	leshort		210		KM211 KM32,
>18	leshort		211		KM211 KMX32,
>18	leshort		212		KM211 KMX16,
>18	leshort		213		KM211 KMX8,
>18	leshort		214		KM211 KVARC,
>18	leshort		215		Paneve CDP,
>18	leshort		216		Cognitive Smart Memory,
>18	leshort		217		iCelero CoolEngine,
>18	leshort		218		Nanoradio Optimized RISC,
>18	leshort		0x1057		AVR (unofficial),
>18	leshort		0x1059		MSP430 (unofficial),
>18	leshort		0x1223		Adapteva Epiphany (unofficial),
>18	leshort		0x2530		Morpho MT (unofficial),
>18	leshort		0x3330		FR30 (unofficial),
a184 6
>18	leshort		0x4688		Infineon C166 (unofficial),
>18	leshort		0x5441		Cygnus FRV (unofficial),
>18	leshort		0x5aa5		DLX (unofficial),
>18	leshort		0x7650		Cygnus D10V (unofficial),
>18	leshort		0x7676		Cygnus D30V (unofficial),
>18	leshort		0x8217		Ubicom IP2xxx (unofficial),
a185 1
>18	leshort		0x9025		Cygnus PowerPC (unofficial),
a186 13
>18	leshort		0x9041		Cygnus M32R (unofficial),
>18	leshort		0x9080		Cygnus V850 (unofficial),
>18	leshort		0xa390		IBM S/390 (obsolete),
>18	leshort		0xabc7		Old Xtensa (unofficial),
>18	leshort		0xad45		xstormy16 (unofficial),
>18	leshort		0xbaab		Old MicroBlaze (unofficial),,
>18	leshort		0xbeef		Cygnus MN10300 (unofficial),
>18	leshort		0xdead		Cygnus MN10200 (unofficial),
>18	leshort		0xf00d		Toshiba MeP (unofficial),
>18	leshort		0xfeb0		Renesas M32C (unofficial),
>18	leshort		0xfeba		Vitesse IQ2000 (unofficial),
>18	leshort		0xfebb		NIOS (unofficial),
>18	leshort		0xfeed		Moxie (unofficial),
@


1.1.1.8
log
@import file-5.20; bug fixes and better image magic descriptions.
@
text
@d3 1
a3 1
# $File: elf,v 1.68 2014/09/19 19:05:57 christos Exp $
a259 1
>18	leshort		243		UCB RISC-V,
@


1.1.1.9
log
@2017-02-10  12:24  Christos Zoulas <christos@@zoulas.com>

	* release 5.30

2017-02-07  23:27  Christos Zoulas <christos@@zoulas.com>

	* If we exceeded the offset in a search return no match
	  (Christoph Biedl)
	* Be more lenient on corrupt CDF files (Christoph Biedl)

2017-02-04  16:46  Christos Zoulas <christos@@zoulas.com>

	* pacify ubsan sign extension (oss-fuzz/524)

2017-02-01  12:42  Christos Zoulas <christos@@zoulas.com>

	* off by one in cdf parsing (PR/593)
	* report debugging sections in elf (PR/591)

2016-11-06  10:52  Christos Zoulas <christos@@zoulas.com>

	* Allow @@@@@@ in extensions
	* Add missing overflow check in der magic (Jonas Wagner)

2016-10-25  10:40  Christos Zoulas <christos@@zoulas.com>

	* release 5.29

2016-10-24  11:20  Christos Zoulas <christos@@zoulas.com>

	* der getlength overflow (Jonas Wagner)
	* multiple magic file load failure (Christoph Biedl)

2016-10-17  11:26  Christos Zoulas <christos@@zoulas.com>

	* CDF parsing improvements (Guy Helmer)

2016-07-20   7:26  Christos Zoulas <christos@@zoulas.com>

	* Add support for signed indirect offsets

2016-07-18   7:41  Christos Zoulas <christos@@zoulas.com>

	* cat /dev/null | file - should print empty (Christoph Biedl)

2016-07-05  15:20  Christos Zoulas <christos@@zoulas.com>

	* Bump string size from 64 to 96.

2016-06-13  20:20  Christos Zoulas <christos@@zoulas.com>

	* PR/556: Fix separators on annotations.

2016-06-13  19:40  Christos Zoulas <christos@@zoulas.com>

	* release 5.28
	* fix leak on allocation failure

2016-06-01   1:20  Christos Zoulas <christos@@zoulas.com>

	* PR/555: Avoid overflow for offset > nbytes
	* PR/550: Segv on DER parsing:
	    - use the correct variable for length
	    - set offset to 0 on failure.

2016-05-13  12:00  Christos Zoulas <christos@@zoulas.com>

	* release 5.27

2016-04-18   9:35  Christos Zoulas <christos@@zoulas.com>

	* Errors comparing DER entries or computing offsets
	  are just indications of malformed non-DER files.
	  Don't print them.
	* Offset comparison was off-by-one.
	* Fix compression code (Werner Fink)
	* Put new bytes constant in the right file (not the generated one)

2016-04-16  18:34  Christos Zoulas <christos@@zoulas.com>

	* release 5.26

2016-03-31  13:50  Christos Zoulas <christos@@zoulas.com>

	* make the number of bytes read from files configurable.

2016-03-21  13:40  Christos Zoulas <christos@@zoulas.com>

	* Add bounds checks for DER code (discovered by Thomas Jarosch)
	* Change indirect recursion limit to indirect use count and
	  bump from 15 to 50 to prevent abuse.

2016-03-13  20:39  Christos Zoulas <christos@@zoulas.com>

	* Add -00 which prints filename\0description\0

2016-03-01  13:28  Christos Zoulas <christos@@zoulas.com>

	* Fix ID3 indirect parsing

2016-01-19  10:18  Christos Zoulas <christos@@zoulas.com>

	* add DER parsing capability

2015-11-13  10:35  Christos Zoulas <christos@@zoulas.com>

	* provide dprintf(3) for the OS's that don't have it.

2015-11-11  16:25  Christos Zoulas <christos@@zoulas.com>

	* redo the compression code report decompression errors

2015-11-10  23:25  Christos Zoulas <christos@@zoulas.com>

	* REG_STARTEND code is not working as expected, delete it.

2015-11-09  16:05  Christos Zoulas <christos@@zoulas.com>

	* Add zlib support if we have it.

2015-11-05  11:22  Christos Zoulas <christos@@zoulas.com>

	* PR/492: compression forking was broken with magic_buffer.

2015-09-16   9:50  Christos Zoulas <christos@@zoulas.com>

	* release 5.25

2015-09-11  13:25  Christos Zoulas <christos@@zoulas.com>

	* add a limit to the length of regex searches

2015-09-08   9:50  Christos Zoulas <christos@@zoulas.com>

	* fix problems with --parameter (Christoph Biedl)

2015-07-11  10:35  Christos Zoulas <christos@@zoulas.com>

	* Windows fixes PR/466 (Jason Hood)

2015-07-09  10:35  Christos Zoulas <christos@@zoulas.com>

	* release 5.24

2015-06-11   8:52  Christos Zoulas <christos@@zoulas.com>

	* redo long option encoding to fix off-by-one in 5.23

2015-06-10  13:50  Christos Zoulas <christos@@zoulas.com>

	* release 5.23

2015-06-09  16:10  Christos Zoulas <christos@@zoulas.com>

	* Fix issue with regex range for magic with offset
	* Always return true from mget with USE (success to mget not match
	  indication). Fixes mime evaluation after USE magic
	* PR/459: Don't insert magic entries to the list if there are parsing
	  errors for them.

2015-06-03  16:00  Christos Zoulas <christos@@zoulas.com>

	* PR/455: Add utf-7 encoding

2015-06-03  14:30  Christos Zoulas <christos@@zoulas.com>

	* PR/455: Implement -Z, look inside, but don't report on compression
	* PR/454: Fix allocation error on bad magic.

2015-05-29  10:30  Christos Zoulas <christos@@zoulas.com>

	* handle MAGIC_CONTINUE everywhere, not just in softmagic

2015-05-21  14:30  Christos Zoulas <christos@@zoulas.com>

	* don't print descriptions for NAME types when mime.

2015-04-09  15:59  Christos Zoulas <christos@@zoulas.com>

	* Add --extension to list the known extensions for this file type
	  Idea by Andrew J Roazen

2015-02-14  12:23  Christos Zoulas <christos@@zoulas.com>

	* Bump file search buffer size to 1M.

2015-01-09  14:35  Christos Zoulas <christos@@zoulas.com>

	* Fix multiple issues with date formats reported by Christoph Biedl:
		- T_LOCAL meaning was reversed
		- Arithmetic did not work
	  Also stop adjusting daylight savings for gmt printing.

2015-01-05  13:00  Christos Zoulas <christos@@zoulas.com>

	* PR/411: Fix memory corruption from corrupt cdf file.
@
text
@d3 1
a3 1
# $File: elf,v 1.70 2016/06/02 12:36:30 christos Exp $
a17 26
0	name		elf-mips
>0	lelong&0xf0000000	0x00000000	MIPS-I
>0	lelong&0xf0000000	0x10000000	MIPS-II
>0	lelong&0xf0000000	0x20000000	MIPS-III
>0	lelong&0xf0000000	0x30000000	MIPS-IV
>0	lelong&0xf0000000	0x40000000	MIPS-V
>0	lelong&0xf0000000	0x50000000	MIPS32
>0	lelong&0xf0000000	0x60000000	MIPS64
>0	lelong&0xf0000000	0x70000000	MIPS32 rel2
>0	lelong&0xf0000000	0x80000000	MIPS64 rel2
>0	lelong&0xf0000000	0x90000000	MIPS32 rel6
>0	lelong&0xf0000000	0xa0000000	MIPS64 rel6

0	name		elf-sparc
>0	lelong&0x00ffff00	0x00000100	V8+ Required,
>0	lelong&0x00ffff00	0x00000200	Sun UltraSPARC1 Extensions Required,
>0	lelong&0x00ffff00	0x00000400	HaL R1 Extensions Required,
>0	lelong&0x00ffff00	0x00000800	Sun UltraSPARC3 Extensions Required,
>0	lelong&0x3		0		total store ordering,
>0	lelong&0x3		1		partial store ordering,
>0	lelong&0x3		2		relaxed memory ordering,

0	name		elf-pa-risc
>2	leshort		0x0214		2.0
>0	leshort		&0x0008		(LP64)

d58 9
a66 1
>>>36	use		elf-mips
d69 9
a77 1
>>>48	use		elf-mips
d84 2
a85 1
>>>36	use		elf-pa-risc
d88 2
a89 1
>>>48	use		elf-pa-risc
d95 4
a98 1
>>>36	use		elf-sparc
d120 6
a125 1
>>>48	use		elf-sparc
d304 22
a325 20
>7	byte		0		(SYSV)
>7	byte		1		(HP-UX)
>7	byte		2		(NetBSD)
>7	byte		3		(GNU/Linux)
>7	byte		4		(GNU/Hurd)
>7	byte		5		(86Open)
>7	byte		6		(Solaris)
>7	byte		7		(Monterey)
>7	byte		8		(IRIX)
>7	byte		9		(FreeBSD)
>7	byte		10		(Tru64)
>7	byte		11		(Novell Modesto)
>7	byte		12		(OpenBSD)
>7	byte		13		(OpenVMS)
>7	byte		14		(HP NonStop Kernel)
>7	byte		15		(AROS Research Operating System)
>7	byte		16		(FenixOS)
>7	byte		17		(Nuxi CloudABI)
>7	byte		97		(ARM)
>7	byte		255		(embedded)
@


1.1.1.10
log
@2018-04-15  14:52  Christos Zoulas <christos@@zoulas.com>

	* release 5.33

2018-02-24  14:50  Christos Zoulas <christos@@zoulas.com>

	* extend the support for ${x?:} expansions for magic descriptions

2018-02-21  16:25  Christos Zoulas <christos@@zoulas.com>

	* add support for ${x?:} in mime types to handle
	  pie binaries.

2017-11-03   9:23  Christos Zoulas <christos@@zoulas.com>

	* add support for negative offsets (offsets from the end of file)

2017-09-26   8:22  Christos Zoulas <christos@@zoulas.com>

	* close the file on error when writing magic (Steve Grubb)

2017-09-24  12:02  Christos Zoulas <christos@@zoulas.com>

	* seccomp support (Paul Moore)

2017-09-02  11:53  Christos Zoulas <christos@@zoulas.com>

	* release 5.32

2017-08-28  16:37  Christos Zoulas <christos@@zoulas.com>

	* Always reset state in {file,buffer}_apprentice (Krzysztof Wilczynski)

2017-08-27  03:55  Christos Zoulas <christos@@zoulas.com>

	* Fix always true condition (Thomas Jarosch)

2017-05-24  17:30  Christos Zoulas <christos@@zoulas.com>

	* pickier parsing of numeric values in magic files.

2017-05-23  17:55  Christos Zoulas <christos@@zoulas.com>

	* PR/615 add magic_getflags()
@
text
@d3 1
a3 1
# $File: elf,v 1.72 2018/02/24 19:50:04 christos Exp $
d51 2
a52 3
>16	leshort		3		${x?pie executable:shared object}

!:mime	application/x-${x?pie-executable:sharedlib}
@


1.1.1.11
log
@2018-10-18  19:32  Christos Zoulas <christos@@zoulas.com>

	* release 5.35

2018-09-10  20:38  Christos Zoulas <christos@@zoulas.com>

	* Add FreeBSD ELF core file support (John Baldwin)

2018-08-20  18:40  Christos Zoulas <christos@@zoulas.com>

	* PR/30: Allow all parameter values to be set (don't treat 0 specially)
	* handle default annotations on the softmagic match instead at the
	  end.

2018-07-25  10:17  Christos Zoulas <christos@@zoulas.com>

	* PR/23: Recognize JSON files

2018-07-25  10:17  Christos Zoulas <christos@@zoulas.com>

	* PR/18: file --mime-encoding should not print mime-type

2018-07-25   8:50  Christos Zoulas <christos@@zoulas.com>

	* release 5.34

2018-06-22  16:38  Christos Zoulas <christos@@zoulas.com>

	* Add Quad indirect offsets

2018-05-24  14:10  Christos Zoulas <christos@@zoulas.com>

	* Enable parsing of ELF dynamic sections to handle PIE better
@
text
@d3 1
a3 1
# $File: elf,v 1.74 2018/06/23 16:39:53 christos Exp $
d51 1
a51 1
>16	leshort		3		${x?pie executable:shared object},
d54 1
a54 1
>16	leshort		4		core file,
a55 4
# OS-specific
>7	byte		202
>>16	leshort		0xFE01		executable,
!:mime	application/x-executable
a323 1
>7	byte		202		(Cafe OS)
@


1.1.1.12
log
@2019-05-14  22:26  Christos Zoulas <christos@@zoulas.com>

	* release 5.37

2019-05-09  22:27  Christos Zoulas <christos@@zoulas.com>

	* Make sure that continuation separators are printed
	  with -k within softmagic

2019-05-06  22:27  Christos Zoulas <christos@@zoulas.com>

	* Change SIGPIPE saving and restoring during compression to use
	  sigaction(2) instead of signal(3) and cache it. (Denys Vlasenko)
	* Cache stat(2) calls more to reduce number of calls (Denys Vlasenko)

2019-05-06  17:25  Christos Zoulas <christos@@zoulas.com>

	* PR/77: Handle --mime-type and -k correctly.

2019-05-03  15:26  Christos Zoulas <christos@@zoulas.com>

	* Switch decompression code to use vfork() because
	  tools like rpmdiff and rpmbuild call libmagic
	  with large process footprints (Denys Vlasenko)

2019-04-07  14:05  Christos Zoulas <christos@@zoulas.com>

	* PR/75: --enable-zlib, did not work.

2019-02-27  11:54  Christos Zoulas <christos@@zoulas.com>

	* Improve regex efficiency (Michael Schroeder) by:
		1. Prefixing regex searches with regular search
		   for keywords where possible
		2. Using memmem(3) where available
@
text
@d3 1
a3 1
# $File: elf,v 1.77 2019/01/16 19:33:35 christos Exp $
a40 2
>2	leshort		0x0208		1.0
>2	leshort		0x0210		1.1
a265 2
>18	leshort		247		eBPF,
>18	leshort		251             NEC VE,
@


1.1.1.13
log
@Import 5.38:
	- Always accept -S (no sandbox) even if we don't support sandboxing
	- More syscalls elided for sandboxiing
	- For ELF dynamic means having an interpreter not just PT_DYNAMIC
	- Check for large ELF session header offset
	- When saving and restoring a locale, keep the locale name in our
	  own storage.
	- Add a flag to disable CSV file detection.
	- Don't pass NULL/0 to memset to appease sanitizers.
	- Avoid spurious prints when looks for extensions or apple strings
	  in fsmagic.
	- Add builtin decompressors for xz and and bzip.
	- Add a limit for the number of CDF elements.
	- More checks for overflow in CDF.
@
text
@d3 1
a3 1
# $File: elf,v 1.79 2019/12/16 04:24:01 christos Exp $
d41 1
a41 1
>2	leshort		0x020b		1.0
d53 3
a55 2
>16	leshort		3		shared object,
!:mime	application/x-sharedlib
@


1.1.1.14
log
@Import 5.39:

   * Remove unused subtype_mime (Steve Grubb)
   * Remove unused check in okstat (Steve Grubb)
   * Fix mime-type in elf binaries by making sure $x is set
   * Fix indirect negative offsets broken by OFFNEGATIVE
   * Fix GUID equality check
   * PR/165: Handle empty array and strings in JSON
   * PR/162: Add --exclude-quiet
   * Fix memory leak in ascmagic (Steve Grubb)
   * Fix string comparison length with ignore whitespace
   * Fix mingwin 64 compilation
   * PR/159: whitelist getpid needed for file_pipe2file()
   * Indicate negative offsets with a flag OFFNEGATIVE
     so that -0 works.
   * Introduce "offset" magic type that can be used to
     detect the file size, and bail on short files.
   * document DER better in the magic man page.
   * fix memory leaks (SonarQube)
   * rewrite confusing loops (SonarQube)
   * fix bogus test (SonarQube)
   * pass a sized buffer to file_fmttime() (SonarQube)
   * Don't allow * in printf formats, or the code itself (Christoph Biedl)
   * Introduce a printf output size checker to avoid DoS attacks
   * Avoid memory leak on error (oss-fuzz)
   * Check length of string on DER before derefercing and add new types
   * Add missing DER string (oss-fuzz)
   * Add missing DER types, and debugging
   * PR/140: Avoid abort with hand-crafted magic file (gockelhahn)
   * PR/139:  Avoid DoS in printf with hand-crafted magic file (gockelhahn)
   * PR/138: Avoid crash with hand-crafted magic file (gockelhahn)
   * PR/136: Fix static build by adding a libmagic.pc (Fabrice Fontaine)
   * add guid support native support via the "guid" type.
@
text
@d3 1
a3 1
# $File: elf,v 1.80 2020/02/12 22:17:33 christos Exp $
d53 2
a54 3
>16	leshort		3		${x?pie executable:shared object},

!:mime	application/x-${x?pie-executable:sharedlib}
@


1.1.1.15
log
@2021-03-30  20:21  Christos Zoulas <christos@@zoulas.com>

	* release 5.40

2021-02-05  16:31  Christos Zoulas <christos@@zoulas.com>

	* PR/234: Add limit to the number of bytes to scan for encoding
	* PR/230: Fix /T (trim flag) for regex

2021-02-01  12:31  Christos Zoulas <christos@@zoulas.com>
	* PR/77: Trim trailing separator.

2020-12-17  15:44  Christos Zoulas <christos@@zoulas.com>

	* PR/211: Convert system read errors from corrupt ELF
	  files into human readable error messages

2020-12-08  16:24  Christos Zoulas <christos@@zoulas.com>

	* fix multithreaded decompression file descriptor issue
	  by using close-on-exec (Denys Vlasenko)

2020-06-27  11:58  Christos Zoulas <christos@@zoulas.com>

	* Exclude surrogate pairs from utf-8 detection (Michael Liu)

2020-06-25  12:53  Christos Zoulas <christos@@zoulas.com>

	* Include # to the list of ignored format chars (Werner Fink)
@
text
@d3 1
a3 1
# $File: elf,v 1.85 2021/03/27 20:18:38 christos Exp $
a45 8
0	name		elf-riscv
>0	lelong&0x00000001	0x00000001	RVC,
>0	lelong&0x00000008	0x00000008	RVE,
>0	lelong&0x00000006	0x00000000	soft-float ABI,
>0	lelong&0x00000006	0x00000002	single-float ABI,
>0	lelong&0x00000006	0x00000004	double-float ABI,
>0	lelong&0x00000006	0x00000006	quad-float ABI,

d65 1
a65 6
>16	leshort		&0xff00
>>18	leshort		!8		processor-specific,
>>18	leshort		8
>>>16	leshort		0xFF80		PlayStation 2 IOP module,
!:mime	application/x-sharedlib
>>>16	leshort		!0xFF80		processor-specific,
a113 3
>>48	lelong		0		Unspecified or Power ELF V1 ABI,
>>48	lelong		1		Power ELF V1 ABI,
>>48	lelong		2		OpenPOWER ELF V2 ABI,
d182 1
a182 1
>18	leshort		93		Synopsys ARCompact ARC700 cores,
a220 1
>18	leshort		144		TI Programmable Realtime Unit
a250 1
>18	leshort		195		Synopsys ARCv2/HS3x/HS4x cores,
a267 9
# only for 32-bit
>>4	byte		1
>>>36	use		elf-riscv
# only for 64-bit
>>4	byte		2
>>>48	use		elf-riscv
>18	leshort		244		Lanai 32-bit processor,
>18	leshort		245		CEVA Processor Architecture Family,
>18	leshort		246		CEVA X2 Processor Family,
d269 1
a269 12
>18	leshort		248		Graphcore Intelligent Processing Unit,
>18	leshort		249		Imagination Technologies,
>18	leshort		250		Netronome Flow Processor,
>18	leshort		251             NEC Vector Engine,
>18	leshort		252		C-SKY processor family,
>18	leshort		253		Synopsys ARCv3 64-bit ISA/HS6x cores,
>18	leshort		254		MOS Technology MCS 6502 processor,
>18	leshort		255		Synopsys ARCv3 32-bit,
>18	leshort		256		Kalray VLIW core of the MPPA family,
>18	leshort		257		WDC 65816/65C816,
>18	leshort		258		Loongson Loongarch,
>18	leshort		259		ChipON KungFu32,
@


1.1.1.16
log
@Import file-5.43+; last was file-5.40

2022-09-20  17:12  Christos Zoulas <christos@@zoulas.com>

	* fixed various clustefuzz issues

2022-09-19  15:54  Christos Zoulas <christos@@zoulas.com>

	* Fix error detection for decompression code (Vincent Mihalkovic)

2022-09-15  13:50  Christos Zoulas <christos@@zoulas.com>

	* Add MAGIC_NO_COMPRESS_FORK and use it to produce a more
	  meaningful error message if we are sandboxing.

2022-09-15  10:45  Christos Zoulas <christos@@zoulas.com>

	* Add built-in lzip decompression support (Michal Gorny)

2022-09-14  10:35  Christos Zoulas <christos@@zoulas.com>

	* Add built-in zstd decompression support (Martin Rodriguez Reboredo)

2022-09-13  14:55  Christos Zoulas <christos@@zoulas.com>

	* release 5.43

2022-09-10   9:17  Christos Zoulas <christos@@zoulas.com>

	* Add octal indirect magic (Michal Gorny)

2022-08-17  11:43  Christos Zoulas <christos@@zoulas.com>

	* PR/374: avoid infinite loop in non-wide code (piru)
	* PR/373: Obey MAGIC_CONTINUE with multiple magic files (vismarli)

2022-07-26  11:10  Christos Zoulas <christos@@zoulas.com>

	* Fix bug with large flist (Florian Weimer)

2022-07-07  13:21  Christos Zoulas <christos@@zoulas.com>

        * PR/364: Detect non-nul-terminated core filenames from QEMU
	  (mam-ableton)

2022-07-04  15:45  Christos Zoulas <christos@@zoulas.com>

	* PR/359: Add support for http://ndjson.org/ (darose)
	* PR/362: Fix wide printing (ro-ee)
	* PR/358: Fix width for -f - (jpalus)
	* PR/356: Fix JSON constant parsing (davewhite)

2022-06-10   9:40  Christos Zoulas <christos@@zoulas.com>

	* release 5.42

2022-05-31  14:50   Christos Zoulas <christos@@zoulas.com>

	* PR/348: add missing cases to prevent file from aborting on
	  random magic files.

2022-05-27  21:05   Christos Zoulas <christos@@zoulas.com>

	* PR/351: octalify filenames when not raw before printing.

2022-04-18  17:51   Christos Zoulas <christos@@zoulas.com>

	* fix regex cacheing bug (Dirk Mueller)
	* merge file_regcomp and file_regerror() to simplify the code
	  and reduce memory requirements for storing regexes (Dirk Mueller)

2022-03-19  12:56   Christos Zoulas <christos@@zoulas.com>

	* cache regex (Dirk Mueller)
	* detect filesystem full by flushing output (Dirk Mueller)

2021-11-19  12:36   Christos Zoulas <christos@@zoulas.com>

	* implement running decompressor programs using
	  posix_spawnp(2) instead of vfork(2)

2021-10-24  11:51   Christos Zoulas <christos@@zoulas.com>

	* Add support for msdos dates and times

2021-10-20   9:55   Christos Zoulas <christos@@zoulas.com>

	* use the system byte swapping functions if available (Werner Fink)

2021-10-18  11:57  Christos Zoulas <christos@@zoulas.com>

	* release 5.41

2021-09-23  03:51  Christos Zoulas <christos@@zoulas.com>

	* Avinash Sonawane: Fix tzname detection

2021-09-03  09:17  Christos Zoulas <christos@@zoulas.com>

	* Fix relationship tests with "search" magic, don't short circuit
	  logic

2021-07-13  01:06  Christos Zoulas <christos@@zoulas.com>

	* Fix memory leak in compile mode

2021-07-01  03:51  Christos Zoulas <christos@@zoulas.com>

	* PR/272: kiefermat: Only set returnval = 1 when we printed something
	  (in all cases print or !print). This simplifies the logic and fixes
	  the issue in the PR with -k and --mime-type there was no continuation
	  printed before the default case.

2021-06-30  13:07  Christos Zoulas <christos@@zoulas.com>

	* PR/270: Don't translate unprintable characters in %s magic formats
	  when -r
	* PR/269: Avoid undefined behavior with clang (adding offset to NULL)

2021-05-09  18:38  Christos Zoulas <christos@@zoulas.com>

	* Add a new flag (f) that requires that the match is a full word,
	   not a partial word match.
	* Add varint types (unused)

2021-04-19  17:17  Christos Zoulas <christos@@zoulas.com>

	* PR/256: mutableVoid: If the file is less than 3 bytes, use the file
	  length to determine type
	* PR/259: aleksandr.v.novichkov: mime printing through indirect magic
	  is not taken into account, use match directly so that it does.

2021-04-04  17:02  Christos Zoulas <christos@@zoulas.com>

	* count the total bytes found not the total byte positions
	  in order to determine encoding (Anatol Belski)
@
text
@d3 1
a3 1
# $File: elf,v 1.87 2021/05/25 15:19:51 christos Exp $
d306 1
a306 1
>18	leshort		258		LoongArch,
d337 1
a337 1
>>18	leshort		x		*unknown arch %#x*
@


1.1.1.17
log
@Update to file-5.45 (Last was file-5.44)

2023-07-27  15:45  Christos Zoulas <christos@@zoulas.com>

	* release 5.45

2023-07-17  11:53  Christos Zoulas <christos@@zoulas.com>

	* PR/465: psrok1: Avoid muslc asctime_r crash

2023-05-21  13:05  Christos Zoulas <christos@@zoulas.com>

	* add SIMH tape format support

2023-02-09  12:50  Christos Zoulas <christos@@zoulas.com>

	* bump the max size of the elf section notes to be read to 128K
	  and make it configurable

2023-01-08   1:08  Christos Zoulas <christos@@zoulas.com>

	* PR/415: Fix decompression with program returning empty

2022-12-26   1:47  Christos Zoulas <christos@@zoulas.com>

	* PR/408: fix -p with seccomp
	* PR/412: fix MinGW compilation
@
text
@d3 1
a3 1
# $File: elf,v 1.88 2023/01/08 17:09:18 christos Exp $
a10 2
# https://www.sco.com/developers/gabi/latest/ch4.eheader.html
#
a284 6
>18	leshort		219		CSR Kalimba architecture family
>18	leshort		220		Zilog Z80
>18	leshort		221		Controls and Data Services VISIUMcore processor
>18	leshort		222		FTDI Chip FT32 high performance 32-bit RISC architecture
>18	leshort		223		Moxie processor family
>18	leshort		224		AMD GPU architecture
@


1.1.1.18
log
@Import file-5.48 (previous was file-5.45)

2026-05-07  11:32  Christos Zoulas <christos@@zoulas.com>

	* release 5.48

2026-05-11  15:55 Christos Zoulas <christos@@zoulas.com>

	* add landlock support (valoq)

2026-04-19  15:55 Christos Zoulas <christos@@zoulas.com>

	* add BE/LE GUID

2026-04-17  11:05 Christos Zoulas <christos@@zoulas.com>

	* multiple fixes to prevent integer overflow in 32 bits (kerwin)

2026-04-15  12:40 Christos Zoulas <christos@@zoulas.com>

	* PR/745: streamout: Don't flush when trying to set negative offsets
	          on pipes, just continue, fixes 'cat file.zip | file -'
	* PR/753: vmihalko: Fix race is magic_getpath()

2026-03-11  15:14 Christos Zoulas <christos@@zoulas.com>

	* PR/728: Anton Monroe: Reinstate regex/c

2026-02-26  11:32  Christos Zoulas <christos@@zoulas.com>

	* release 5.47

2026-02-04  09:54  Christos Zoulas <christos@@zoulas.com>
	* Better multi-compound document identification by following the
	  order of the directories entries. (Thomas Ledoux)

2026-01-19  14:00  Christos Zoulas <christos@@zoulas.com>
	* if stat fails, don't attempt to restore times (Steven Grubb)

2025-05-28  15:20  Christos Zoulas <christos@@zoulas.com>

	* PR/622: Odd_Bloke: Handle negative offsets in file_buffer(),
	  when fd is not available.

2025-05-28  12:50  Christos Zoulas <christos@@zoulas.com>

	* PR/655: jsummers: Obey str_flags in strings like we do for search
	  and regex
	* PR/659: Pitzl: Apply MAGIC_CONTINUE to annotations; i.e. print
	  only the first, unless -k is specified.

2024-12-19  14:44  Christos Zoulas <christos@@zoulas.com>

	* PR/592: allow + in format strings
	* PR/592: signed operations should be done in signed context

2024-12-05  13:50 Christos Zoulas <christos@@zoulas.com>

	* PR/578: jsummers: Don't crash on cygwin when tm_mon == -1
	* PR/579: net147: Fix stack overrun.

2024-11-27  14:44  Christos Zoulas <christos@@zoulas.com>

	* release 5.46
	* Add OFFPOSITIVE

2024-11-25  13:56  Christos Zoulas <christos@@zoulas.com>

	* avoid leaking symbols in libmagic

2024-11-10  13:56  Christos Zoulas <christos@@zoulas.com>

	* PR/562: jsummers: Search/regex offsets are absolute to the
	  beginning of the file, so adjust them by subtracting the
	  offset that the "use" starts so that we don't double-count it.


2024-11-09  19:30  Christos Zoulas <christos@@zoulas.com>
 	* PR/543: matshch: bump nbuf so we can get the flags into the buffer.


2024-11-02  14:34  Christos Zoulas <christos@@zoulas.com>

 	* Add Android elf notes (enh)

2023-12-29  12:55  Christos Zoulas <christos@@zoulas.com>

	* Add limit for number of magic warnings allowed

2023-07-29  12:55  Christos Zoulas <christos@@zoulas.com>

	* check regex bounds (found by clusterfuzz)
@
text
@d3 1
a3 1
# $File: elf,v 1.91 2024/11/09 23:52:23 christos Exp $
d85 1
a85 1
>18	leshort		3		Intel i386,
d92 2
a93 2
>18	leshort		6		Intel i486,
>18	leshort		7		Intel i860,
a377 1
>7	byte		102		(Cell LV2)
a379 23

# SELF Signed ELF used on the playstation
# https://www.psdevwiki.com/ps4/SELF_File_Format#make_fself_by_flatz
# https://www.psdevwiki.com/ps3/SELF_-_SPRX
0	lelong		0x4F153D1D
>4	lelong		0x00010112	PS4 Signed ELF file
>8	byte		1		\b, SELF/SPRX signed-elf/prx
>8	byte		2		\b, SRVK signed-revoke-list
>8	byte		3		\b, SPKG signed-package
>8	byte		4		\b, SSPP signed-security-policy-profile
>8	byte		5		\b, SDIFF signed-diff
>8	byte		6		\b, SPSFO signed-param-sfo
>9	byte&0xf0	x		\b, version %#x	
>9	byte&0x0f	4		\b, game
>9	byte&0x0f	5		\b, module
>9	byte&0x0f	6		\b, video app
>9	byte&0x0f	8		\b, System/EX application
>9	byte&0x0f	9		\b, System/EX module/dll
#>12	leshort		x		\b, header size %d
#>14	leshort		x		\b, signature size %d
#>16	lelong		x		\b, file size %d
#>18	leshort		x		\b, number of segments %d
#>20	leshort		22
@


1.1.1.1.2.1
log
@file elf was added on branch jym-xensuspend on 2009-05-13 18:51:55 +0000
@
text
@d1 288
@


1.1.1.1.2.2
log
@Sync with HEAD.

Second commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
@
text
@a0 288

#------------------------------------------------------------------------------
# elf:  file(1) magic for ELF executables
#
# We have to check the byte order flag to see what byte order all the
# other stuff in the header is in.
#
# What're the correct byte orders for the nCUBE and the Fujitsu VPP500?
#
# Created by: unknown
# Modified by (1): Daniel Quinlan <quinlan@@yggdrasil.com>
# Modified by (2): Peter Tobias <tobias@@server.et-inf.fho-emden.de> (core support)
# Modified by (3): Christian 'Dr. Disk' Hechelmann <drdisk@@ds9.au.s.shuttle.de> (fix of core support)
# Modified by (4): <gerardo.cacciari@@gmail.com> (VMS Itanium)
# Modified by (5): Matthias Urlichs <smurf@@debian.org> (Listing of many architectures)
0	string		\177ELF		ELF
>4	byte		0		invalid class
>4	byte		1		32-bit
>4	byte		2		64-bit
>5	byte		0		invalid byte order
>5	byte		1		LSB
>>16	leshort		0		no file type,
!:strength *2
!:mime	application/octet-stream
>>16	leshort		1		relocatable,
!:mime	application/x-object
>>16	leshort		2		executable,
!:mime	application/x-executable
>>16	leshort		3		shared object,
!:mime	application/x-sharedlib
>>16	leshort		4		core file
!:mime	application/x-coredump
# Core file detection is not reliable.
#>>>(0x38+0xcc) string	>\0		of '%s'
#>>>(0x38+0x10) lelong	>0		(signal %d),
>>16	leshort		&0xff00		processor-specific,
>>18	leshort		0		no machine,
>>18	leshort		1		AT&T WE32100 - invalid byte order,
>>18	leshort		2		SPARC - invalid byte order,
>>18	leshort		3		Intel 80386,
>>18	leshort		4		Motorola
>>>36	lelong		&0x01000000	68000 - invalid byte order,
>>>36	lelong		&0x00810000	CPU32 - invalid byte order,
>>>36	lelong		0		68020 - invalid byte order,
>>18	leshort		5		Motorola 88000 - invalid byte order,
>>18	leshort		6		Intel 80486,
>>18	leshort		7		Intel 80860,
# The official e_machine number for MIPS is now #8, regardless of endianness.
# The second number (#10) will be deprecated later. For now, we still
# say something if #10 is encountered, but only gory details for #8.
>>18	leshort		8		MIPS,
>>>36	lelong		&0x20		N32
>>18	leshort		10		MIPS,
>>>36	lelong		&0x20		N32
>>18	leshort		8
# only for 32-bit
>>>4	byte		1
>>>>36  lelong&0xf0000000	0x00000000	MIPS-I
>>>>36  lelong&0xf0000000	0x10000000	MIPS-II
>>>>36  lelong&0xf0000000	0x20000000	MIPS-III
>>>>36  lelong&0xf0000000	0x30000000	MIPS-IV
>>>>36  lelong&0xf0000000	0x40000000	MIPS-V
>>>>36  lelong&0xf0000000	0x50000000	MIPS32
>>>>36  lelong&0xf0000000	0x60000000	MIPS64
>>>>36  lelong&0xf0000000	0x70000000	MIPS32 rel2
>>>>36  lelong&0xf0000000	0x80000000	MIPS64 rel2
# only for 64-bit
>>>4	byte		2
>>>>48  lelong&0xf0000000	0x00000000	MIPS-I
>>>>48  lelong&0xf0000000	0x10000000	MIPS-II
>>>>48  lelong&0xf0000000	0x20000000	MIPS-III
>>>>48  lelong&0xf0000000	0x30000000	MIPS-IV
>>>>48  lelong&0xf0000000	0x40000000	MIPS-V
>>>>48  lelong&0xf0000000	0x50000000	MIPS32
>>>>48  lelong&0xf0000000	0x60000000	MIPS64
>>>>48  lelong&0xf0000000	0x70000000	MIPS32 rel2
>>>>48  lelong&0xf0000000	0x80000000	MIPS64 rel2
>>18	leshort		9		Amdahl - invalid byte order,
>>18	leshort		10		MIPS (deprecated),
>>18	leshort		11		RS6000 - invalid byte order,
>>18	leshort		15		PA-RISC - invalid byte order,
>>>50	leshort		0x0214		2.0
>>>48	leshort		&0x0008		(LP64),
>>18	leshort		16		nCUBE,
>>18	leshort		17		Fujitsu VPP500,
>>18	leshort		18		SPARC32PLUS - invalid byte order,
>>18	leshort		20		PowerPC,
>>18	leshort		22		IBM S/390,
>>18	leshort		36		NEC V800,
>>18	leshort		37		Fujitsu FR20,
>>18	leshort		38		TRW RH-32,
>>18	leshort		39		Motorola RCE,
>>18	leshort		40		ARM,
>>18	leshort		41		Alpha,
>>18	leshort		0xa390		IBM S/390 (obsolete),
>>18	leshort		42		Renesas SH,
>>18	leshort		43		SPARC V9 - invalid byte order,
>>18	leshort		44		Siemens Tricore Embedded Processor,
>>18	leshort		45		Argonaut RISC Core, Argonaut Technologies Inc.,
>>18	leshort		46		Renesas H8/300,
>>18	leshort		47		Renesas H8/300H,
>>18	leshort		48		Renesas H8S,
>>18	leshort		49		Renesas H8/500,
>>18	leshort		50		IA-64,
>>18	leshort		51		Stanford MIPS-X,
>>18	leshort		52		Motorola Coldfire,
>>18	leshort		53		Motorola M68HC12,
>>18	leshort		54		Fujitsu MMA,
>>18	leshort		55		Siemens PCP,
>>18	leshort		56		Sony nCPU,
>>18	leshort		57		Denso NDR1,
>>18	leshort		58		Start*Core,
>>18	leshort		59		Toyota ME16,
>>18	leshort		60		ST100,
>>18	leshort		61		Tinyj emb.,
>>18	leshort		62		x86-64,
>>18	leshort		63		Sony DSP,
>>18	leshort		66		FX66,
>>18	leshort		67		ST9+ 8/16 bit,
>>18	leshort		68		ST7 8 bit,
>>18	leshort		69		MC68HC16,
>>18	leshort		70		MC68HC11,
>>18	leshort		71		MC68HC08,
>>18	leshort		72		MC68HC05,
>>18	leshort		73		SGI SVx,
>>18	leshort		74		ST19 8 bit,
>>18	leshort		75		Digital VAX,
>>18	leshort		76		Axis cris,
>>18	leshort		77		Infineon 32-bit embedded,
>>18	leshort		78		Element 14 64-bit DSP,
>>18	leshort		79		LSI Logic 16-bit DSP,
>>18	leshort		80		MMIX,
>>18	leshort		81		Harvard machine-independent,
>>18	leshort		82		SiTera Prism,
>>18	leshort		83		Atmel AVR 8-bit,
>>18	leshort		84		Fujitsu FR30,
>>18	leshort		85		Mitsubishi D10V,
>>18	leshort		86		Mitsubishi D30V,
>>18	leshort		87		NEC v850,
>>18	leshort		88		Renesas M32R,
>>18	leshort		89		Matsushita MN10300,
>>18	leshort		90		Matsushita MN10200,
>>18	leshort		91		picoJava,
>>18	leshort		92		OpenRISC,
>>18	leshort		93		ARC Cores Tangent-A5,
>>18	leshort		94		Tensilica Xtensa,
>>18	leshort		97		NatSemi 32k,
>>18	leshort		106		Analog Devices Blackfin,
>>18	leshort		113		Altera Nios II,
>>18	leshort		0xae		META,
>>18	leshort		0x3426		OpenRISC (obsolete),
>>18	leshort		0x8472		OpenRISC (obsolete),
>>18	leshort		0x9026		Alpha (unofficial),
>>20	lelong		0		invalid version
>>20	lelong		1		version 1
>>36	lelong		1		MathCoPro/FPU/MAU Required
>5	byte		2		MSB
>>16	beshort		0		no file type,
!:mime	application/octet-stream
>>16	beshort		1		relocatable,
!:mime	application/x-object
>>16	beshort		2		executable,
!:mime	application/x-executable
>>16	beshort		3		shared object,
!:mime	application/x-sharedlib
>>16	beshort		4		core file,
!:mime	application/x-coredump
#>>>(0x38+0xcc) string	>\0		of '%s'
#>>>(0x38+0x10) belong	>0		(signal %d),
>>16	beshort		&0xff00		processor-specific,
>>18	beshort		0		no machine,
>>18	beshort		1		AT&T WE32100,
>>18	beshort		2		SPARC,
>>18	beshort		3		Intel 80386 - invalid byte order,
>>18	beshort		4		Motorola
>>>36	belong		&0x01000000	68000,
>>>36	belong		&0x00810000	CPU32,
>>>36	belong		0		68020,
>>18	beshort		5		Motorola 88000,
>>18	beshort		6		Intel 80486 - invalid byte order,
>>18	beshort		7		Intel 80860,
# only for MIPS - see comment in little-endian section above.
>>18	beshort		8		MIPS,
>>>36	belong		&0x20		N32
>>18	beshort		10		MIPS,
>>>36	belong		&0x20		N32
>>18	beshort		8
# only for 32-bit
>>>4	byte		1
>>>>36  belong&0xf0000000	0x00000000	MIPS-I
>>>>36  belong&0xf0000000	0x10000000	MIPS-II
>>>>36  belong&0xf0000000	0x20000000	MIPS-III
>>>>36  belong&0xf0000000	0x30000000	MIPS-IV
>>>>36  belong&0xf0000000	0x40000000	MIPS-V
>>>>36  belong&0xf0000000	0x50000000	MIPS32
>>>>36  belong&0xf0000000	0x60000000	MIPS64
>>>>36  belong&0xf0000000	0x70000000	MIPS32 rel2
>>>>36  belong&0xf0000000	0x80000000	MIPS64 rel2
# only for 64-bit
>>>4	byte		2
>>>>48	belong&0xf0000000	0x00000000	MIPS-I
>>>>48	belong&0xf0000000	0x10000000	MIPS-II
>>>>48	belong&0xf0000000	0x20000000	MIPS-III
>>>>48	belong&0xf0000000	0x30000000	MIPS-IV
>>>>48	belong&0xf0000000	0x40000000	MIPS-V
>>>>48	belong&0xf0000000	0x50000000	MIPS32
>>>>48	belong&0xf0000000	0x60000000	MIPS64
>>>>48	belong&0xf0000000	0x70000000	MIPS32 rel2
>>>>48	belong&0xf0000000	0x80000000	MIPS64 rel2
>>18	beshort		9		Amdahl,
>>18	beshort		10		MIPS (deprecated),
>>18	beshort		11		RS6000,
>>18	beshort		15		PA-RISC
>>>50	beshort		0x0214		2.0
>>>48	beshort		&0x0008		(LP64)
>>18	beshort		16		nCUBE,
>>18	beshort		17		Fujitsu VPP500,
>>18	beshort		18		SPARC32PLUS,
>>>36	belong&0xffff00	0x000100	V8+ Required,
>>>36	belong&0xffff00	0x000200	Sun UltraSPARC1 Extensions Required,
>>>36	belong&0xffff00	0x000400	HaL R1 Extensions Required,
>>>36	belong&0xffff00	0x000800	Sun UltraSPARC3 Extensions Required,
>>18	beshort		20		PowerPC or cisco 4500,
>>18	beshort		21		64-bit PowerPC or cisco 7500,
>>18	beshort		22		IBM S/390,
>>18	beshort		23		Cell SPU,
>>18	beshort		24		cisco SVIP,
>>18	beshort		25		cisco 7200,
>>18	beshort		36		NEC V800 or cisco 12000,
>>18	beshort		37		Fujitsu FR20,
>>18	beshort		38		TRW RH-32,
>>18	beshort		39		Motorola RCE,
>>18	beshort		40		ARM,
>>18	beshort		41		Alpha,
>>18	beshort		42		Renesas SH,
>>18	beshort		43		SPARC V9,
>>>48	belong&0xffff00	0x000200	Sun UltraSPARC1 Extensions Required,
>>>48	belong&0xffff00	0x000400	HaL R1 Extensions Required,
>>>48	belong&0xffff00	0x000800	Sun UltraSPARC3 Extensions Required,
>>>48	belong&0x3	0		total store ordering,
>>>48	belong&0x3	1		partial store ordering,
>>>48	belong&0x3	2		relaxed memory ordering,
>>18	beshort		44		Siemens Tricore Embedded Processor,
>>18	beshort		45		Argonaut RISC Core, Argonaut Technologies Inc.,
>>18	beshort		46		Renesas H8/300,
>>18	beshort		47		Renesas H8/300H,
>>18	beshort		48		Renesas H8S,
>>18	beshort		49		Renesas H8/500,
>>18	beshort		50		IA-64,
>>18	beshort		51		Stanford MIPS-X,
>>18	beshort		52		Motorola Coldfire,
>>18	beshort		53		Motorola M68HC12,
>>18	beshort		73		Cray NV1,
>>18	beshort		75		Digital VAX,
>>18	beshort		88		Renesas M32R,
>>18	leshort		92		OpenRISC,
>>18	leshort		0x3426		OpenRISC (obsolete),
>>18	leshort		0x8472		OpenRISC (obsolete),
>>18	beshort		94		Tensilica Xtensa,
>>18	beshort		97		NatSemi 32k,
>>18	beshort		0x18ad		AVR32 (unofficial),
>>18	beshort		0x9026		Alpha (unofficial),
>>18	beshort		0xa390		IBM S/390 (obsolete),
>>20	belong		0		invalid version
>>20	belong		1		version 1
>>36	belong		1		MathCoPro/FPU/MAU Required
# Up to now only 0, 1 and 2 are defined; I've seen a file with 0x83, it seemed
# like proper ELF, but extracting the string had bad results.
>4      byte            <0x80
>>8	string		>\0		(%s)
>8	string		\0
>>7	byte		0		(SYSV)
>>7	byte		1		(HP-UX)
>>7	byte		2		(NetBSD)
>>7	byte		3		(GNU/Linux)
>>7	byte		4		(GNU/Hurd)
>>7	byte		5		(86Open)
>>7	byte		6		(Solaris)
>>7	byte		7		(Monterey)
>>7	byte		8		(IRIX)
>>7	byte		9		(FreeBSD)
>>7	byte		10		(Tru64)
>>7	byte		11		(Novell Modesto)
>>7	byte		12		(OpenBSD)
>8      string          \2
>>7     byte            13              (OpenVMS)
>>7	byte		97		(ARM)
>>7	byte		255		(embedded)
@


