#
# Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License, Version 1.0 only
# (the "License").  You may not use this file except in compliance
# with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
# ident	"%Z%%M%	%I%	%E% SMI"

@ _START_

# Message file for cmd/sgs/elfdump.

@ MSG_ID_ELFDUMP

# Usage Messages

@ MSG_USAGE_BRIEF	"usage: %s [-cCdegGhHiklmnprsuvy] [-N name] \
			 [-W file] file(s)\n"
@ MSG_USAGE_DETAIL1	"\t[-c]\t\tdump section header information\n"
@ MSG_USAGE_DETAIL2	"\t[-C]\t\tdemangle C++ symbol names\n"
@ MSG_USAGE_DETAIL3	"\t[-d]\t\tdump the contents of the .dynamic section\n"
@ MSG_USAGE_DETAIL4	"\t[-e]\t\tdump the elf header\n"
@ MSG_USAGE_DETAIL5	"\t[-g]\t\tdump the contents of the .group sections\n"
@ MSG_USAGE_DETAIL6	"\t[-G]\t\tdump the contents of the .got section\n"
@ MSG_USAGE_DETAIL7	"\t[-h]\t\tdump the contents of the .hash section\n"
@ MSG_USAGE_DETAIL8	"\t[-H]\t\tdump the contents of the .SUNW_hwcap \
			 section\n"
@ MSG_USAGE_DETAIL9	"\t[-i]\t\tdump the contents of the .interp section\n"
@ MSG_USAGE_DETAIL9_1	"\t[-l]\t\tdump with no truncated section names\n"
@ MSG_USAGE_DETAIL10	"\t[-k]\t\tcalculate elf checksum\n"
@ MSG_USAGE_DETAIL11	"\t[-m]\t\tdump the contents of the .SUNW_move \
			 section\n"
@ MSG_USAGE_DETAIL12	"\t[-n]\t\tdump the contents of the .note section\n"
@ MSG_USAGE_DETAIL13	"\t[-N name]\tqualify an option with a `name'\n"
@ MSG_USAGE_DETAIL14	"\t[-p]\t\tdump the program headers\n"
@ MSG_USAGE_DETAIL15	"\t[-r]\t\tdump the contents of the relocation \
			 sections\n"
@ MSG_USAGE_DETAIL16	"\t[-s]\t\tdump the contents of the symbol table \
			 sections\n"
@ MSG_USAGE_DETAIL17	"\t[-u]\t\tdump the contents of a frame unwind \
			 section\n"
@ MSG_USAGE_DETAIL18	"\t[-v]\t\tdump the contents of the version sections\n"
@ MSG_USAGE_DETAIL19	"\t[-w file]\twrite the contents of specified section \
			 to `file'\n"
@ MSG_USAGE_DETAIL20	"\t[-y]\t\tdump the contents of the .SUNW_syminfo \
			 section\n"

@ MSG_USAGE_DEMANGLE	"usage: -C option is only meaningful \
			 with other options that display symbol names\n"
@ MSG_USAGE_LONGNAME	"usage: -l option is only meaningful \
			 with other options that display section names\n"

# Errors

@ MSG_ERR_BADFILE	"%s: invalid file type\n"
@ MSG_ERR_BADREL1       "%s: bad relocation entry: %s: relocation requires symbol\n"
@ MSG_ERR_SHSTRNULL	"%s: zero size section header string table (shstrtab)\n"
@ MSG_ERR_FAILURE	"%s: %s failed: %s\n"
@ MSG_ERR_BADSHNAME	"%s: %s: invalid sh_name: %lld\n"
@ MSG_ERR_BADSHLINK	"%s: %s: invalid sh_link: %lld\n"
@ MSG_ERR_BADSHINFO	"%s: %s: invalid sh_info: %lld\n"
@ MSG_ERR_BADSHTYPE	"%s: %s: invalid sh_type: %lld\n"
@ MSG_ERR_BADALIGN	"%s: %s: bad sh_offset alignment\n"
@ MSG_ERR_SIBADCOUNT	"%s: %s: bad syminfo entry: %d\n"
@ MSG_ERR_BADCAP	"%s: %s: bad capabilities entry: %s\n"
@ MSG_ERR_BADSYM	"%s: %s: bad symbol entry: %s\n"
@ MSG_ERR_BADSYM2	"%s: %s: bad symbol entry: %s: must be SHN_COMMON or \
			 defined in SHT_NOBITS section\n"
