summaryrefslogtreecommitdiff
path: root/usr/src/cmd/file/file.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/cmd/file/file.c')
-rw-r--r--usr/src/cmd/file/file.c277
1 files changed, 181 insertions, 96 deletions
diff --git a/usr/src/cmd/file/file.c b/usr/src/cmd/file/file.c
index 6c7989d735..64379f3919 100644
--- a/usr/src/cmd/file/file.c
+++ b/usr/src/cmd/file/file.c
@@ -28,6 +28,7 @@
/*
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
+ * Copyright (c) 2018, Joyent, Inc.
*/
#define _LARGEFILE64_SOURCE
@@ -980,104 +981,188 @@ print_elf_machine(int machine)
* in /usr/include/sys/elf.h.
*/
static const char *mach_str[EM_NUM] = {
- "unknown machine", /* 0 - EM_NONE */
- "WE32100", /* 1 - EM_M32 */
- "SPARC", /* 2 - EM_SPARC */
- "80386", /* 3 - EM_386 */
- "M68000", /* 4 - EM_68K */
- "M88000", /* 5 - EM_88K */
- "80486", /* 6 - EM_486 */
- "i860", /* 7 - EM_860 */
- "MIPS RS3000 Big-Endian", /* 8 - EM_MIPS */
- "S/370", /* 9 - EM_S370 */
- "MIPS RS3000 Little-Endian", /* 10 - EM_MIPS_RS3_LE */
- "MIPS RS6000", /* 11 - EM_RS6000 */
- NULL, /* 12 - EM_UNKNOWN12 */
- NULL, /* 13 - EM_UNKNOWN13 */
- NULL, /* 14 - EM_UNKNOWN14 */
- "PA-RISC", /* 15 - EM_PA_RISC */
- "nCUBE", /* 16 - EM_nCUBE */
- "VPP500", /* 17 - EM_VPP500 */
- "SPARC32PLUS", /* 18 - EM_SPARC32PLUS */
- "i960", /* 19 - EM_960 */
- "PowerPC", /* 20 - EM_PPC */
- "PowerPC64", /* 21 - EM_PPC64 */
- "S/390", /* 22 - EM_S390 */
- NULL, /* 23 - EM_UNKNOWN23 */
- NULL, /* 24 - EM_UNKNOWN24 */
- NULL, /* 25 - EM_UNKNOWN25 */
- NULL, /* 26 - EM_UNKNOWN26 */
- NULL, /* 27 - EM_UNKNOWN27 */
- NULL, /* 28 - EM_UNKNOWN28 */
- NULL, /* 29 - EM_UNKNOWN29 */
- NULL, /* 30 - EM_UNKNOWN30 */
- NULL, /* 31 - EM_UNKNOWN31 */
- NULL, /* 32 - EM_UNKNOWN32 */
- NULL, /* 33 - EM_UNKNOWN33 */
- NULL, /* 34 - EM_UNKNOWN34 */
- NULL, /* 35 - EM_UNKNOWN35 */
- "V800", /* 36 - EM_V800 */
- "FR20", /* 37 - EM_FR20 */
- "RH32", /* 38 - EM_RH32 */
- "RCE", /* 39 - EM_RCE */
- "ARM", /* 40 - EM_ARM */
- "Alpha", /* 41 - EM_ALPHA */
- "S/390", /* 42 - EM_SH */
- "SPARCV9", /* 43 - EM_SPARCV9 */
- "Tricore", /* 44 - EM_TRICORE */
- "ARC", /* 45 - EM_ARC */
- "H8/300", /* 46 - EM_H8_300 */
- "H8/300H", /* 47 - EM_H8_300H */
- "H8S", /* 48 - EM_H8S */
- "H8/500", /* 49 - EM_H8_500 */
- "IA64", /* 50 - EM_IA_64 */
- "MIPS-X", /* 51 - EM_MIPS_X */
- "Coldfire", /* 52 - EM_COLDFIRE */
- "M68HC12", /* 53 - EM_68HC12 */
- "MMA", /* 54 - EM_MMA */
- "PCP", /* 55 - EM_PCP */
- "nCPU", /* 56 - EM_NCPU */
- "NDR1", /* 57 - EM_NDR1 */
- "Starcore", /* 58 - EM_STARCORE */
- "ME16", /* 59 - EM_ME16 */
- "ST100", /* 60 - EM_ST100 */
- "TINYJ", /* 61 - EM_TINYJ */
- "AMD64", /* 62 - EM_AMD64 */
- "PDSP", /* 63 - EM_PDSP */
- NULL, /* 64 - EM_UNKNOWN64 */
- NULL, /* 65 - EM_UNKNOWN65 */
- "FX66", /* 66 - EM_FX66 */
- "ST9 PLUS", /* 67 - EM_ST9PLUS */
- "ST7", /* 68 - EM_ST7 */
- "68HC16", /* 69 - EM_68HC16 */
- "68HC11", /* 70 - EM_68HC11 */
- "68H08", /* 71 - EM_68HC08 */
- "68HC05", /* 72 - EM_68HC05 */
- "SVX", /* 73 - EM_SVX */
- "ST19", /* 74 - EM_ST19 */
- "VAX", /* 75 - EM_VAX */
- "CRIS", /* 76 - EM_CRIS */
- "Javelin", /* 77 - EM_JAVELIN */
- "Firepath", /* 78 - EM_FIREPATH */
- "ZSP", /* 79 - EM_ZSP */
- "MMIX", /* 80 - EM_MMIX */
- "HUANY", /* 81 - EM_HUANY */
- "Prism", /* 82 - EM_PRISM */
- "AVR", /* 83 - EM_AVR */
- "FR30", /* 84 - EM_FR30 */
- "D10V", /* 85 - EM_D10V */
- "D30V", /* 86 - EM_D30V */
- "V850", /* 87 - EM_V850 */
- "M32R", /* 88 - EM_M32R */
- "MN10300", /* 89 - EM_MN10300 */
- "MN10200", /* 90 - EM_MN10200 */
- "picoJava", /* 91 - EM_PJ */
- "OpenRISC", /* 92 - EM_OPENRISC */
- "Tangent-A5", /* 93 - EM_ARC_A5 */
- "Xtensa" /* 94 - EM_XTENSA */
+ [EM_NONE] = "unknown machine",
+ [EM_M32] = "WE32100",
+ [EM_SPARC] = "SPARC",
+ [EM_386] = "80386",
+ [EM_68K] = "M68000",
+ [EM_88K] = "M88000",
+ [EM_486] = "80486",
+ [EM_860] = "i860",
+ [EM_MIPS] = "MIPS RS3000 Big-Endian",
+ [EM_S370] = "S/370",
+ [EM_MIPS_RS3_LE] = "MIPS RS3000 Little-Endian",
+ [EM_RS6000] = "MIPS RS6000",
+ [EM_PA_RISC] = "PA-RISC",
+ [EM_nCUBE] = "nCUBE",
+ [EM_VPP500] = "VPP500",
+ [EM_SPARC32PLUS] = "SPARC32PLUS",
+ [EM_960] = "i960",
+ [EM_PPC] = "PowerPC",
+ [EM_PPC64] = "PowerPC64",
+ [EM_S390] = "S/390",
+ [EM_V800] = "V800",
+ [EM_FR20] = "FR20",
+ [EM_RH32] = "RH32",
+ [EM_RCE] = "RCE",
+ [EM_ARM] = "ARM",
+ [EM_ALPHA] = "Alpha",
+ [EM_SH] = "S/390",
+ [EM_SPARCV9] = "SPARCV9",
+ [EM_TRICORE] = "Tricore",
+ [EM_ARC] = "ARC",
+ [EM_H8_300] = "H8/300",
+ [EM_H8_300H] = "H8/300H",
+ [EM_H8S] = "H8S",
+ [EM_H8_500] = "H8/500",
+ [EM_IA_64] = "IA64",
+ [EM_MIPS_X] = "MIPS-X",
+ [EM_COLDFIRE] = "Coldfire",
+ [EM_68HC12] = "M68HC12",
+ [EM_MMA] = "MMA",
+ [EM_PCP] = "PCP",
+ [EM_NCPU] = "nCPU",
+ [EM_NDR1] = "NDR1",
+ [EM_STARCORE] = "Starcore",
+ [EM_ME16] = "ME16",
+ [EM_ST100] = "ST100",
+ [EM_TINYJ] = "TINYJ",
+ [EM_AMD64] = "AMD64",
+ [EM_PDSP] = "PDSP",
+ [EM_FX66] = "FX66",
+ [EM_ST9PLUS] = "ST9 PLUS",
+ [EM_ST7] = "ST7",
+ [EM_68HC16] = "68HC16",
+ [EM_68HC11] = "68HC11",
+ [EM_68HC08] = "68H08",
+ [EM_68HC05] = "68HC05",
+ [EM_SVX] = "SVX",
+ [EM_ST19] = "ST19",
+ [EM_VAX] = "VAX",
+ [EM_CRIS] = "CRIS",
+ [EM_JAVELIN] = "Javelin",
+ [EM_FIREPATH] = "Firepath",
+ [EM_ZSP] = "ZSP",
+ [EM_MMIX] = "MMIX",
+ [EM_HUANY] = "HUANY",
+ [EM_PRISM] = "Prism",
+ [EM_AVR] = "AVR",
+ [EM_FR30] = "FR30",
+ [EM_D10V] = "D10V",
+ [EM_D30V] = "D30V",
+ [EM_V850] = "V850",
+ [EM_M32R] = "M32R",
+ [EM_MN10300] = "MN10300",
+ [EM_MN10200] = "MN10200",
+ [EM_PJ] = "picoJava",
+ [EM_OPENRISC] = "OpenRISC",
+ [EM_ARC_A5] = "Tangent-A5",
+ [EM_XTENSA] = "Xtensa",
+
+ [EM_VIDEOCORE] = "Videocore",
+ [EM_TMM_GPP] = "TMM_GPP",
+ [EM_NS32K] = "NS32K",
+ [EM_TPC] = "TPC",
+ [EM_SNP1K] = "SNP1K",
+ [EM_ST200] = "ST200",
+ [EM_IP2K] = "IP2K",
+ [EM_MAX] = "MAX",
+ [EM_CR] = "CompactRISC",
+ [EM_F2MC16] = "F2MC16",
+ [EM_MSP430] = "MSP430",
+ [EM_BLACKFIN] = "Blackfin",
+ [EM_SE_C33] = "S1C33",
+ [EM_SEP] = "SEP",
+ [EM_ARCA] = "Arca",
+ [EM_UNICORE] = "Unicore",
+ [EM_EXCESS] = "eXcess",
+ [EM_DXP] = "DXP",
+ [EM_ALTERA_NIOS2] = "Nios 2",
+ [EM_CRX] = "CompactRISC CRX",
+ [EM_XGATE] = "XGATE",
+ [EM_C166] = "C16x/XC16x",
+ [EM_M16C] = "M16C",
+ [EM_DSPIC30F] = "dsPIC30F",
+ [EM_CE] = "CE RISC",
+ [EM_M32C] = "M32C",
+ [EM_TSK3000] = "TSK3000",
+ [EM_RS08] = "RS08",
+ [EM_SHARC] = "SHARC",
+ [EM_ECOG2] = "eCOG2",
+ [EM_SCORE7] = "SCORE7",
+ [EM_DSP24] = "DSP24",
+ [EM_VIDEOCORE3] = "Videocore III",
+ [EM_LATTICEMICO32] = "LATTICEMICO32",
+ [EM_SE_C17] = "SE_C17",
+ [EM_TI_C6000] = "TMS320C6000",
+ [EM_TI_C2000] = "TMS320C2000",
+ [EM_TI_C5500] = "TMS320C55x",
+ [EM_TI_ARP32] = "ASRP32",
+ [EM_TI_PRU] = "TI_PRU",
+ [EM_MMDSP_PLUS] = "MMDSP_PLUS",
+ [EM_CYPRESS_M8C] = "M8C",
+ [EM_R32C] = "R32C",
+ [EM_TRIMEDIA] = "TriMedia",
+ [EM_QDSP6] = "QDSP6",
+ [EM_8051] = "8051",
+ [EM_STXP7X] = "STxP7x",
+ [EM_NDS32] = "NDS32",
+ [EM_ECOG1] = "eCOG1X",
+ [EM_MAXQ30] = "MAXQ30",
+ [EM_XIMO16] = "XIMO16",
+ [EM_MANIK] = "M2000",
+ [EM_CRAYNV2] = "CRAYNV2",
+ [EM_RX] = "RX",
+ [EM_METAG] = "METAG",
+ [EM_MCST_ELBRUS] = "Elbrus",
+ [EM_ECOG16] = "eCOG16",
+ [EM_CR16] = "CR16",
+ [EM_ETPU] = "ETPU",
+ [EM_SLE9X] = "SLE9X",
+ [EM_L10M] = "L10M",
+ [EM_K10M] = "K10M",
+
+ [EM_AARCH64] = "aarch64",
+
+ [EM_AVR32] = "AVR32",
+ [EM_STM8] = "STM8",
+ [EM_TILE64] = "TILE64",
+ [EM_TILEPRO] = "TILEPRO",
+ [EM_MICROBLAZE] = "MicroBlaze",
+ [EM_CUDA] = "CUDA",
+ [EM_TILEGX] = "TILE-Gx",
+ [EM_CLOUDSHIELD] = "CloudShield",
+ [EM_COREA_1ST] = "CORE-A 1st",
+ [EM_COREA_2ND] = "CORE-A 2nd",
+ [EM_ARC_COMPACT2] = "ARCompact V2",
+ [EM_OPEN8] = "Open8",
+ [EM_RL78] = "RL78",
+ [EM_VIDEOCORE5] = "VideoCore V",
+ [EM_78KOR] = "78KOR",
+ [EM_56800EX] = "56800EX",
+ [EM_BA1] = "BA1",
+ [EM_BA2] = "BA2",
+ [EM_XCORE] = "xCORE",
+ [EM_MCHP_PIC] = "MCHP_PIC",
+ [EM_KM32] = "KM32",
+ [EM_KMX32] = "KMX32",
+ [EM_KMX16] = "KMX16",
+ [EM_KMX8] = "KMX8",
+ [EM_KVARC] = "KVARC",
+ [EM_CDP] = "CDP",
+ [EM_COGE] = "COGE",
+ [EM_COOL] = "CoolEngine",
+ [EM_NORC] = "NORC",
+ [EM_CSR_KALIMBA] = "Kalimba",
+ [EM_Z80] = "Zilog Z80",
+ [EM_VISIUM] = "VISIUMcore",
+ [EM_FT32] = "FT32",
+ [EM_MOXIE] = "Moxie",
+ [EM_AMDGPU] = "AMD GPU",
+ [EM_RISCV] = "RISC-V"
};
/* If new machine is added, refuse to compile until we're updated */
-#if EM_NUM != 95
+#if EM_NUM != 244
#error "Number of known ELF machine constants has changed"
#endif