elf revision 80588
1 2#------------------------------------------------------------------------------ 3# elf: file(1) magic for ELF executables 4# 5# We have to check the byte order flag to see what byte order all the 6# other stuff in the header is in. 7# 8# MIPS R3000 may also be for MIPS R2000. 9# What're the correct byte orders for the nCUBE and the Fujitsu VPP500? 10# 11# updated by Daniel Quinlan (quinlan@yggdrasil.com) 120 string \177ELF ELF 13>4 byte 0 invalid class 14>4 byte 1 32-bit 15# only for MIPS 16>>18 beshort 8 17>>18 beshort 10 18>>>36 belong &0x20 N32 19>4 byte 2 64-bit 20>5 byte 0 invalid byte order 21>5 byte 1 LSB 22# only for MIPS R3000_BE 23>>18 leshort 8 24# only for 32-bit 25>>>4 byte 1 26>>>>36 lelong&0xf0000000 0x00000000 mips-1 27>>>>36 lelong&0xf0000000 0x10000000 mips-2 28>>>>36 lelong&0xf0000000 0x20000000 mips-3 29>>>>36 lelong&0xf0000000 0x30000000 mips-4 30>>>>36 lelong&0xf0000000 0x40000000 mips-5 31>>>>36 lelong&0xf0000000 0x50000000 mips-6 32# only for 64-bit 33>>>4 byte 2 34>>>>48 lelong&0xf0000000 0x00000000 mips-1 35>>>>48 lelong&0xf0000000 0x10000000 mips-2 36>>>>48 lelong&0xf0000000 0x20000000 mips-3 37>>>>48 lelong&0xf0000000 0x30000000 mips-4 38>>>>48 lelong&0xf0000000 0x40000000 mips-5 39>>>>48 lelong&0xf0000000 0x50000000 mips-6 40>>16 leshort 0 no file type, 41>>16 leshort 1 relocatable, 42>>16 leshort 2 executable, 43>>16 leshort 3 shared object, 44# Core handling from Peter Tobias <tobias@server.et-inf.fho-emden.de> 45# corrections by Christian 'Dr. Disk' Hechelmann <drdisk@ds9.au.s.shuttle.de> 46>>16 leshort 4 core file 47>>>(0x38+0xcc) string >\0 of '%s' 48>>>(0x38+0x10) lelong >0 (signal %d), 49>>16 leshort &0xff00 processor-specific, 50>>18 leshort 0 no machine, 51>>18 leshort 1 AT&T WE32100 - invalid byte order, 52>>18 leshort 2 SPARC - invalid byte order, 53>>18 leshort 3 Intel 80386, 54>>18 leshort 4 Motorola 68000 - invalid byte order, 55>>18 leshort 5 Motorola 88000 - invalid byte order, 56>>18 leshort 6 Intel 80486, 57>>18 leshort 7 Intel 80860, 58# "officially" big endian, but binutils bfd only emits magic #8 for MIPS. 59>>18 leshort 8 MIPS R3000_LE [bfd bug], 60>>18 leshort 9 Amdahl - invalid byte order, 61>>18 leshort 10 MIPS R3000_LE, 62>>18 leshort 11 RS6000 - invalid byte order, 63>>18 leshort 15 PA-RISC - invalid byte order, 64>>>50 leshort 0x0214 2.0 65>>>48 leshort &0x0008 (LP64), 66>>18 leshort 16 nCUBE, 67>>18 leshort 17 Fujitsu VPP500, 68>>18 leshort 18 SPARC32PLUS, 69>>18 leshort 20 PowerPC, 70>>18 leshort 36 NEC V800, 71>>18 leshort 37 Fujitsu FR20, 72>>18 leshort 38 TRW RH-32, 73>>18 leshort 39 Motorola RCE, 74>>18 leshort 40 ARM, 75>>18 leshort 41 Alpha, 76>>18 leshort 42 Hitachi SH, 77>>18 leshort 43 SPARC V9 - invalid byte order, 78>>18 leshort 44 Siemens Tricore Embedded Processor, 79>>18 leshort 45 Argonaut RISC Core, Argonaut Technologies Inc., 80>>18 leshort 46 Hitachi H8/300, 81>>18 leshort 47 Hitachi H8/300H, 82>>18 leshort 48 Hitachi H8S, 83>>18 leshort 49 Hitachi H8/500, 84>>18 leshort 50 IA-64 (Intel 64 bit architecture) 85>>18 leshort 51 Stanford MIPS-X, 86>>18 leshort 52 Motorola Coldfire, 87>>18 leshort 53 Motorola M68HC12, 88>>18 leshort 75 Digital VAX, 89>>18 leshort 0x9026 Alpha (unofficial), 90>>20 lelong 0 invalid version 91>>20 lelong 1 version 1 92>>36 lelong 1 MathCoPro/FPU/MAU Required 93>5 byte 2 MSB 94# only for MIPS R3000_BE 95>>18 beshort 8 96# only for 32-bit 97>>>4 byte 1 98>>>>36 belong&0xf0000000 0x00000000 mips-1 99>>>>36 belong&0xf0000000 0x10000000 mips-2 100>>>>36 belong&0xf0000000 0x20000000 mips-3 101>>>>36 belong&0xf0000000 0x30000000 mips-4 102>>>>36 belong&0xf0000000 0x40000000 mips-5 103>>>>36 belong&0xf0000000 0x50000000 mips-6 104# only for 64-bit 105>>>4 byte 2 106>>>>48 belong&0xf0000000 0x00000000 mips-1 107>>>>48 belong&0xf0000000 0x10000000 mips-2 108>>>>48 belong&0xf0000000 0x20000000 mips-3 109>>>>48 belong&0xf0000000 0x30000000 mips-4 110>>>>48 belong&0xf0000000 0x40000000 mips-5 111>>>>48 belong&0xf0000000 0x50000000 mips-6 112>>16 beshort 0 no file type, 113>>16 beshort 1 relocatable, 114>>16 beshort 2 executable, 115>>16 beshort 3 shared object, 116>>16 beshort 4 core file, 117>>>(0x38+0xcc) string >\0 of '%s' 118>>>(0x38+0x10) belong >0 (signal %d), 119>>16 beshort &0xff00 processor-specific, 120>>18 beshort 0 no machine, 121>>18 beshort 1 AT&T WE32100, 122>>18 beshort 2 SPARC, 123>>18 beshort 3 Intel 80386 - invalid byte order, 124>>18 beshort 4 Motorola 68000, 125>>18 beshort 5 Motorola 88000, 126>>18 beshort 6 Intel 80486 - invalid byte order, 127>>18 beshort 7 Intel 80860, 128>>18 beshort 8 MIPS R3000_BE, 129>>18 beshort 9 Amdahl, 130>>18 beshort 10 MIPS R3000_LE - invalid byte order, 131>>18 beshort 11 RS6000, 132>>18 beshort 15 PA-RISC 133>>>50 beshort 0x0214 2.0 134>>>48 beshort &0x0008 (LP64) 135>>18 beshort 16 nCUBE, 136>>18 beshort 17 Fujitsu VPP500, 137>>18 beshort 18 SPARC32PLUS, 138>>>36 belong&0xffff00 &0x000100 V8+ Required, 139>>>36 belong&0xffff00 &0x000200 Sun UltraSPARC1 Extensions Required, 140>>>36 belong&0xffff00 &0x000400 HaL R1 Extensions Required, 141>>>36 belong&0xffff00 &0x000800 Sun UltraSPARC3 Extensions Required, 142>>18 beshort 20 PowerPC or cisco 4500, 143>>18 beshort 21 cisco 7500, 144>>18 beshort 24 cisco SVIP, 145>>18 beshort 25 cisco 7200, 146>>18 beshort 36 NEC V800 or cisco 12000, 147>>18 beshort 37 Fujitsu FR20, 148>>18 beshort 38 TRW RH-32, 149>>18 beshort 39 Motorola RCE, 150>>18 beshort 40 ARM, 151>>18 beshort 41 Alpha, 152>>18 beshort 42 Hitachi SH, 153>>18 beshort 43 SPARC V9, 154>>18 beshort 44 Siemens Tricore Embedded Processor, 155>>18 beshort 45 Argonaut RISC Core, Argonaut Technologies Inc., 156>>18 beshort 46 Hitachi H8/300, 157>>18 beshort 47 Hitachi H8/300H, 158>>18 beshort 48 Hitachi H8S, 159>>18 beshort 49 Hitachi H8/500, 160>>18 beshort 50 Intel Merced Processor, 161>>18 beshort 51 Stanford MIPS-X, 162>>18 beshort 52 Motorola Coldfire, 163>>18 beshort 53 Motorola M68HC12, 164>>18 beshort 73 Cray NV1, 165>>18 beshort 75 Digital VAX, 166>>18 beshort 0x9026 Alpha (unofficial), 167>>20 belong 0 invalid version 168>>20 belong 1 version 1 169>>36 belong 1 MathCoPro/FPU/MAU Required 170>8 string >\0 (%s) 171>8 string \0 172>>7 byte 0 (SYSV) 173>>7 byte 1 (HP-UX) 174>>7 byte 2 (NetBSD) 175>>7 byte 3 (GNU/Linux) 176>>7 byte 4 (GNU/Hurd) 177>>7 byte 5 (86Open) 178>>7 byte 6 (Solaris) 179>>7 byte 7 (Monterey) 180>>7 byte 8 (IRIX) 181>>7 byte 9 (FreeBSD) 182>>7 byte 10 (Tru64) 183>>7 byte 11 (Novell Modesto) 184>>7 byte 12 (OpenBSD) 185>>7 byte 97 (ARM) 186>>7 byte 255 (embedded) 187