@ MSG_ERR_BADSYM3	"%s: %s: bad symbol entry: %s: must be defined in \
			 a SHF_TLS section\n"
@ MSG_ERR_BADSYM4	"%s: %s: bad symbol entry: %s: must be defined in \
			 a non-SHF_TLS section\n"
@ MSG_ERR_BADSYM5	"%s: %s: bad symbol entry: %s: invalid shndx: %d\n"
@ MSG_ERR_BADSYM6	"%s: %s: bad symbol entry: %s: section[%d] size: %lld: \
			 is smaller than symbol size: %lld\n"
@ MSG_ERR_BADMOVE	"%s: %s: bad move table entry: %s\n"
@ MSG_ERR_BADREL	"%s: %s: bad relocation table entry: %s\n"
@ MSG_ERR_RELBADSYMNDX	"%s: bad symbol reference from relocation entry: %s\n"
@ MSG_ERR_MVBADSYMNDX	"%s: bad symbol reference from move entry: %s\n"
@ MSG_ERR_HSBADSYMNDX	"%s: bad symbol reference from hash entry: %s\n"
@ MSG_ERR_GRBADSYMNDX	"%s: bad symbol reference from group entry: %s\n"
@ MSG_ERR_BADSYMXINDEX1	"%s: %s: index[%d]: invalid SHN_XINDEX reference: \
			 SHT_SYMTAB_SHNDX section truncated: no entry for this \
			 symbol\n"
@ MSG_ERR_BADSYMXINDEX2	"%s: %s: index[%d]: invalid SHN_XINDEX reference: \
			 bad SHT_SYMTAB_SHNDX entry: invalid shndx: 0x%x\n"
@ MSG_ERR_BADSYMXINDEX3	"%s: %s: index[%d]: invalid SHN_XINDEX reference: \
			 SHT_SYMTAB_SHNDX section not found\n"
@ MSG_ERR_BADSTOFF	"%s: %s: index[%d]: bad %s offset: 0x%llx: max 0x%llx\n"
@ MSG_ERR_BADDYN	"%s: %s: bad index into .dynamic: %d\n"
@ MSG_ERR_BADSZ		"%s: %s: zero size or entry size information\n"
@ MSG_ERR_BADMINFO	"%s: %s: invalid m_info: 0x%llx\n"
@ MSG_ERR_BADHASH	"%s: %s: bad hash entry: symbol %s: exists in bucket \
			 %d, should be bucket %d\n"

@ MSG_WARN_INVINTERP1	"%s: PT_INTERP header has no associated section\n"
@ MSG_WARN_INVINTERP2	"%s: interp section: %s: and PT_INTERP program \
			 header have conflicting size or offsets\n"
@ MSG_WARN_INVCAP1	"%s: PT_SUNWCAP header has no associated section\n"
@ MSG_WARN_INVCAP2	"%s: capabilities section: %s: requires PT_CAP program \
			 header\n"
@ MSG_WARN_INVCAP3	"%s: capabilities section: %s: and PT_CAP program \
			 header have conflicting size or offsets\n"

# Elf Output Messages

@ MSG_ELF_SHDR		"Section Header[%d]:  sh_name: %s"
@ MSG_ELF_PHDR		"Program Header[%d]:"

@ MSG_ELF_SCN_CAP	"Hardware/Software Capabilities Section:  %s"
@ MSG_ELF_SCN_INTERP	"Interpreter Section:  %s"
@ MSG_ELF_SCN_VERDEF	"Version Definition Section:  %s"
@ MSG_ELF_SCN_VERNEED	"Version Needed Section:  %s"
@ MSG_ELF_SCN_SYMTAB	"Symbol Table Section:  %s"
@ MSG_ELF_SCN_RELOC	"Relocation Section:  %s"
@ MSG_ELF_SCN_UNWIND	"Unwind Section: %s"
@ MSG_ELF_SCN_DYNAMIC	"Dynamic Section:  %s"
@ MSG_ELF_SCN_NOTE	"Note Section:  %s"
@ MSG_ELF_SCN_HASH	"Hash Section:  %s"
@ MSG_ELF_SCN_SYMINFO	"Syminfo Section:  %s"
@ MSG_ELF_SCN_GOT	"Global Offset Table Section:  %s  (%u entries)"

@ MSG_ELF_RELOC_RELA	"\ttype\t\t              offset     addend  section        \
			 with respect to"
@ MSG_ELF_RELOC_REL	"\ttype\t\t              offset             section        \
			 with respect to"
@ MSG_ELF_L_RELOC_RELA	"\ttype\t\t              offset     addend  section/symbol"
@ MSG_ELF_L_RELOC_REL	"\ttype\t\t              offset             section/symbol"
@ MSG_ELF_HASH_BKTS1	"%10.10s  buckets contain %8d symbols"
@ MSG_ELF_HASH_BKTS2	"%10.10s  buckets         %8d symbols (globals)"
@ MSG_ELF_HASH_INFO	"    bucket    symndx    name"
@ MSG_HASH_OVERFLW	"warning: too many symbols to count, bucket=%d count=%d"
@ MSG_ELF_ERR_SHDR	"\tunable to obtain section header: shstrtab[%lld]\n"
@ MSG_ELF_ERR_DATA	"\tunable to obtain section data: shstrtab[%lld]\n"
@ MSG_ELF_ERR_SCN	"\tunable to obtain section header: section[%d]\n"
@ MSG_ELF_ERR_SCNDATA	"\tunable to obtain section data: section[%d]\n"
@ MSG_ARCHIVE_SYMTAB	"\nSymbol Table: (archive)"
@ MSG_ARCHIVE_FIELDS	"     index    offset    member name and symbol"
@ MSG_GOT_MULTIPLE	"%s: multiple relocations against \
			 the same GOT entry ndx: %d addr: 0x%llx\n"



# Miscellaneous clutter

@ MSG_STR_INDEX		"index"
@ MSG_STR_NAME		"name"
@ MSG_STR_NULL		"(null)"
@ MSG_STR_DEPRECATED	"(deprecated value)"
@ MSG_STR_UNKNOWN	"<unknown>"
@ MSG_STR_SECTION	"%.12s (section)"
@ MSG_STR_L_SECTION	"%s (section)"
@ MSG_STR_CHECKSUM	"elf checksum: 0x%lx"

@ MSG_FMT_SCNNDX	"section[%d]"

@ MSG_ERR_MALLOC	"%s: malloc: %s\n"
@ MSG_ERR_OPEN		"%s: open: %s\n"

#
# For Elf{32,64}_Move section
#
@ MSG_MV_TITLE		"Move Section: %s\n\
			 \toffset\tndx\tsize\trepeat\tstride\tvalue\twith \
			 respect to"
@ MSG_MV_ENTRY		"\t0x%llx\t0x%llx\t%d\t%d\t%d\t0x%llx\t%s"


#
# SHT_GROUP messages
#
@ MSG_GRP_NOTSYMTAB	"%s: %s: sh_link[%lld] does not point to .symtab\n"
@ MSG_GRP_BADSYMNDX	"%s: %s: sh_info[%lld] has invalid symbol index\n"
@ MSG_GRP_BADENTSZ	"%s: %s: has invalid sh_entsize: %lld\n"
@ MSG_GRP_LINE1		"\nGroup Section: %s"
@ MSG_GRP_LINE2		"\t[ndx]  Flags/Section		Signature Symbol"
@ MSG_GRP_LINE3		"\t  [0]   %-24s %s"
@ MSG_GRP_INVALSCN	"<invalid section>"

#
# SHT_NOTE messages
#
@ MSG_NOTE_BADDATASIZE	"%s: %s: note header exceeds section size. \
			 offset: 0x%x\n"
@ MSG_NOTE_BADNMSIZE	"%s: %s: note name value exceeds section size. \
			 offset: 0x%x namesize: 0x%x\n"
@ MSG_NOTE_BADDESIZE	"%s: %s: note data size exceeds section size. \
			 offset: 0x%x datasize: 0x%x\n"


@ _END_

# The following strings represent reserved words, files, pathnames and symbols.
# Reference to this strings is via the MSG_ORIG() macro, and thus no message
# translation is required.


@ MSG_GRP_COMDAT	" COMDAT"
@ MSG_GRP_FMT1		" 0x%x"
@ MSG_GRP_FMT2		"%13.13s   %s[%d]\n"
@ MSG_GRP_CLOSBRKT	" ]"

@ MSG_ELF_GOT		".got"

@ MSG_ELF_GETEHDR	"elf_getehdr"
@ MSG_ELF_GETPHDR	"elf_getphdr"
@ MSG_ELF_GETSHDR	"elf_getshdr"
@ MSG_ELF_GETSCN	"elf_getscn"
@ MSG_ELF_GETDATA	"elf_getdata"
@ MSG_ELF_GETARHDR	"elf_getarhdr"
@ MSG_ELF_GETARSYM	"elf_getarsym"
@ MSG_ELF_RAND		"elf_rand"
@ MSG_ELF_BEGIN		"elf_begin"
@ MSG_ELF_GETSHNUM	"elf_getshnum"
@ MSG_ELF_GETSHSTRNDX	"elf_getshstrndx"
@ MSG_ELF_ARSYM		"ARSYM"

@ MSG_GOT_SYM		"_GLOBAL_OFFSET_TABLE_"

@ MSG_STR_OPTIONS	"CcdeGgHhiklmN:nprsuvw:y"

@ MSG_STR_EMPTY		""
@ MSG_STR_NL		"\n"

@ MSG_FMT_INDENT	"	%s"
@ MSG_FMT_INDEX		" [%lld]"
@ MSG_FMT_INDEX2	"[%lld]"
@ MSG_FMT_INTEGER	" %d"
@ MSG_FMT_HASH_INFO	"%10.10s  %-10s  %s"
@ MSG_FMT_ARSYM1	"%10.10s  0x%8.8x  (%s):%s"
@ MSG_FMT_ARSYM2	"%10.10s  0x%8.8x"
@ MSG_FMT_ARNAME	"%s(%s)"
@ MSG_FMT_NLSTR		"\n%s:"
@ MSG_FMT_NLSTRNL	"\n%s:\n"

@ MSG_SUNW_OST_SGS	"SUNW_OST_SGS"

# Unwind info
@ MSG_SCN_FRM		".eh_frame"
@ MSG_SCN_FRMHDR	".eh_frame_hdr"
@ MSG_UNW_FRMHDR	"Frame Header:"
@ MSG_UNW_FRMVERS	"  Version: %d"
@ MSG_UNW_FRPTRENC	"  FramePtrEnc: %-16s FramePtr: 0x%llx"
@ MSG_UNW_FDCNENC	"  FdeCntEnc:   %-16s  FdeCnt: %lld"
@ MSG_UNW_TABENC	"  TableEnc:    %-16s"
@ MSG_UNW_BINSRTAB1	"  Binary Search Table:"
@ MSG_UNW_BINSRTAB2	"     InitialLoc         FdeLoc"
@ MSG_UNW_BINSRTABENT	"    0x%012llx     0x%012llx"
@ MSG_UNW_CIE		"CIE: [0x%08llx]"
@ MSG_UNW_CIELNGTH	" length: 0x%02x cieid: %d"
@ MSG_UNW_CIEVERS	" version: %d  augstring: `%s'"
@ MSG_UNW_CIECALGN	" codealign: 0x%llx  dataalign: %lld  \
			  retaddr: %d"
@ MSG_UNW_CIEAUXVAL	" Auxillary vals:"
@ MSG_UNW_CIEAUXSIZE	"   size: %d"
@ MSG_UNW_CIEAUXPERS	"   pers: 0x%02x %s 0x%08llx"
@ MSG_UNW_CIEAUXCENC	"   cenc: 0x%02x %s"
@ MSG_UNW_CIEAUXLSDA	"   lsda: 0x%02x %s"
@ MSG_UNW_CIEAUXUNEC	"   Unexpected aug val: %c"
@ MSG_UNW_CIECFI	" CallFrameInstructions:"
@ MSG_UNW_CIECFI1	"\n    "
@ MSG_UNW_CIECFI2	"0x%02x "

@ MSG_UNW_FDE		" FDE: [0x%08llx]"
@ MSG_UNW_FDELNGTH	"    length: 0x%02x  cieptr: 0x%02x"
@ MSG_UNW_FDEINITLOC	"    initloc: 0x%08llx  addrrange: 0x%04llx"
@ MSG_UNW_FDEAUXVAL	"   Auxillary vals:"
@ MSG_UNW_FDEAUXSIZE	"      size: 0x%llx"
@ MSG_UNW_FDEAUXLSDA	"    lsda: 0x%llx"
@ MSG_UNW_FDECFI	"    CallFrameInstructions:"
@ MSG_UNW_FDECFI1	"\n      "
@ MSG_UNW_FDECFI2	"0x%02x "

# Note messages

@ MSG_NOTE_TYPE		"    type   %#x"
@ MSG_NOTE_NAMESZ	"    namesz %#x:"
@ MSG_NOTE_DESCSZ	"    descsz %#x:"
@ MSG_NOTE_DESC		"      desc[%d]\t%s"
@ MSG_NOTE_TOK		"%2.2x "