1#
2# CDDL HEADER START
3#
4# The contents of this file are subject to the terms of the
5# Common Development and Distribution License (the "License").
6# You may not use this file except in compliance with the License.
7#
8# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9# or http://www.opensolaris.org/os/licensing.
10# See the License for the specific language governing permissions
11# and limitations under the License.
12#
13# When distributing Covered Code, include this CDDL HEADER in each
14# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15# If applicable, add the following below this CDDL HEADER, with the
16# fields enclosed by brackets "[]" replaced with your own identifying
17# information: Portions Copyright [yyyy] [name of copyright owner]
18#
19# CDDL HEADER END
20#
21
22#
23# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
24# Use is subject to license terms.
25#
26
27@ _START_
28
29# Message file for cmd/sgs/elfedit.
30
31@ MSG_ID_ELFEDIT
32
33
34# Usage Messages
35
36@ MSG_USAGE_BRIEF	"usage: elfedit [-adrw] [-e cmd] [-L modpath] \
37			 [-o style] [file] [outfile]\n"
38@ MSG_USAGE_DETAIL1	"\t[-a]          Autoprint (show edit results)\n"
39@ MSG_USAGE_DETAIL2	"\t[-d]          Issue messages describing internal \
40			 operations\n"
41@ MSG_USAGE_DETAIL3	"\t[-e cmd]      edit command\n"
42@ MSG_USAGE_DETAIL4	"\t[-L modpath]  Set module path\n"
43@ MSG_USAGE_DETAIL5	"\t[-o ostyle]   Output style (default|simple|num)\n"
44@ MSG_USAGE_DETAIL6	"\t[-r]          Readonly session (outfile not \
45			 allowed)\n"
46@ MSG_USAGE_DETAIL_LAST	"\n\tExtensive help for edit commands is available.\n\
47			 \tEnter 'help' at the elfedit prompt.\n"
48@ MSG_USAGE_CMD		"usage: %s\n"
49
50
51# sys:set option names
52
53@ MSG_SYSSET_A		"autoprint flag"
54@ MSG_SYSSET_D		"debug flag"
55
56
57# Names of things we allocate dynamically
58
59@ MSG_ALLOC_OBJSTATE	"object state"
60@ MSG_ALLOC_SYMTABOS	"symbol table information buffer"
61@ MSG_ALLOC_MODDEF	"module definition"
62@ MSG_ALLOC_UCMD	"user command state"
63@ MSG_ALLOC_UCMDSTR	"user command string buffer"
64@ MSG_ALLOC_TOKBUF	"user command token buffer"
65@ MSG_ALLOC_BATCHLST	"list of -e commands"
66@ MSG_ALLOC_EXPATH	"expanded module search path"
67@ MSG_ALLOC_PATHARR	"search path array"
68@ MSG_ALLOC_HELPITEM	"help state"
69@ MSG_ALLOC_SECMSGPRE	"section message prefix string"
70
71# Format strings
72
73@ MSG_FMT_BUILTIN	"<built in>"
74@ MSG_FMT_UNKNOWN	"<unknown>"
75
76# Debug messages
77
78@ MSG_DEBUG_ADDDYNFLG	"[%d: %s][%d]: Set DF_1_EDITED flag\n"
79@ MSG_DEBUG_SEEDYNFLG	"[%d: %s][%d]: Previously edited file \
80			 (DF_1_EDITED flag is set) \n"
81@ MSG_DEBUG_CMDALIAS	"Command %s:%s is an alias for %s:%s\n"
82@ MSG_DEBUG_MODLOAD	"load module: %s: %s\n"
83@ MSG_DEBUG_MODUNLOAD	"unload module: %s: %s\n"
84@ MSG_DEBUG_CPFILE	"copied %s to output file: %s\n";
85@ MSG_DEBUG_UNLINKFILE	"unlink unsaved output file: %s\n";
86@ MSG_DEBUG_VERSION	"%d-bit version\n"
87@ MSG_DEBUG_READONLY	"session is readonly\n";
88@ MSG_DEBUG_NOFILE	"no ELF object specified. Limited functionalty is available\n";
89@ MSG_DEBUG_DIRTYEXIT	"discarding unsaved edits\n";
90@ MSG_DEBUG_FNDSEC	"[%d: %s]: section\n"
91@ MSG_DEBUG_FNDCAP	"[%d: %s]: capabilities section\n"
92@ MSG_DEBUG_FNDDYN	"[%d: %s]: dynamic section\n"
93@ MSG_DEBUG_FNDSTR	"[%d: %s][%d]: string: %s\n"
94@ MSG_DEBUG_FNDSTRTAB	"[%d: %s]: string table section (SHT_STRTAB)\n"
95@ MSG_DEBUG_FNDSTRTABFL	"[%d: %s]: string table section (SHF_STRINGS)\n"
96@ MSG_DEBUG_FNDSYMTAB	"[%d: %s]: %s symbol table section\n"
97@ MSG_DEBUG_FNDSYMINFO	"[%d: %s]: syminfo section\n"
98@ MSG_DEBUG_FNDVERSYM	"[%d: %s]: versym section: [%d: %s]\n"
99@ MSG_DEBUG_FNDXSHNDX	"[%d: %s]: extended section index section: [%d: %s]\n"
100@ MSG_DEBUG_EXISTSTR	"[%d: %s][%d]: Found existing string in section: %s\n"
101@ MSG_DEBUG_ADDSTR	"[%d: %s][%d]: Using %d/%d bytes from reserved area \
102			 to add string: %s\n"
103@ MSG_DEBUG_NULL2DYNFL1	"[%d: %s]: No existing flags1 field to modify. \
104			 Will use extra DT_NULL in slot [%d] \n"
105@ MSG_DEBUG_AUX_LINK	"[%d: %s]: Ignoring section: sh_link field references \
106			 non-symbol table section: [%d]\n"
107@ MSG_DEBUG_AUX_SIZE "[%d: %s][%d]: Ignoring section: Not enough elements \
108			 for corresponding symbol table: [%d: %s][%d]\n"
109@ MSG_DEBUG_EXECCMD	"command: %s\n"
110@ MSG_DEBUG_SHNAM2NDX	"[%d: %s]: section name: %s\n"
111@ MSG_DEBUG_SYMNAM2NDX	"[%d: %s][%d]: symbol \"%s\"\n"
112@ MSG_DEBUG_INPLACEWARN	"warning: editing input file in place is not \
113			 recommended: %s\n"
114@ MSG_DEBUG_SHNDX_RANGE	"Specified section index [%d] is outside of valid \
115			 of range for this object: 0-%d\n"
116@ MSG_DEBUG_ARRCPY_1	"%s: copy array element [%d] to [%d]\n"
117@ MSG_DEBUG_ARRCPY_N	"%s: copy array elements [%d-%d] to [%d-%d]\n"
118@ MSG_DEBUG_ARRZERO_1	"%s[%d]: zero array element\n"
119@ MSG_DEBUG_ARRZERO_N	"%s[%d-%d]: zero %d array elements\n"
120@ MSG_DEBUG_ARRMOVE_1	"%s: moved element [%d] to [%d]\n"
121@ MSG_DEBUG_ARRMOVE_N	"%s: moved %d elements from [%d-%d] to [%d-%d]\n"
122
123# Errors
124
125@ MSG_ERR_NOFILSYSONLY	"No ELF object specified. Only commands from \
126			 module sys: are allowed: %s:%s\n"
127@ MSG_ERR_BADOSTYLE	"Unrecognized output style \
128			 (default|simple|num): %s\n"
129@ MSG_ERR_BADCONST	"internal error: bad constant value in \
130			 elfedit_const_to_atoui()\n"
131@ MSG_ERR_BADGETVAL	"internal error: bad required value passed to \
132			 elfedit_XXX_get_value()\n"
133@ MSG_ERR_PATHTOOLONG	"path too long: %s/%s.so\n"
134@ MSG_ERR_CNTDLOPEN	"unable to load module sharable object %s: %s\n"
135@ MSG_ERR_CNTDLCLOSE	"unable to unload module sharable object %s: %s\n"
136@ MSG_ERR_ESCEOL	"backslash escape cannot be used at end of line\n"
137@ MSG_ERR_BADCESC	"unrecognized escape in double quoted token: \\%c\n"
138@ MSG_ERR_UNTERMQUOTE	"command is missing closing quote: %c\n"
139@ MSG_ERR_UNRECMOD	"no such module: %s\n"
140@ MSG_ERR_UNRECCMD	"no such command: %s:%s\n"
141@ MSG_ERR_SONOTMOD	"sharable object is not a valid elfedit module: %s\n"
142@ MSG_ERR_CNTULSMOD	"cannot unload built in module: %s\n"
143@ MSG_ERR_NULLPRICMDNAM	"module has empty string for primary command: %s\n"
144@ MSG_ERR_BADMODLOAD	"elfedit module failed to initialize: %s\n"
145@ MSG_ERR_BADMODNAME	"sharable library provides module '%s' rather \
146			 than expected '%s': %s\n"
147@ MSG_ERR_OPT_MODPRE	"command option name must start with \
148			 a '-': %s : %s:%s %s\n"
149@ MSG_ERR_OPT_MODLEN	"command option name must have at least one character: \
150			 %s : %s:%s %s\n"
151@ MSG_ERR_OPT_EXCMASKN0	"command option oa_excmask is non-zero when \
152			 oa_idmask is zero: %s : %s:%s %s\n"
153@ MSG_ERR_OPT_IDMASKPOW2 "command option oa_idmask must be 0 or power \
154			 of 2: %s : %s:%s %s\n"
155@ MSG_ERR_OPT_IDMASKUNIQ "command option oa_idmask must be 0 or must be unique \
156			 value: %s : %s:%s %s\n"
157@ MSG_ERR_ARG_MODPRE	"command argument name may not start with \
158			 a '-': %s : %s:%s %s\n"
159@ MSG_ERR_ARG_MODLEN	"command argument name must have at least one \
160			 character: %s : %s:%s %s\n"
161@ MSG_ERR_ARG_CMDOA_VAL	"command argument has ELFEDIT_CMDOA_F_VALUE set, \
162			 which is only allowed for command \
163			 options: %s : %s:%s %s\n"
164@ MSG_ERR_ARG_MASKNOT0	"command argument oa_idmask and oa_excmask fields \
165			 must both be set to 0: %s : %s:%s %s\n"
166@ MSG_ERR_BADSTDOA	"internal error: argument or option uses \
167			 ELFEDIT_CMDOA_F_VALUE incorrectly: %s : %s:%s\n"
168@ MSG_ERR_CMDOA_VALNAM	"ELFEDIT_CMDOA_F_VALUE optarg has NULL \
169			 oa_name: %s : %s:%s %s\n"
170@ MSG_ERR_CMDOA_VALNOT0	"ELFEDIT_CMDOA_F_VALUE optarg has non-0 oa_help, \
171			 oa_flags, oa_idmask or oa_excmask \
172			 field: %s : %s:%s %s\n"
173@ MSG_ERR_BADMODOPTVAL	"command option has ELFEDIT_CMDOA_F_VALUE bit set, \
174			 but following value item is missing: %s : %s:%s %s\n"
175@ MSG_ERR_CNTOPNFILE	"open failed: %s: %s\n"
176@ MSG_ERR_CNTOPNDIR	"unable to read directory: %s: %s\n"
177@ MSG_ERR_SIGACTION	"unable to set signal handler: %s\n"
178@ MSG_ERR_NOAR		"unable to edit ELF archive: %s\n"
179@ MSG_ERR_UNRECELFFILE	"unable to edit non-ELF file: %s\n"
180@ MSG_ERR_BADELFCLASS	"unable to edit file with unknown ELFCLASS: %s\n"
181@ MSG_ERR_MALLOC	"%s: malloc: %s\n"
182@ MSG_ERR_LIBELF	"%s: %s failed: %s\n"
183@ MSG_ERR_MODNOCMD	"module '%s' specified without a command\n"
184@ MSG_ERR_CNTFORK	"unable to execute child process: %s\n"
185@ MSG_ERR_CNTWAIT	"unable to wait for child process: %s\n"
186@ MSG_ERR_CNTEXEC	"%sunable to exec %s: %s\n"
187@ MSG_ERR_CNTSTAT	"unable to stat %s: %s\n"
188@ MSG_ERR_CNTCHMOD	"unable to chmod %s: %s\n"
189@ MSG_ERR_BADSECNDX	"Specified section index [%d] is outside valid \
190			 range: 1-%d\n"
191@ MSG_ERR_NOCAP		"ELF object does not have a capabilities section\n"
192@ MSG_ERR_NODYN		"ELF object does not have a dynamic section\n"
193@ MSG_ERR_NOSYM		"[%d: %s]: Symbol table does not contain symbol: %s\n"
194@ MSG_ERR_NOSYMTAB	"symbol table section not found\n"
195@ MSG_ERR_NOSYMINFO	"ELF object does not have a syminfo section\n"
196@ MSG_ERR_NOTSYMTAB	"[%d: %s]: section is not a symbol table\n"
197@ MSG_ERR_STRSHNDX	"string section index %d is outside expected \
198			 range 1 - %d\n"
199@ MSG_ERR_NOTSTRSH	"[%d: %s]: Section is not a string table as expected\n"
200@ MSG_ERR_NOSTRPAD	"[%d: %s]: String table does not have room to add \
201			 string\n"
202@ MSG_ERR_BADSTROFF	"[%d: %s]: String offset [%d] is outside valid \
203			 range: 0-%d\n"
204@ MSG_ERR_NOVERSYMSEC	"[%d: %s]: symbol table does not have an associated \
205			 versym section\n"
206@ MSG_ERR_NOXSHSEC	"[%d: %s]: symbol table does not have an associated \
207			 extended index section\n"
208@ MSG_ERR_BADATOISTR	"not a valid numeric value: '%s'\n"
209@ MSG_ERR_ATOIRANGE	"%s value is out of range [%lld - %lld]: %lld\n"
210@ MSG_ERR_ATOUIRANGE	"%s value is out of range [%llu - %llu]: %llu\n"
211@ MSG_ERR_BADPATHCODE	"Unrecognized code encountered in module \
212			 search path: %%%c\n"
213@ MSG_ERR_UNKNOWNSYSERR	"<unknown>"
214@ MSG_ERR_PAGERFINI	"Error encountered closing pager process\n"
215@ MSG_ERR_PRINTF	"Error encountered writing output\n"
216@ MSG_ERR_FWRITE	"Error encountered writing output: %s\n"
217@ MSG_ERR_MODNAMTOOLONG	"module name too long: %s\n"
218@ MSG_ERR_CNTGETORIGIN	"Unable to determine elfedit $ORIGIN\n"
219@ MSG_ERR_GLREAD	"error reading from stdin: %s\n"
220@ MSG_ERR_READONLY	"Operation not allowed in readonly session\n"
221@ MSG_ERR_NODIRTYQUIT	"Output ELF file has changes pending. Use 'write' \
222			 to save them, or 'quit -f' to exit without saving\n"
223@ MSG_ERR_NOSECNAM	"File does not contain section of name: %s\n"
224@ MSG_ERR_NOSECTYP	"File does not contain section of type: %s\n"
225@ MSG_ERR_ARRBNDS	"%s[%d]: attempt to access elements outside \
226			 of valid of range for this section: 0-%d\n"
227@ MSG_ERR_ARRMVOVERLAP	"%s: Array source [%d-%d] and destination \
228			 [%d-%d] regions overlap\n"
229
230# Format strings for sys:help
231@ MSG_HLPFMT_MOD	"\nMODULE\n   %s - %s\n"
232@ MSG_HLPFMT_NAME	"\nNAME\n   %s - %s\n"
233@ MSG_HLPFMT_SYNOPSIS	"\nSYNOPSIS\n   %s\n"
234@ MSG_HLPFMT_ALIASES	"\nALIASES\n"
235@ MSG_HLPFMT_MODDEFCMD	"module default";
236@ MSG_HLPFMT_DEFCMD	"\t\t(Default Command For Module)";
237@ MSG_HLPFMT_DESC	"\nDESCRIPTION\n"
238@ MSG_HLPFMT_ARGS	"\nARGUMENTS\n"
239@ MSG_HLPFMT_OPT	"\nOPTIONS\n"
240@ MSG_HLPFMT_MULTIEND	"[End: %s, Next: %s]\n"
241@ MSG_HLPFMT_INFILE	"Input File:  %s\n"
242@ MSG_HLPFMT_INFILERO	"Input File:  %s (readonly)\n"
243@ MSG_HLPFMT_INFILENONE	"Input File: <not present>\n"
244@ MSG_HLPFMT_OUTFILE	"Output File: %s\n"
245@ MSG_HLPFMT_CNGPENDING	"    (changes pending)\n"
246@ MSG_HLPFMT_VARHDR	"\nOptions:\n"
247@ MSG_HLPFMT_AFLG	"    a (Autoprint):    %s\n"
248@ MSG_HLPFMT_DFLG	"    d (Debug):        %s\n"
249@ MSG_HLPFMT_OFLG	"    o (Output Style): %s\n"
250@ MSG_HLPFMT_PATHHDR	"\nModule Load Path:\n"
251@ MSG_HLPFMT_MODHDR	"\nCurrently Loaded Modules:\n"
252@ MSG_HLPFMT_SUMSYNOPSIS	"\n           %s\n"
253
254
255# Names we use when an ELF item lacks a name
256
257@ MSG_UNKNOWNSECNAM	"<unknown section name>"
258@ MSG_BADSYMOFFSETNAM	"<bad symbol name>"
259
260
261# builtin sys: module description
262
263@ MSG_MOD_SYS_DESC	"Built in elfedit commands"
264
265
266# 1-line description strings for builtin commands.
267
268@ MSG_SYS_DESC_HELP	"Display module information and/or command \
269			 documentation"
270@ MSG_SYS_DESC_LOAD	"Load module(s)"
271@ MSG_SYS_DESC_SET	"Set elfedit options"
272@ MSG_SYS_DESC_STATUS	"Session status (files, modules, options)"
273@ MSG_SYS_DESC_QUIT	"Exit elfedit session"
274@ MSG_SYS_DESC_UNLOAD	"Unload module(s)"
275@ MSG_SYS_DESC_WRITE	"Flush any changes back to current ELF file"
276
277
278# Command option description strings for builtin commands
279
280@ MSG_SYS_OPTDESC_HELP_S	"\
281   Generate a command synopsis rather than full command help.\n"
282
283@ MSG_SYS_OPTDESC_LOAD_A	"\
284   Load every module that can be found by following the module\n\
285   load path.\n"
286@ MSG_SYS_OPTDESC_QUIT_F	"\
287   Exit the elfedit session without first requiring changes to\n\
288   be saved. Any modifications made to the output file will be\n\
289   quietly discarded, and will be lost."
290@ MSG_SYS_OPTDESC_UNLOAD_A	"\
291   Unload every currently loaded module. Loaded modules can be\n\
292   displayed using the \"status\" command.\n"
293
294
295# Command option description strings for builtin commands
296
297@ MSG_ARGDESC_HELP_ARG		"\
298   Items for which help is desired. Module names and/or command\n\
299   names are allowed, as described above.\n"
300@ MSG_ARGDESC_LOAD_MODNAME	"Name(s) of modules to be loaded.\n"
301@ MSG_ARGDESC_SET_OPTION	"Name of option to be set.\n"
302@ MSG_ARGDESC_SET_VALUE		"Value to be set for option.\n"
303@ MSG_ARGDESC_UNLOAD_MODNAME	"Name(s) of modules to be loaded.\n"
304
305
306# Help text for builtin commands.
307
308@ MSG_SYS_HELP_HELP_NOARG	"   \
309   Welcome to elfedit, a utility for examining and editing\n\
310   ELF objects. This brief discussion will tell you the basics\n\
311   you need to know in order to use the elfedit help facility.\n\
312   With that, you will be able to find desired information about\n\
313   elfedit and its available commands.\n\
314   \n\
315   To reach the point where you are reading this text, you entered\n\
316   the elfedit command \"help\", without any arguments. Actually, you\n\
317   may have entered any of the following:\n\
318   \n\
319   \t?, help, man, sys:?, sys:help, sys:man\n\
320   \n\
321   As we will see below, these are simply different names for the\n\
322   help command.\n\
323   \n\
324   You use elfedit by issuing commands for it to execute.\n\
325   The syntax is similar to that used by Unix command line\n\
326   utilities, and follows the general form:\n\
327   \n\
328   \t> module:command [-opt]... arg...\n\
329   \n\
330   The '>' character is the elfedit prompt, and not part of the\n\
331   command. We show elfedit commands with the prompt, but you\n\
332   should not type the prompt in. elfedit supplies it to let\n\
333   you know when it is expecting a command to process.\n\
334   \n\
335   As with a Unix utility, there are options (which start with a '-'\n\
336   character) and plain arguments (which do not start with a '-').\n\
337   The plain arguments follow the options. The options and plain\n\
338   arguments differ from command to command. Each command sets its own\n\
339   rules for whether it accepts options and arguments, as well as\n\
340   which ones and how many. These details are found in the online\n\
341   help that is available for each command. To learn more about\n\
342   any command, use the help command:\n\
343   \n\
344   \t> help cmdname\n\
345   \n\
346   where 'cmdname' is the name of the command you are interested in.\n\
347   help is simply an elfedit command, like any other. As such, you\n\
348   can read the full documentation for help by entering the command:\n\
349   \n\
350   \t> help sys:help\n\
351   \n\
352   elfedit functionality is organized as \"modules\", which are\n\
353   dynamically loadable ELF objects that contain related editing\n\
354   commands. To refer to a command, you enter its module name,\n\
355   a colon (:), and the command name, all as a single unit without\n\
356   any intervening white-space. The 'sys' module is special: It is\n\
357   a built in module that contains the core commands required for\n\
358   elfedit to work. As a convenience, if you omit the module name\n\
359   from a command, elfedit assumes that you are referring to the sys\n\
360   module. This is why sys:help and help are really the same command,\n\
361   and why we did not have to write the above help command as:\n\
362   \n\
363   \t> sys:help sys:help\n\
364   \n\
365   In fact, we could have written it even more simply, as:\n\
366   \n\
367   \t> help help\n\
368   \n\
369   To access a command from any module other than sys, you must\n\
370   enter both the module and command names. This means that if\n\
371   you write your own module, the module name needs to be unique,\n\
372   but the command names it supplies can be the same names used by\n\
373   other modules. For instance, most elfedit modules supply a command\n\
374   named dump to display information about their part of the ELF \n\
375   file in a style similar to that used by the Unix elfdump command.\n\
376   Despite having the same name (dump), these are all distinct and\n\
377   separate commands. elfedit uses the module/command pair to know\n\
378   which one you mean.\n\
379   \n\
380   elfedit commands can sometimes have more than one name, or alias.\n\
381   Usually, each command only has one name, but there are some\n\
382   exceptions. For example, as we have already seen, sys:?, and \n\
383   sys:man are aliases of sys:help. These are all common names\n\
384   that different programs use to supply help. elfedit accepts all\n\
385   of these names in the hope that a new user who doesn't know\n\
386   elfedit yet will try one of them, and find this information.\n\
387   \n\
388   Most modules provide a \"default command\". This command will be\n\
389   run if you provide only the module name. Most modules use this\n\
390   feature to provide a shortcut for their \"dump\" command. For\n\
391   instance, both of the following commands run dyn:dump:\n\
392   \n\
393   \t> dyn:\n\
394   \t> dyn:dump\n\
395   \n\
396   Although the command name dump was not required, the colon\n\
397   (:) character is. Without it, elfedit will think you mean the\n\
398    command sys:dyn.\n\
399   \n\
400   Using the help command (sys:help), you can easily learn about\n\
401   the other commands that are available. To see which modules\n\
402   are available and a synopsis of the commands they provide:\n\
403   \n\
404   \t> help -s\n\
405   \n\
406   To see the full documentation for a command, you give the\n\
407   name of the command to the help command as a plain argument.\n\
408   As we saw above, this command will show you the detailed\n\
409   documentation for the help command itself:\n\
410   \n\
411   \t> help help\n\
412   \n\
413   The arguments to help can also be module names, without the\n\
414   command. In that case, output similar to that from the -s\n\
415   option will be displayed for that module.\n\
416   \n\
417   If you are new to elfedit, we recommend that you start by learning\n\
418   about the commands in the sys module. This will provide you with\n\
419   such basic knowledge as how to find out the status of your session\n\
420   (sys:status) or how to exit the elfedit program (sys:quit). Once\n\
421   you understand the basic commands, you can branch out and learn\n\
422   about the available modules and commands and how they can be used\n\
423   to edit ELF files.\n"
424
425
426
427
428@ MSG_SYS_HELP_HELP	"   \
429   The sys:help command provides information on elfedit modules\n\
430   and commands:\n\
431   \n\
432   o\tIf called with command names as arguments, documentation\n\
433   \tfor each given command is displayed. If the -s option is\n\
434   \tspecified, a basic synopsis for the command is given.\n\
435   \tOtherwise, the full documentation is shown.\n\
436   \n\
437   o\tIf called with module names as arguments, the name and\n\
438   \tpurpose of each module is shown, along with a brief synopsis\n\
439   \tof the commands the module provides.\n\
440   \n\
441   o\tIf called with the -s option, and no arguments, a brief\n\
442   \tsynopsis of every command is shown, organized by module,\n\
443   \tfor every module visible from the module load path.\n\
444   \n\
445   o\tIf called with no arguments, and the -s option is not\n\
446   \tused, a brief welcome message is displayed, giving basic\n\
447   \tinformation on elfedit operation and the use of the\n\
448   \thelp command.\n"
449
450@ MSG_SYS_HELP_LOAD	"\
451   The sys:load command is used to explicitly load elfedit modules.\n\
452   \n\
453   Most of the functionality available in elfedit is not built\n\
454   into the elfedit program directly. Instead, functionality\n\
455   is contained in \"modules\", which are implemented as dynamically\n\
456   loadable ELF sharable objects. This design allows for easy\n\
457   extensibility of elfedit's abilities, and it is also efficient,\n\
458   since it allows elfedit to be a relatively small program.\n\
459   \n\
460   elfedit will automatically load a module under the following\n\
461   circumstances:\n\
462   \n   \
463   o\tA command from the module needs to be run.\n\
464   \n   \
465   o\tTo display help information about the module or a command\n\
466   \tfound in the module.\n\
467   \n   \
468   o\tTo perform command completion in an interactive session.\n\
469   \tCommand completion can cause many, or all modules visible\n\
470   \tin the module path to be loaded.\n\
471   \n\
472   There is usually little need for explicit module loading.\n\
473   It is usually best to allow elfedit to load modules as they\n\
474   are needed.\n"
475
476@ MSG_SYS_HELP_SET	"\
477   Set options that control how elfedit works.\n\
478   \n\
479   Most variables accept boolen (true/false) values. The sys:set\n\
480   command accepts any of the following as a boolean value:\n\
481   0/1, true/false, t/f, yes/no, y/n, on/off.\n\
482   \n\
483   The variables, and their allowed values, are as follows:\n\
484   \n\
485   a\tAutoprint [boolean]\n\
486   \tWhen autoprint is active, elfedit automatically displays\n\
487   \tthe results of any edits after carrying them out. By default,\n\
488   \tautoprint is on for interactive sessions, and false for\n\
489   \tsessions where the input is not a tty. The elfedit -a option\n\
490   \tcan be used to enable autoprint at session start.\n\
491   \n\
492   d\tDebug [boolean]\n\
493   \tWhen enabled, elfedit issues detailed messages showing\n\
494   \twhere ELF data is being accessed, and how specific edits\n\
495   \tare being carried out. Debug mode is off by default. The\n\
496   \telfedit -d option can be used to enable debug mode at\n\
497   \tsession start.\n\
498   \n\
499   o\tOutput Style [default, simple, num]\n\
500   \tControls the format in which elfedit prints ELF data:\n\
501   \n\
502   \tdefault\n\
503   \tInformation is displayed in a style similar to that used by\n\
504   \tthe elfdump utility. This style is best for interactive use.\n\
505   \n\
506   \tsimple\n\
507   \tData is displayed in a simple format, without extraneous\n\
508   \tinformation or formatting. Strings are displayed as is.\n\
509   \tNumbers are displayed as symbolic constants when possible,\n\
510   \tand in integer form otherwise.\n\
511   \n\
512   \tnum\n\
513   \tInteger values are always shown in integer form. Strings\n\
514   \tare shown as the integer offset into the containing string\n\
515   \ttable.\n"
516
517@ MSG_SYS_HELP_STATUS	"\
518   The status of the current elfedit session is shown:\n\
519   \n\
520   o\tInput and output files\n\
521   \n\
522   o\tCurrent settings of the elfedit options (See 'help set'\n\
523   \tfor more information on elfedit options)\n\
524   \n\
525   o\tModule load path\n\
526   \n\
527   o\tLoaded modules and the paths of the sharable objects\n\
528   \tthat provide them\n"
529
530@ MSG_SYS_HELP_QUIT	"\
531   Exits the elfedit session.\n\
532   \n\
533   elfedit will normally refuse to exit a non-readonly session\n\
534   while there are unsaved edits pending. The sys:write command\n\
535   can be used to save such edits, or the -f option can be used to\n\
536   discard pending edits and exit immediately.\n"
537
538@ MSG_SYS_HELP_UNLOAD	"\
539   The sys:unload command is used to explicitly unload elfedit modules.\n\
540   \n\
541   There is usually little need to explicitly unload modules.\n\
542   \n\
543   The description of the sys:load command discusses module loading\n\
544   in more detail.\n"
545
546@ MSG_SYS_HELP_WRITE	"\
547   Writes all pending edits to the output file. Until this is done,\n\
548   the edits are not permanent, and can be abandoned by exiting the\n\
549   session using the -f option to sys:quit. Once sys:write is used,\n\
550   these changes become permanent.\n"
551
552
553
554# Command option description strings for inheritable option strings
555
556@ MSG_STDOA_OPTDESC_AND	"\
557   The new value should be bitwised AND'd against the\n\
558   existing value.\n"
559
560@ MSG_STDOA_OPTDESC_CMP	"\
561   The new value should be bitwise complemented\n\
562   (1 values set to 0, and 0 values set to 1) before being\n\
563   applied to the existing value.\n"
564
565@ MSG_STDOA_OPTDESC_O "\
566   Overrides the global output style (as set via the sys:set\n\
567   command) for the duration of the call to this command.\n\
568   The valid values for the outstyle argument are: default,\n\
569   simple, or num.\n\
570   \n\
571   Output styles are described in more detail in the documentation\n\
572   for the sys:set command.\n"
573
574@ MSG_STDOA_OPTDESC_OR	"\
575   The new value should be bitwised OR'd against the\n\
576   existing value.\n"
577
578
579
580
581@ _END_
582
583
584# The following strings represent reserved words, files, pathnames and symbols.
585# Reference to this strings is via the MSG_ORIG() macro, and thus no message
586# translation is required.
587
588# Names of libelf functions
589
590@ MSG_ELF_BEGIN		"elf_begin"
591@ MSG_ELF_GETEHDR	"elf_getehdr"
592@ MSG_ELF_GETDATA	"elf_getdata"
593@ MSG_ELF_GETPHNUM	"elf_getphnum"
594@ MSG_ELF_GETPHDR	"elf_getphdr"
595@ MSG_ELF_GETSCN	"elf_getscn"
596@ MSG_ELF_GETSHDR	"elf_getshdr"
597@ MSG_ELF_GETSHNUM	"elf_getshnum"
598@ MSG_ELF_GETSHSTRNDX	"elf_getshstrndx"
599@ MSG_ELF_UPDATE	"elf_update"
600
601
602# Names of special section indexes
603
604@ MSG_SHN_UNDEF			"SHN_UNDEF"		# 0
605@ MSG_SHN_UNDEF_ALT1		"undef"
606@ MSG_SHN_SUNW_IGNORE		"SHN_SUNW_IGNORE"	# 0xff3f
607@ MSG_SHN_SUNW_IGNORE_ALT1	"sunw_ignore"
608@ MSG_SHN_BEFORE		"SHN_BEFORE"		# 0xff00
609@ MSG_SHN_BEFORE_ALT1		"before"
610@ MSG_SHN_AFTER			"SHN_AFTER"		# 0xff01
611@ MSG_SHN_AFTER_ALT1		"after"
612@ MSG_SHN_AMD64_LCOMMON		"SHN_AMD64_LCOMMON"	# 0xff02
613@ MSG_SHN_AMD64_LCOMMON_ALT1	"amd64_lcommon"
614@ MSG_SHN_ABS			"SHN_ABS"		# 0xfff1
615@ MSG_SHN_ABS_ALT1		"abs"
616@ MSG_SHN_COMMON		"SHN_COMMON"		# 0xfff2
617@ MSG_SHN_COMMON_ALT1		"common"
618@ MSG_SHN_XINDEX		"SHN_XINDEX"		# 0xffff
619@ MSG_SHN_XINDEX_ALT1		"xindex"
620
621
622# Names of sh_type SHT_* type constants
623
624@ MSG_SHT_NULL			"SHT_NULL"		# 0
625@ MSG_SHT_NULL_ALT1		"null"
626@ MSG_SHT_PROGBITS		"SHT_PROGBITS"		# 1
627@ MSG_SHT_PROGBITS_ALT1		"progbits"
628@ MSG_SHT_SYMTAB		"SHT_SYMTAB"		# 2
629@ MSG_SHT_SYMTAB_ALT1		"symtab"
630@ MSG_SHT_STRTAB		"SHT_STRTAB"		# 3
631@ MSG_SHT_STRTAB_ALT1		"strtab"
632@ MSG_SHT_RELA			"SHT_RELA"		# 4
633@ MSG_SHT_RELA_ALT1		"rela"
634@ MSG_SHT_HASH			"SHT_HASH"		# 5
635@ MSG_SHT_HASH_ALT1		"hash"
636@ MSG_SHT_DYNAMIC		"SHT_DYNAMIC"		# 6
637@ MSG_SHT_DYNAMIC_ALT1		"dynamic"
638@ MSG_SHT_NOTE			"SHT_NOTE"		# 7
639@ MSG_SHT_NOTE_ALT1		"note"
640@ MSG_SHT_NOBITS		"SHT_NOBITS"		# 8
641@ MSG_SHT_NOBITS_ALT1		"nobits"
642@ MSG_SHT_REL			"SHT_REL"		# 9
643@ MSG_SHT_REL_ALT1		"rel"
644@ MSG_SHT_SHLIB			"SHT_SHLIB"		# 10
645@ MSG_SHT_SHLIB_ALT1		"shlib"
646@ MSG_SHT_DYNSYM		"SHT_DYNSYM"		# 11
647@ MSG_SHT_DYNSYM_ALT1		"dynsym"
648@ MSG_SHT_INIT_ARRAY		"SHT_INIT_ARRAY"	# 14
649@ MSG_SHT_INIT_ARRAY_ALT1	"init_array"
650@ MSG_SHT_FINI_ARRAY		"SHT_FINI_ARRAY"	# 15
651@ MSG_SHT_FINI_ARRAY_ALT1	"fini_array"
652@ MSG_SHT_PREINIT_ARRAY		"SHT_PREINIT_ARRAY"	# 16
653@ MSG_SHT_PREINIT_ARRAY_ALT1	"preinit_ARRAY"
654@ MSG_SHT_GROUP			"SHT_GROUP"		# 17
655@ MSG_SHT_GROUP_ALT1		"group"
656@ MSG_SHT_SYMTAB_SHNDX		"SHT_SYMTAB_SHNDX"	# 18
657@ MSG_SHT_SYMTAB_SHNDX_ALT1	"symtab_shndx"
658@ MSG_SHT_SUNW_SYMSORT		"SHT_SUNW_symsort"	# 0x6ffffff1
659@ MSG_SHT_SUNW_SYMSORT_ALT1	"sunw_symsort"
660@ MSG_SHT_SUNW_TLSSORT		"SHT_SUNW_tlssort"	# 0x6ffffff2
661@ MSG_SHT_SUNW_TLSSORT_ALT1	"sunw_tlssort"
662@ MSG_SHT_SUNW_LDYNSYM		"SHT_SUNW_LDYNSYM"	# 0x6ffffff3
663@ MSG_SHT_SUNW_LDYNSYM_ALT1	"sunw_ldynsym"
664@ MSG_SHT_SUNW_DOF		"SHT_SUNW_dof"		# 0x6ffffff4
665@ MSG_SHT_SUNW_DOF_ALT1		"sunw_dof"
666@ MSG_SHT_SUNW_CAP		"SHT_SUNW_cap"		# 0x6ffffff5
667@ MSG_SHT_SUNW_CAP_ALT1		"sunw_cap"
668@ MSG_SHT_SUNW_SIGNATURE	"SHT_SUNW_SIGNATURE"	# 0x6ffffff6
669@ MSG_SHT_SUNW_SIGNATURE_ALT1	"sunw_signature"
670@ MSG_SHT_SUNW_ANNOTATE		"SHT_SUNW_ANNOTATE"	# 0x6ffffff7
671@ MSG_SHT_SUNW_ANNOTATE_ALT1	"sunw_annotate"
672@ MSG_SHT_SUNW_DEBUGSTR		"SHT_SUNW_DEBUGSTR"	# 0x6ffffff8
673@ MSG_SHT_SUNW_DEBUGSTR_ALT1	"sunw_debugstr"
674@ MSG_SHT_SUNW_DEBUG		"SHT_SUNW_DEBUG"	# 0x6ffffff9
675@ MSG_SHT_SUNW_DEBUG_ALT1	"sunw_debug"
676@ MSG_SHT_SUNW_MOVE		"SHT_SUNW_move"		# 0x6ffffffa
677@ MSG_SHT_SUNW_MOVE_ALT1	"sunw_move"
678@ MSG_SHT_SUNW_COMDAT		"SHT_SUNW_COMDAT"	# 0x6ffffffb
679@ MSG_SHT_SUNW_COMDAT_ALT1	"sunw_comdat"
680@ MSG_SHT_SUNW_SYMINFO		"SHT_SUNW_syminfo"	# 0x6ffffffc
681@ MSG_SHT_SUNW_SYMINFO_ALT1	"sunw_syminfo"
682@ MSG_SHT_SUNW_VERDEF		"SHT_SUNW_verdef"	# 0x6ffffffd
683@ MSG_SHT_SUNW_VERDEF_ALT1	"sunw_verdef"
684@ MSG_SHT_GNU_VERDEF		"SHT_GNU_verdef"	# 0x6ffffffd
685@ MSG_SHT_GNU_VERDEF_ALT1	"gnu_verdef"
686@ MSG_SHT_SUNW_VERNEED		"SHT_SUNW_verneed"	# 0x6ffffffe
687@ MSG_SHT_SUNW_VERNEED_ALT1	"sunw_verneed"
688@ MSG_SHT_GNU_VERNEED		"SHT_GNU_verneed"	# 0x6ffffffe
689@ MSG_SHT_GNU_VERNEED_ALT1	"gnu_verneed"
690@ MSG_SHT_SUNW_VERSYM		"SHT_SUNW_versym"	# 0x6fffffff
691@ MSG_SHT_SUNW_VERSYM_ALT1	"sunw_versym"
692@ MSG_SHT_GNU_VERSYM		"SHT_GNU_versym"	# 0x6fffffff
693@ MSG_SHT_GNU_VERSYM_ALT1	"gnu_versym"
694@ MSG_SHT_SPARC_GOTDATA		"SHT_SPARC_GOTDATA"	# 0x7000000
695@ MSG_SHT_SPARC_GOTDATA_ALT1	"sparc_gotdata"
696@ MSG_SHT_AMD64_UNWIND		"SHT_AMD64_UNWIND"	# 0x7000000
697@ MSG_SHT_AMD64_UNWIND_ALT1	"amd64_unwind"
698
699
700# Names of dynamic section entry tags
701
702@ MSG_DT_NULL			"DT_NULL"		# 0
703@ MSG_DT_NULL_ALT1		"null"
704@ MSG_DT_NEEDED			"DT_NEEDED"		# 1
705@ MSG_DT_NEEDED_ALT1		"needed"
706@ MSG_DT_PLTRELSZ		"DT_PLTRELSZ"		# 2
707@ MSG_DT_PLTRELSZ_ALT1		"pltrelsz"
708@ MSG_DT_PLTGOT			"DT_PLTGOT"		# 3
709@ MSG_DT_PLTGOT_ALT1		"pltgot"
710@ MSG_DT_HASH			"DT_HASH"		# 4
711@ MSG_DT_HASH_ALT1		"hash"
712@ MSG_DT_STRTAB			"DT_STRTAB"		# 5
713@ MSG_DT_STRTAB_ALT1		"strtab"
714@ MSG_DT_SYMTAB			"DT_SYMTAB"		# 6
715@ MSG_DT_SYMTAB_ALT1		"symtab"
716@ MSG_DT_RELA			"DT_RELA"		# 7
717@ MSG_DT_RELA_ALT1		"rela"
718@ MSG_DT_RELASZ			"DT_RELASZ"		# 8
719@ MSG_DT_RELASZ_ALT1		"relasz"
720@ MSG_DT_RELAENT		"DT_RELAENT"		# 9
721@ MSG_DT_RELAENT_ALT1		"relaent"
722@ MSG_DT_STRSZ			"DT_STRSZ"		# 10
723@ MSG_DT_STRSZ_ALT1		"strsz"
724@ MSG_DT_SYMENT			"DT_SYMENT"		# 11
725@ MSG_DT_SYMENT_ALT1		"syment"
726@ MSG_DT_INIT			"DT_INIT"		# 12
727@ MSG_DT_INIT_ALT1		"init"
728@ MSG_DT_FINI			"DT_FINI"		# 13
729@ MSG_DT_FINI_ALT1		"fini"
730@ MSG_DT_SONAME			"DT_SONAME"		# 14
731@ MSG_DT_SONAME_ALT1		"soname"
732@ MSG_DT_RPATH			"DT_RPATH"		# 15
733@ MSG_DT_RPATH_ALT1		"rpath"
734@ MSG_DT_SYMBOLIC		"DT_SYMBOLIC"		# 16
735@ MSG_DT_SYMBOLIC_ALT1		"symbolic"
736@ MSG_DT_REL			"DT_REL"		# 17
737@ MSG_DT_REL_ALT1		"rel"
738@ MSG_DT_RELSZ			"DT_RELSZ"		# 18
739@ MSG_DT_RELSZ_ALT1		"relsz"
740@ MSG_DT_RELENT			"DT_RELENT"		# 19
741@ MSG_DT_RELENT_ALT1		"relent"
742@ MSG_DT_PLTREL			"DT_PLTREL"		# 20
743@ MSG_DT_PLTREL_ALT1		"pltrel"
744@ MSG_DT_DEBUG			"DT_DEBUG"		# 21
745@ MSG_DT_DEBUG_ALT1		"debug"
746@ MSG_DT_TEXTREL		"DT_TEXTREL"		# 22
747@ MSG_DT_TEXTREL_ALT1		"textrel"
748@ MSG_DT_JMPREL			"DT_JMPREL"		# 23
749@ MSG_DT_JMPREL_ALT1		"jmprel"
750@ MSG_DT_BIND_NOW		"DT_BIND_NOW"		# 24
751@ MSG_DT_BIND_NOW_ALT1		"bind_now"
752@ MSG_DT_INIT_ARRAY		"DT_INIT_ARRAY"		# 25
753@ MSG_DT_INIT_ARRAY_ALT1	"init_array"
754@ MSG_DT_FINI_ARRAY		"DT_FINI_ARRAY"		# 26
755@ MSG_DT_FINI_ARRAY_ALT1	"fini_array"
756@ MSG_DT_INIT_ARRAYSZ		"DT_INIT_ARRAYSZ"	# 27
757@ MSG_DT_INIT_ARRAYSZ_ALT1	"init_arraysz"
758@ MSG_DT_FINI_ARRAYSZ		"DT_FINI_ARRAYSZ"	# 28
759@ MSG_DT_FINI_ARRAYSZ_ALT1	"fini_arraysz"
760@ MSG_DT_RUNPATH		"DT_RUNPATH"		# 29
761@ MSG_DT_RUNPATH_ALT1		"runpath"
762@ MSG_DT_FLAGS			"DT_FLAGS"		# 30
763@ MSG_DT_FLAGS_ALT1		"flags"
764@ MSG_DT_PREINIT_ARRAY		"DT_PREINIT_ARRAY"	# 32
765@ MSG_DT_PREINIT_ARRAY_ALT1	"preinit_array"
766@ MSG_DT_PREINIT_ARRAYSZ	"DT_PREINIT_ARRAYSZ"	# 33
767@ MSG_DT_PREINIT_ARRAYSZ_ALT1	"preinit_arraysz"
768@ MSG_DT_SUNW_AUXILIARY		"DT_SUNW_AUXILIARY"	# 0x6000000d
769@ MSG_DT_SUNW_AUXILIARY_ALT1	"sunw_auxiliary"
770@ MSG_DT_SUNW_RTLDINF		"DT_SUNW_RTLDINF"	# 0x6000000e
771@ MSG_DT_SUNW_RTLDINF_ALT1	"sunw_rtldinf"
772@ MSG_DT_SUNW_FILTER		"DT_SUNW_FILTER"	# 0x6000000f
773@ MSG_DT_SUNW_FILTER_ALT1	"sunw_filter"
774@ MSG_DT_SUNW_CAP		"DT_SUNW_CAP"		# 0x60000010
775@ MSG_DT_SUNW_CAP_ALT1		"sunw_cap"
776@ MSG_DT_SUNW_SYMTAB		"DT_SUNW_SYMTAB"	# 0x60000011
777@ MSG_DT_SUNW_SYMTAB_ALT1	"sunw_symtab"
778@ MSG_DT_SUNW_SYMSZ		"DT_SUNW_SYMSZ"		# 0x60000012
779@ MSG_DT_SUNW_SYMSZ_ALT1	"sunw_symsz"
780@ MSG_DT_SUNW_SORTENT		"DT_SUNW_SORTENT"	# 0x60000013
781@ MSG_DT_SUNW_SORTENT_ALT1	"sunw_sortent"
782@ MSG_DT_SUNW_SYMSORT		"DT_SUNW_SYMSORT"	# 0x60000014
783@ MSG_DT_SUNW_SYMSORT_ALT1	"sunw_symsort"
784@ MSG_DT_SUNW_SYMSORTSZ		"DT_SUNW_SYMSORTSZ"	# 0x60000015
785@ MSG_DT_SUNW_SYMSORTSZ_ALT1	"sunw_symsortsz"
786@ MSG_DT_SUNW_TLSSORT		"DT_SUNW_TLSSORT"	# 0x60000016
787@ MSG_DT_SUNW_TLSSORT_ALT1	"sunw_tlssort"
788@ MSG_DT_SUNW_TLSSORTSZ		"DT_SUNW_TLSSORTSZ"	# 0x60000017
789@ MSG_DT_SUNW_TLSSORTSZ_ALT1	"sunw_tlssortsz"
790@ MSG_DT_SUNW_STRPAD		"DT_SUNW_STRPAD"	# 0x60000019
791@ MSG_DT_SUNW_STRPAD_ALT1	"sunw_strpad"
792@ MSG_DT_SUNW_LDMACH		"DT_SUNW_ldmach"	# 0x6000001b
793@ MSG_DT_SUNW_LDMACH_ALT1	"sunw_ldmach"
794@ MSG_DT_SPARC_REGISTER		"DT_SPARC_REGISTER"	# 0x70000001
795@ MSG_DT_SPARC_REGISTER_ALT1	"sparc_register"
796@ MSG_DT_DEPRECATED_SPARC_REGISTER "DT_DEPRECATED_SPARC_REGISTER" # 0x7000001
797@ MSG_DT_DEPRECATED_SPARC_REGISTER_ALT1 "deprecated_sparc_register"
798@ MSG_DT_CHECKSUM		"DT_CHECKSUM"		# 0x6ffffdf8
799@ MSG_DT_CHECKSUM_ALT1		"checksum"
800@ MSG_DT_PLTPADSZ		"DT_PLTPADSZ"		# 0x6ffffdf9
801@ MSG_DT_PLTPADSZ_ALT1		"pltpadsz"
802@ MSG_DT_MOVEENT		"DT_MOVEENT"		# 0x6ffffdfa
803@ MSG_DT_MOVEENT_ALT1		"moveent"
804@ MSG_DT_MOVESZ			"DT_MOVESZ"		# 0x6ffffdfb
805@ MSG_DT_MOVESZ_ALT1		"movesz"
806@ MSG_DT_FEATURE_1		"DT_FEATURE_1"		# 0x6ffffdfc
807@ MSG_DT_FEATURE_1_ALT1		"feature_1"
808@ MSG_DT_POSFLAG_1		"DT_POSFLAG_1"		# 0x6ffffdfd
809@ MSG_DT_POSFLAG_1_ALT1		"posflag_1"
810@ MSG_DT_SYMINSZ		"DT_SYMINSZ"		# 0x6ffffdfe
811@ MSG_DT_SYMINSZ_ALT1		"syminsz"
812@ MSG_DT_SYMINENT		"DT_SYMINENT"		# 0x6ffffdff
813@ MSG_DT_SYMINENT_ALT1		"syminent"
814@ MSG_DT_CONFIG			"DT_CONFIG"		# 0x6ffffefa
815@ MSG_DT_CONFIG_ALT1		"config"
816@ MSG_DT_DEPAUDIT		"DT_DEPAUDIT"		# 0x6ffffefb
817@ MSG_DT_DEPAUDIT_ALT1		"depaudit"
818@ MSG_DT_AUDIT			"DT_AUDIT"		# 0x6ffffefc
819@ MSG_DT_AUDIT_ALT1		"audit"
820@ MSG_DT_PLTPAD			"DT_PLTPAD"		# 0x6ffffefd
821@ MSG_DT_PLTPAD_ALT1		"pltpad"
822@ MSG_DT_MOVETAB		"DT_MOVETAB"		# 0x6ffffefe
823@ MSG_DT_MOVETAB_ALT1		"movetab"
824@ MSG_DT_SYMINFO		"DT_SYMINFO"		# 0x6ffffeff
825@ MSG_DT_SYMINFO_ALT1		"syminfo"
826@ MSG_DT_VERSYM			"DT_VERSYM"		# 0x6ffffff0
827@ MSG_DT_VERSYM_ALT1		"versym"
828@ MSG_DT_RELACOUNT		"DT_RELACOUNT"		# 0x6ffffff9
829@ MSG_DT_RELACOUNT_ALT1		"relacount"
830@ MSG_DT_RELCOUNT		"DT_RELCOUNT"		# 0x6ffffffa
831@ MSG_DT_RELCOUNT_ALT1		"relcount"
832@ MSG_DT_FLAGS_1		"DT_FLAGS_1"		# 0x6ffffffb
833@ MSG_DT_FLAGS_1_ALT1		"flags_1"
834@ MSG_DT_VERDEF			"DT_VERDEF"		# 0x6ffffffc
835@ MSG_DT_VERDEF_ALT1		"verdef"
836@ MSG_DT_VERDEFNUM		"DT_VERDEFNUM"		# 0x6ffffffd
837@ MSG_DT_VERDEFNUM_ALT1		"verdefnum"
838@ MSG_DT_VERNEED		"DT_VERNEED"		# 0x6ffffffe
839@ MSG_DT_VERNEED_ALT1		"verneed"
840@ MSG_DT_VERNEEDNUM		"DT_VERNEEDNUM"		# 0x6fffffff
841@ MSG_DT_VERNEEDNUM_ALT1	"verneednum"
842@ MSG_DT_AUXILIARY		"DT_AUXILIARY"		# 0x7ffffffd
843@ MSG_DT_AUXILIARY_ALT1		"auxiliary"
844@ MSG_DT_USED			"DT_USED"		# 0x7ffffffe
845@ MSG_DT_USED_ALT1		"used"
846@ MSG_DT_FILTER			"DT_FILTER"		# 0x7fffffff
847@ MSG_DT_FILTER_ALT1		"filter"
848
849
850# DT_FLAGS .dynamic entry
851@ MSG_DF_ORIGIN			"DF_ORIGIN"		# 0x00000001
852@ MSG_DF_ORIGIN_ALT1		"origin"
853@ MSG_DF_SYMBOLIC		"DF_SYMBOLIC"		# 0x00000002
854@ MSG_DF_SYMBOLIC_ALT1		"symbolic"
855@ MSG_DF_TEXTREL		"DF_TEXTREL"		# 0x00000004
856@ MSG_DF_TEXTREL_ALT1		"textrel"
857@ MSG_DF_BIND_NOW		"DF_BIND_NOW"		# 0x00000008
858@ MSG_DF_BIND_NOW_ALT1		"bind_now"
859@ MSG_DF_STATIC_TLS		"DF_STATIC_TLS"		# 0x00000010
860@ MSG_DF_STATIC_TLS_ALT1	"static_tls"
861
862
863# DT_POSFLAG_1 .dynamic entry
864
865@ MSG_DF_P1_LAZYLOAD		"DF_P1_LAZYLOAD"	# 0x00000001
866@ MSG_DF_P1_LAZYLOAD_ALT1	"lazyload"
867@ MSG_DF_P1_GROUPPERM		"DF_P1_GROUPPERM"	# 0x00000002
868@ MSG_DF_P1_GROUPPERM_ALT1	"groupperm"
869
870
871# DT_FLAGS_1 .dynamic entry
872
873@ MSG_DF_1_NOW			"DF_1_NOW"		# 0x00000001
874@ MSG_DF_1_NOW_ALT1		"now"
875@ MSG_DF_1_GLOBAL		"DF_1_GLOBAL"		# 0x00000002
876@ MSG_DF_1_GLOBAL_ALT1		"global"
877@ MSG_DF_1_GROUP		"DF_1_GROUP"		# 0x00000004
878@ MSG_DF_1_GROUP_ALT1		"group"
879@ MSG_DF_1_NODELETE		"DF_1_NODELETE"		# 0x00000008
880@ MSG_DF_1_NODELETE_ALT1	"nodelete"
881@ MSG_DF_1_LOADFLTR		"DF_1_LOADFLTR"		# 0x00000010
882@ MSG_DF_1_LOADFLTR_ALT1	"loadfltr"
883@ MSG_DF_1_INITFIRST		"DF_1_INITFIRST"	# 0x00000020
884@ MSG_DF_1_INITFIRST_ALT1	"initfirst"
885@ MSG_DF_1_NOOPEN		"DF_1_NOOPEN"		# 0x00000040
886@ MSG_DF_1_NOOPEN_ALT1		"noopen"
887@ MSG_DF_1_ORIGIN		"DF_1_ORIGIN"		# 0x00000080
888@ MSG_DF_1_ORIGIN_ALT1		"origin"
889@ MSG_DF_1_DIRECT		"DF_1_DIRECT"		# 0x00000100
890@ MSG_DF_1_DIRECT_ALT1		"direct"
891@ MSG_DF_1_TRANS		"DF_1_TRANS"		# 0x00000200
892@ MSG_DF_1_TRANS_ALT1		"trans"
893@ MSG_DF_1_INTERPOSE		"DF_1_INTERPOSE"	# 0x00000400
894@ MSG_DF_1_INTERPOSE_ALT1	"interpose"
895@ MSG_DF_1_NODEFLIB		"DF_1_NODEFLIB"		# 0x00000800
896@ MSG_DF_1_NODEFLIB_ALT1	"nodeflib"
897@ MSG_DF_1_NODUMP		"DF_1_NODUMP"		# 0x00001000
898@ MSG_DF_1_NODUMP_ALT1		"nodump"
899@ MSG_DF_1_CONFALT		"DF_1_CONFALT"		# 0x00002000
900@ MSG_DF_1_CONFALT_ALT1		"confalt"
901@ MSG_DF_1_ENDFILTEE		"DF_1_ENDFILTEE"	# 0x00004000
902@ MSG_DF_1_ENDFILTEE_ALT1	"endfiltee"
903@ MSG_DF_1_DISPRELDNE		"DF_1_DISPRELDNE"	# 0x00008000
904@ MSG_DF_1_DISPRELDNE_ALT1	"dispreldne"
905@ MSG_DF_1_DISPRELPND		"DF_1_DISPRELPND"	# 0x00010000
906@ MSG_DF_1_DISPRELPND_ALT1	"disprelpnd"
907@ MSG_DF_1_NODIRECT		"DF_1_NODIRECT"		# 0x00020000
908@ MSG_DF_1_NODIRECT_ALT1	"nodirect"
909@ MSG_DF_1_IGNMULDEF		"DF_1_IGNMULDEF"	# 0x00040000
910@ MSG_DF_1_IGNMULDEF_ALT1	"ignmuldef"
911@ MSG_DF_1_NOKSYMS		"DF_1_NOKSYMS"		# 0x00080000
912@ MSG_DF_1_NOKSYMS_ALT1		"noksyms"
913@ MSG_DF_1_NOHDR		"DF_1_NOHDR"		# 0x00100000
914@ MSG_DF_1_NOHDR_ALT1		"nohdr"
915@ MSG_DF_1_EDITED		"DF_1_EDITED"		# 0x00200000
916@ MSG_DF_1_EDITED_ALT1		"edited"
917@ MSG_DF_1_NORELOC		"DF_1_NORELOC"		# 0x00400000
918@ MSG_DF_1_NORELOC_ALT1		"noreloc"
919@ MSG_DF_1_SYMINTPOSE		"DF_1_SYMINTPOSE"	# 0x00800000
920@ MSG_DF_1_SYMINTPOSE_ALT1	"symintpose"
921@ MSG_DF_1_GLOBAUDIT		"DF_1_GLOBAUDIT"	# 0x01000000
922@ MSG_DF_1_GLOBAUDIT_ALT1	"globaudit"
923
924
925# DT_FEATURE_1 .dynamic entry
926
927@ MSG_DTF_1_PARINIT		"DTF_1_PARINIT"		# 0x00000001
928@ MSG_DTF_1_PARINIT_ALT1	"parinit"
929@ MSG_DTF_1_CONFEXP		"DTF_1_CONFEXP"		# 0x00000002
930@ MSG_DTF_1_CONFEXP_ALT1	"confexp"
931
932
933# EI_* indexes into ELF header e_ident[] array
934
935@ MSG_EI_MAG0			"EI_MAG0"		# 0
936@ MSG_EI_MAG0_ALT1		"mag0"
937@ MSG_EI_MAG1			"EI_MAG1"		# 1
938@ MSG_EI_MAG1_ALT1		"mag1"
939@ MSG_EI_MAG2			"EI_MAG2"		# 2
940@ MSG_EI_MAG2_ALT1		"mag2"
941@ MSG_EI_MAG3			"EI_MAG3"		# 3
942@ MSG_EI_MAG3_ALT1		"mag3"
943@ MSG_EI_CLASS			"EI_CLASS"		# 4
944@ MSG_EI_CLASS_ALT1		"class"
945@ MSG_EI_DATA			"EI_DATA"		# 5
946@ MSG_EI_DATA_ALT1		"data"
947@ MSG_EI_VERSION		"EI_VERSION"		# 6
948@ MSG_EI_VERSION_ALT1		"version"
949@ MSG_EI_OSABI			"EI_OSABI"		# 7
950@ MSG_EI_OSABI_ALT1		"osabi"
951@ MSG_EI_ABIVERSION		"EI_ABIVERSION"		# 8
952@ MSG_EI_ABIVERSION_ALT1	"abiversion"
953
954
955# ET_* type constants
956
957@ MSG_ET_NONE			"ET_NONE"		# 0
958@ MSG_ET_NONE_ALT1		"none"
959@ MSG_ET_REL			"ET_REL"		# 1
960@ MSG_ET_REL_ALT1		"rel"
961@ MSG_ET_EXEC			"ET_EXEC"		# 2
962@ MSG_ET_EXEC_ALT1		"exec"
963@ MSG_ET_DYN			"ET_DYN"		# 3
964@ MSG_ET_DYN_ALT1		"dyn"
965@ MSG_ET_CORE			"ET_CORE"		# 4
966@ MSG_ET_CORE_ALT1		"core"
967
968
969# ELFCLASS* constants
970
971@ MSG_ELFCLASSNONE	"ELFCLASSNONE"			# 0
972@ MSG_ELFCLASSNONE_ALT1	"none"
973@ MSG_ELFCLASS32	"ELFCLASS32"			# 1
974@ MSG_ELFCLASS32_ALT1	"32"
975@ MSG_ELFCLASS64	"ELFCLASS64"			# 2
976@ MSG_ELFCLASS64_ALT1	"64"
977
978
979# ELFDATA* constants
980
981@ MSG_ELFDATANONE	"ELFDATANONE"			# 0
982@ MSG_ELFDATANONE_ALT1	"none"
983@ MSG_ELFDATA2LSB	"ELFDATA2LSB"			# 1
984@ MSG_ELFDATA2LSB_ALT1	"lsb"
985@ MSG_ELFDATA2MSB	"ELFDATA2MSB"			# 2
986@ MSG_ELFDATA2MSB_ALT1	"msb"
987
988
989# Elf header EF_* flags
990
991@ MSG_EF_SPARC_32PLUS		"EF_SPARC_32PLUS"	# 0x000100
992@ MSG_EF_SPARC_32PLUS_ALT1	"sparc_32plus"
993@ MSG_EF_SPARC_SUN_US1		"EF_SPARC_SUN_US1"	# 0x000200
994@ MSG_EF_SPARC_SUN_US1_ALT1	"sparc_sun_us1"
995@ MSG_EF_SPARC_HAL_R1		"EF_SPARC_HAL_R1"	# 0x000400
996@ MSG_EF_SPARC_HAL_R1_ALT1	"sparc_hal_r1"
997@ MSG_EF_SPARC_SUN_US3		"EF_SPARC_SUN_US3"	# x000800
998@ MSG_EF_SPARC_SUN_US3_ALT1	"sparc_sun_us3"
999@ MSG_EF_SPARCV9_MM		"EF_SPARCV9_MM"		# 0x3
1000@ MSG_EF_SPARCV9_MM_ALT1	"sparcv9_mm"
1001@ MSG_EF_SPARCV9_TSO		"EF_SPARCV9_TSO"	# 0x0
1002@ MSG_EF_SPARCV9_TSO_ALT1	"sparcv9_tso"
1003@ MSG_EF_SPARCV9_PSO		"EF_SPARCV9_PSO"	# 0x1
1004@ MSG_EF_SPARCV9_PSO_ALT1	"sparcv9_pso"
1005@ MSG_EF_SPARCV9_RMO		"EF_SPARCV9_RMO"	# 0x2
1006@ MSG_EF_SPARCV9_RMO_ALT1	"sparcv9_rmo"
1007
1008
1009# Elf header EV_* versions
1010
1011@ MSG_EV_NONE		"EV_NONE"			# 0
1012@ MSG_EV_NONE_ALT1	"none"
1013@ MSG_EV_CURRENT	"EV_CURRENT"			# 1
1014@ MSG_EV_CURRENT_ALT1	"current"
1015
1016
1017# EM_* machine names. Note that there is more than one string for some
1018# of these. The main name for each one is the same as it's constant
1019# name in sys/elf.h, and start with the EM_ prefix. The alternative names
1020# are the alternative names provided by libconv.
1021
1022@ MSG_EM_NONE			"EM_NONE"		# 0
1023@ MSG_EM_NONE_ALT1		"none"
1024@ MSG_EM_M32			"EM_M32"		# 1
1025@ MSG_EM_M32_ALT1		"m32"
1026@ MSG_EM_M32_ALT2		"WE32100"
1027@ MSG_EM_SPARC			"EM_SPARC"		# 2
1028@ MSG_EM_SPARC_ALT1		"sparc"
1029@ MSG_EM_386			"EM_386"		# 3
1030@ MSG_EM_386_ALT1		"386"
1031@ MSG_EM_386_ALT2		"80386"
1032@ MSG_EM_68K			"EM_68K"		# 4
1033@ MSG_EM_68K_ALT1		"68k"
1034@ MSG_EM_68K_ALT2		"68000"
1035@ MSG_EM_88K			"EM_88K"		# 5
1036@ MSG_EM_88K_ALT1		"88k"
1037@ MSG_EM_88K_ALT2		"88000"
1038@ MSG_EM_486			"EM_486"		# 6
1039@ MSG_EM_486_ALT1		"486"
1040@ MSG_EM_486_ALT2		"80486"
1041@ MSG_EM_860			"EM_860"		# 7
1042@ MSG_EM_860_ALT1		"860"
1043@ MSG_EM_860_ALT2		"i860"
1044@ MSG_EM_MIPS			"EM_MIPS"		# 8
1045@ MSG_EM_MIPS_ALT1		"mips"
1046@ MSG_EM_MIPS_ALT2		"rs3000_be"
1047@ MSG_EM_S370			"EM_S370"		# 9
1048@ MSG_EM_S370_ALT1		"s370"
1049@ MSG_EM_MIPS_RS3_LE		"EM_MIPS_RS3_LE"	# 10
1050@ MSG_EM_MIPS_RS3_LE_ALT1	"mips_rs3_le"
1051@ MSG_EM_MIPS_RS3_LE_ALT2	"RS3000_LE"
1052@ MSG_EM_RS6000			"EM_RS6000"		# 11
1053@ MSG_EM_RS6000_ALT1		"rs6000"
1054@ MSG_EM_PA_RISC		"EM_PA_RISC"		# 15
1055@ MSG_EM_PA_RISC_ALT1		"pa_risc"
1056@ MSG_EM_NCUBE			"EM_nCUBE"		# 16
1057@ MSG_EM_NCUBE_ALT1		"ncube"
1058@ MSG_EM_VPP500			"EM_VPP500"		# 17
1059@ MSG_EM_VPP500_ALT1		"vpp500"
1060@ MSG_EM_SPARC32PLUS		"EM_SPARC32PLUS"	# 18
1061@ MSG_EM_SPARC32PLUS_ALT1	"sparc32plus"
1062@ MSG_EM_960			"EM_960"		# 19
1063@ MSG_EM_960_ALT1		"960"
1064@ MSG_EM_PPC			"EM_PPC"		# 20
1065@ MSG_EM_PPC_ALT1		"ppc"
1066@ MSG_EM_PPC_ALT2		"PowerPC"
1067@ MSG_EM_PPC64			"EM_PPC64"		#21
1068@ MSG_EM_PPC64_ALT1		"ppc64"
1069@ MSG_EM_PPC64_ALT2		"PowerPC64"
1070@ MSG_EM_S390			"EM_S390"		#22
1071@ MSG_EM_S390_ALT1		"s390"
1072@ MSG_EM_V800			"EM_V800"		#36
1073@ MSG_EM_V800_ALT1		"v800"
1074@ MSG_EM_FR20			"EM_FR20"		#37
1075@ MSG_EM_FR20_ALT1		"fr20"
1076@ MSG_EM_RH32			"EM_RH32"		#38
1077@ MSG_EM_RH32_ALT1		"rh32"
1078@ MSG_EM_RCE			"EM_RCE"		#39
1079@ MSG_EM_RCE_ALT1		"rce"
1080@ MSG_EM_ARM			"EM_ARM"		#40
1081@ MSG_EM_ARM_ALT1		"arm"
1082@ MSG_EM_ALPHA			"EM_ALPHA"		#41
1083@ MSG_EM_ALPHA_ALT1		"alpha"
1084@ MSG_EM_SH			"EM_SH"			#42
1085@ MSG_EM_SH_ALT1		"sh"
1086@ MSG_EM_SPARCV9		"EM_SPARCV9"		#43
1087@ MSG_EM_SPARCV9_ALT1		"sparcv9"
1088@ MSG_EM_TRICORE		"EM_TRICORE"		#44
1089@ MSG_EM_TRICORE_ALT1		"tricore"
1090@ MSG_EM_ARC			"EM_ARC"		#45
1091@ MSG_EM_ARC_ALT1		"arc"
1092@ MSG_EM_H8_300			"EM_H8_300"		#46
1093@ MSG_EM_H8_300_ALT1		"h8_300"
1094@ MSG_EM_H8_300H		"EM_H8_300H"		#47
1095@ MSG_EM_H8_300H_ALT1		"h8_300h"
1096@ MSG_EM_H8S			"EM_H8S"		#48
1097@ MSG_EM_H8S_ALT1		"h8s"
1098@ MSG_EM_H8_500			"EM_H8_500"		#49
1099@ MSG_EM_H8_500_ALT1		"h8_500"
1100@ MSG_EM_IA_64			"EM_IA_64"		#50
1101@ MSG_EM_IA_64_ALT1		"ia_64"
1102@ MSG_EM_MIPS_X			"EM_MIPS_X"		#51
1103@ MSG_EM_MIPS_X_ALT1		"mips_x"
1104@ MSG_EM_COLDFIRE		"EM_COLDFIRE"		#52
1105@ MSG_EM_COLDFIRE_ALT1		"coldfire"
1106@ MSG_EM_68HC12			"EM_68HC12"		#53
1107@ MSG_EM_68HC12_ALT1		"68hc12"
1108@ MSG_EM_MMA			"EM_MMA"		#54
1109@ MSG_EM_MMA_ALT1		"mma"
1110@ MSG_EM_PCP			"EM_PCP"		#55
1111@ MSG_EM_PCP_ALT1		"pcp"
1112@ MSG_EM_NCPU			"EM_NCPU"		#56
1113@ MSG_EM_NCPU_ALT1		"ncpu"
1114@ MSG_EM_NDR1			"EM_NDR1"		#57
1115@ MSG_EM_NDR1_ALT1		"ndr1"
1116@ MSG_EM_STARCORE		"EM_STARCORE"		#58
1117@ MSG_EM_STARCORE_ALT1		"starcore"
1118@ MSG_EM_ME16			"EM_ME16"		#59
1119@ MSG_EM_ME16_ALT1		"me16"
1120@ MSG_EM_ST100			"EM_ST100"		#60
1121@ MSG_EM_ST100_ALT1		"st100"
1122@ MSG_EM_TINYJ			"EM_TINYJ"		#61
1123@ MSG_EM_TINYJ_ALT1		"tinyj"
1124@ MSG_EM_AMD64			"EM_AMD64"		#62
1125@ MSG_EM_AMD64_ALT1		"amd64"
1126@ MSG_EM_PDSP			"EM_PDSP"		#63
1127@ MSG_EM_PDSP_ALT1		"pdsp"
1128@ MSG_EM_FX66			"EM_FX66"		#66
1129@ MSG_EM_FX66_ALT1		"fx66"
1130@ MSG_EM_ST9PLUS		"EM_ST9PLUS"		#67
1131@ MSG_EM_ST9PLUS_ALT1		"st9plus"
1132@ MSG_EM_ST7			"EM_ST7"		#68
1133@ MSG_EM_ST7_ALT1		"st7"
1134@ MSG_EM_68HC16			"EM_68HC16"		#69
1135@ MSG_EM_68HC16_ALT1		"68hc16"
1136@ MSG_EM_68HC11			"EM_68HC11"		#70
1137@ MSG_EM_68HC11_ALT1		"68hc11"
1138@ MSG_EM_68HC08			"EM_68HC08"		#71
1139@ MSG_EM_68HC08_ALT1		"68hc08"
1140@ MSG_EM_68HC05			"EM_68HC05"		#72
1141@ MSG_EM_68HC05_ALT1		"68hc05"
1142@ MSG_EM_SVX			"EM_SVX"		#73
1143@ MSG_EM_SVX_ALT1		"svx"
1144@ MSG_EM_ST19			"EM_ST19"		#74
1145@ MSG_EM_ST19_ALT1		"st19"
1146@ MSG_EM_VAX			"EM_VAX"		#75
1147@ MSG_EM_VAX_ALT1		"vax"
1148@ MSG_EM_CRIS			"EM_CRIS"		#76
1149@ MSG_EM_CRIS_ALT1		"cris"
1150@ MSG_EM_JAVELIN		"EM_JAVELIN"		#77
1151@ MSG_EM_JAVELIN_ALT1		"javelin"
1152@ MSG_EM_FIREPATH		"EM_FIREPATH"		#78
1153@ MSG_EM_FIREPATH_ALT1		"firepath"
1154@ MSG_EM_ZSP			"EM_ZSP"		#79
1155@ MSG_EM_ZSP_ALT1		"zsp"
1156@ MSG_EM_MMIX			"EM_MMIX"		#80
1157@ MSG_EM_MMIX_ALT1		"mmix"
1158@ MSG_EM_HUANY			"EM_HUANY"		#81
1159@ MSG_EM_HUANY_ALT1		"huany"
1160@ MSG_EM_PRISM			"EM_PRISM"		#82
1161@ MSG_EM_PRISM_ALT1		"prism"
1162@ MSG_EM_AVR			"EM_AVR"		#83
1163@ MSG_EM_AVR_ALT1		"avr"
1164@ MSG_EM_FR30			"EM_FR30"		#84
1165@ MSG_EM_FR30_ALT1		"fr30"
1166@ MSG_EM_D10V			"EM_D10V"		#85
1167@ MSG_EM_D10V_ALT1		"d10v"
1168@ MSG_EM_D30V			"EM_D30V"		#86
1169@ MSG_EM_D30V_ALT1		"d30v"
1170@ MSG_EM_V850			"EM_V850"		#87
1171@ MSG_EM_V850_ALT1		"v850"
1172@ MSG_EM_M32R			"EM_M32R"		#88
1173@ MSG_EM_M32R_ALT1		"m32r"
1174@ MSG_EM_MN10300		"EM_MN10300"		#89
1175@ MSG_EM_MN10300_ALT1		"mn10300"
1176@ MSG_EM_MN10200		"EM_MN10200"		#90
1177@ MSG_EM_MN10200_ALT1		"mn10200"
1178@ MSG_EM_PJ			"EM_PJ"			#91
1179@ MSG_EM_PJ_ALT1		"pj"
1180@ MSG_EM_OPENRISC		"EM_OPENRISC"		#92
1181@ MSG_EM_OPENRISC_ALT1		"openrisc"
1182@ MSG_EM_ARC_A5			"EM_ARC_A5"		#93
1183@ MSG_EM_ARC_A5_ALT1		"arc_a5"
1184@ MSG_EM_XTENSA			"EM_XTENSA"		#94
1185@ MSG_EM_XTENSA_ALT1		"xtensa"
1186
1187
1188
1189# ELFOSABI names
1190
1191@ MSG_ELFOSABI_NONE		"ELFOSABI_NONE"
1192@ MSG_ELFOSABI_NONE_ALT1	"none"
1193@ MSG_ELFOSABI_SYSV		"ELFOSABI_SYSV"
1194@ MSG_ELFOSABI_SYSV_ALT1	"sysv"
1195@ MSG_ELFOSABI_HPUX		"ELFOSABI_HPUX"
1196@ MSG_ELFOSABI_HPUX_ALT1	"hpux"
1197@ MSG_ELFOSABI_NETBSD		"ELFOSABI_NETBSD"
1198@ MSG_ELFOSABI_NETBSD_ALT1	"netbsd"
1199@ MSG_ELFOSABI_LINUX		"ELFOSABI_LINUX"
1200@ MSG_ELFOSABI_LINUX_ALT1	"linux"
1201@ MSG_ELFOSABI_SOLARIS		"ELFOSABI_SOLARIS"
1202@ MSG_ELFOSABI_SOLARIS_ALT1	"solaris"
1203@ MSG_ELFOSABI_AIX		"ELFOSABI_AIX"
1204@ MSG_ELFOSABI_AIX_ALT1		"aix"
1205@ MSG_ELFOSABI_IRIX		"ELFOSABI_IRIX"
1206@ MSG_ELFOSABI_IRIX_ALT1	"irix"
1207@ MSG_ELFOSABI_FREEBSD		"ELFOSABI_FREEBSD"
1208@ MSG_ELFOSABI_FREEBSD_ALT1	"freebsd"
1209@ MSG_ELFOSABI_TRU64		"ELFOSABI_TRU64"
1210@ MSG_ELFOSABI_TRU64_ALT1	"tru64"
1211@ MSG_ELFOSABI_MODESTO		"ELFOSABI_MODESTO"
1212@ MSG_ELFOSABI_MODESTO_ALT1	"modesto"
1213@ MSG_ELFOSABI_OPENBSD		"ELFOSABI_OPENBSD"
1214@ MSG_ELFOSABI_OPENBSD_ALT1	"openbsd"
1215@ MSG_ELFOSABI_OPENVMS		"ELFOSABI_OPENVMS"
1216@ MSG_ELFOSABI_OPENVMS_ALT1	"openvms"
1217@ MSG_ELFOSABI_NSK		"ELFOSABI_NSK"
1218@ MSG_ELFOSABI_NSK_ALT1		"nsk"
1219@ MSG_ELFOSABI_AROS		"ELFOSABI_AROS"
1220@ MSG_ELFOSABI_AROS_ALT1	"aros"
1221@ MSG_ELFOSABI_ARM		"ELFOSABI_ARM"
1222@ MSG_ELFOSABI_ARM_ALT1		"arm"
1223@ MSG_ELFOSABI_STANDALONE	"ELFOSABI_STANDALONE"
1224@ MSG_ELFOSABI_STANDALONE_ALT1	"standalone"
1225
1226
1227# Program header PT_ segment types
1228
1229@ MSG_PT_NULL			"PT_NULL"		# 0
1230@ MSG_PT_NULL_ALT1		"null"
1231@ MSG_PT_LOAD			"PT_LOAD"		# 1
1232@ MSG_PT_LOAD_ALT1		"load"
1233@ MSG_PT_DYNAMIC		"PT_DYNAMIC"		# 2
1234@ MSG_PT_DYNAMIC_ALT1		"dynamic"
1235@ MSG_PT_INTERP			"PT_INTERP"		# 3
1236@ MSG_PT_INTERP_ALT1		"interp"
1237@ MSG_PT_NOTE			"PT_NOTE"		# 4
1238@ MSG_PT_NOTE_ALT1		"note"
1239@ MSG_PT_SHLIB			"PT_SHLIB"		# 5
1240@ MSG_PT_SHLIB_ALT1		"shlib"
1241@ MSG_PT_PHDR			"PT_PHDR"		# 6
1242@ MSG_PT_PHDR_ALT1		"phdr"
1243@ MSG_PT_TLS			"PT_TLS"		# 7
1244@ MSG_PT_TLS_ALT1		"tls"
1245@ MSG_PT_SUNW_UNWIND		"PT_SUNW_UNWIND"	# 0x6464e550
1246@ MSG_PT_SUNW_UNWIND_ALT1	"sunw_unwind"
1247@ MSG_PT_SUNW_EH_FRAME		"PT_SUNW_EH_FRAME"	# 0x6474e550
1248@ MSG_PT_SUNW_EH_FRAME_ALT1	"sunw_eh_frame"
1249@ MSG_PT_SUNWBSS		"PT_SUNWBSS"		# 0x6ffffffa
1250@ MSG_PT_SUNWBSS_ALT1		"sunwbss"
1251@ MSG_PT_SUNWSTACK		"PT_SUNWSTACK"		# 0x6ffffffb
1252@ MSG_PT_SUNWSTACK_ALT1		"sunwstack"
1253@ MSG_PT_SUNWDTRACE		"PT_SUNWDTRACE"		# 0x6ffffffc
1254@ MSG_PT_SUNWDTRACE_ALT1	"sunwdtrace"
1255@ MSG_PT_SUNWCAP		"PT_SUNWCAP"		# 0x6ffffffd
1256@ MSG_PT_SUNWCAP_ALT1		"sunwcap"
1257
1258
1259# Program header PF_ segment flags
1260
1261@ MSG_PF_X			"PF_X"			# 0x1
1262@ MSG_PF_X_ALT1			"x"
1263@ MSG_PF_W			"PF_W"			# 0x2
1264@ MSG_PF_W_ALT1			"w"
1265@ MSG_PF_R			"PF_R"			# 0x4
1266@ MSG_PF_R_ALT1			"r"
1267
1268
1269# Section header SHF_* flags
1270
1271@ MSG_SHF_WRITE			"SHF_WRITE"		# 0x01
1272@ MSG_SHF_WRITE_ALT1		"write"
1273@ MSG_SHF_ALLOC			"SHF_ALLOC"		# 0x02
1274@ MSG_SHF_ALLOC_ALT1		"alloc"
1275@ MSG_SHF_EXECINSTR		"SHF_EXECINSTR"		# 0x04
1276@ MSG_SHF_EXECINSTR_ALT1	"execinstr"
1277@ MSG_SHF_MERGE			"SHF_MERGE"		# 0x10
1278@ MSG_SHF_MERGE_ALT1		"merge"
1279@ MSG_SHF_STRINGS		"SHF_STRINGS"		# 0x20
1280@ MSG_SHF_STRINGS_ALT1		"strings"
1281@ MSG_SHF_INFO_LINK		"SHF_INFO_LINK"		# 0x40
1282@ MSG_SHF_INFO_LINK_ALT1	"info_link"
1283@ MSG_SHF_LINK_ORDER		"SHF_LINK_ORDER"	# 0x80
1284@ MSG_SHF_LINK_ORDER_ALT1	"link_order"
1285@ MSG_SHF_OS_NONCONFORMING	"SHF_OS_NONCONFORMING"	# 0x100
1286@ MSG_SHF_OS_NONCONFORMING_ALT1	"os_nonconforming"
1287@ MSG_SHF_GROUP			"SHF_GROUP"		# 0x200
1288@ MSG_SHF_GROUP_ALT1		"group"
1289@ MSG_SHF_TLS			"SHF_TLS"		# 0x400
1290@ MSG_SHF_TLS_ALT1		"tls"
1291@ MSG_SHF_AMD64_LARGE		"SHF_AMD64_LARGE"	# 0x10000000
1292@ MSG_SHF_AMD64_LARGE_ALT1	"amd64_large"
1293@ MSG_SHF_ORDERED		"SHF_ORDERED"		# 0x40000000
1294@ MSG_SHF_ORDERED_ALT1		"ordered"
1295@ MSG_SHF_EXCLUDE		"SHF_EXCLUDE"		# 0x80000000
1296@ MSG_SHF_EXCLUDE_ALT1		"exclude"
1297
1298
1299# Names of st_info ELF_ST_BIND symbol binding constants
1300
1301@ MSG_STB_LOCAL			"STB_LOCAL"		# 0
1302@ MSG_STB_LOCAL_ALT1		"local"
1303@ MSG_STB_GLOBAL		"STB_GLOBAL"		# 1
1304@ MSG_STB_GLOBAL_ALT1		"global"
1305@ MSG_STB_WEAK			"STB_WEAK"		# 2
1306@ MSG_STB_WEAK_ALT1		"weak"
1307
1308
1309# Names of st_info ELF_ST_TYPE symbol type constants
1310
1311@ MSG_STT_NOTYPE		"STT_NOTYPE"		# 0
1312@ MSG_STT_NOTYPE_ALT1		"notype"
1313@ MSG_STT_OBJECT		"STT_OBJECT"		# 1
1314@ MSG_STT_OBJECT_ALT1		"object"
1315@ MSG_STT_FUNC			"STT_FUNC"		# 2
1316@ MSG_STT_FUNC_ALT1		"func"
1317@ MSG_STT_SECTION		"STT_SECTION"		# 3
1318@ MSG_STT_SECTION_ALT1		"section"
1319@ MSG_STT_FILE			"STT_FILE"		# 4
1320@ MSG_STT_FILE_ALT1		"file"
1321@ MSG_STT_COMMON		"STT_COMMON"		# 5
1322@ MSG_STT_COMMON_ALT1		"common"
1323@ MSG_STT_TLS			"STT_TLS"		# 6
1324@ MSG_STT_TLS_ALT1		"tls"
1325
1326
1327# Names of st_other ELF_ST_VISIBILITY symbol visibility constants
1328
1329@ MSG_STV_DEFAULT		"STV_DEFAULT"		# 0
1330@ MSG_STV_DEFAULT_ALT1		"default"
1331@ MSG_STV_INTERNAL		"STV_INTERNAL"		# 1
1332@ MSG_STV_INTERNAL_ALT1		"internal"
1333@ MSG_STV_HIDDEN		"STV_HIDDEN"		# 2
1334@ MSG_STV_HIDDEN_ALT1		"hidden"
1335@ MSG_STV_PROTECTED		"STV_PROTECTED"		# 3
1336@ MSG_STV_PROTECTED_ALT1	"protected"
1337@ MSG_STV_EXPORTED		"STV_EXPORTED"		# 4
1338@ MSG_STV_EXPORTED_ALT1		"exported"
1339@ MSG_STV_SINGLETON		"STV_SINGLETON"		# 5
1340@ MSG_STV_SINGLETON_ALT1	"singleton"
1341@ MSG_STV_ELIMINATE		"STV_ELIMINATE"		# 6
1342@ MSG_STV_ELIMINATE_ALT1	"eliminate"
1343
1344
1345# Names of si_boundto SYMINFO_BT_ symbol type constants
1346
1347@ MSG_SYMINFO_BT_SELF		"SYMINFO_BT_SELF"	# 0xffff
1348@ MSG_SYMINFO_BT_SELF_ALT1	"self"
1349@ MSG_SYMINFO_BT_PARENT		"SYMINFO_BT_PARENT"	# 0xfffe
1350@ MSG_SYMINFO_BT_PARENT_ALT1	"parent"
1351@ MSG_SYMINFO_BT_NONE		"SYMINFO_BT_NONE"	# 0xfffd
1352@ MSG_SYMINFO_BT_NONE_ALT1	"none"
1353
1354
1355# Names of si_flags SYMINFO_FLG_ symbol type constants
1356
1357@ MSG_SYMINFO_FLG_DIRECT		"SYMINFO_FLG_DIRECT"		# 0x01
1358@ MSG_SYMINFO_FLG_DIRECT_ALT1		"direct"
1359@ MSG_SYMINFO_FLG_COPY			"SYMINFO_FLG_COPY"		# 0x04
1360@ MSG_SYMINFO_FLG_COPY_ALT1		"copy"
1361@ MSG_SYMINFO_FLG_LAZYLOAD		"SYMINFO_FLG_LAZYLOAD"		# 0x08
1362@ MSG_SYMINFO_FLG_LAZYLOAD_ALT1		"lazyload"
1363@ MSG_SYMINFO_FLG_DIRECTBIND		"SYMINFO_FLG_DIRECTBIND"	# 0x10
1364@ MSG_SYMINFO_FLG_DIRECTBIND_ALT1	"directbind"
1365@ MSG_SYMINFO_FLG_NOEXTDIRECT		"SYMINFO_FLG_NOEXTDIRECT"	# 0x20
1366@ MSG_SYMINFO_FLG_NOEXTDIRECT_ALT1	"noextdirect"
1367
1368
1369# Names of capabilities section CA_ tag
1370
1371@ MSG_CA_SUNW_NULL		"CA_SUNW_NULL"		# 0
1372@ MSG_CA_SUNW_NULL_ALT1		"null"
1373@ MSG_CA_SUNW_HW_1		"CA_SUNW_HW_1"		# 1
1374@ MSG_CA_SUNW_HW_1_ALT1		"hw_1"
1375@ MSG_CA_SUNW_SF_1		"CA_SUNW_SF_1"		# 2
1376@ MSG_CA_SUNW_SF_1_ALT1		"sf_1"
1377
1378# ISA strings. These could be separated into separate message modules
1379# on a per-platform basis if their size became large, but this is probably
1380# cheaper for this small set of strings.
1381@ MSG_ISA_SPARC_32	"sparc"
1382@ MSG_ISA_SPARC_64	"sparcv9"
1383@ MSG_ISA_X86_32	"i386"
1384@ MSG_ISA_X86_64	"amd64"
1385
1386# Format strings
1387
1388@ MSG_FMT_BLDPATH	"%s/%s"
1389@ MSG_FMT_BLDSOPATH	"%s/%s.so"
1390@ MSG_FMT_MODCMD	"%s:%s"
1391@ MSG_FMT_SYSCMD	"[sys]:%s"
1392@ MSG_FMT_WORDVAL	"%u"
1393@ MSG_FMT_WRAPUSAGE	"\n%s"
1394@ MSG_FMT_SECMSGPRE	"[%d: %s]"
1395
1396# Miscellaneous clutter
1397
1398@ MSG_STR_NULL		""
1399@ MSG_STR_ARG		"arg"
1400@ MSG_STR_SP_BAR_SP	" | "
1401@ MSG_STR_ELIPSES	"..."
1402@ MSG_STR_OPTIONS	"ade:L:o:rw"
1403@ MSG_STR_ELFEDIT	"elfedit: "
1404@ MSG_STR_PROMPT	"> "
1405@ MSG_STR_NL		"\n"
1406@ MSG_STR_TAB		"\t"
1407@ MSG_STR_BINCP		"/bin/cp"
1408@ MSG_STR_BINMORE	"/bin/more"
1409@ MSG_STR_PAGER		"PAGER"
1410@ MSG_STR_ELFEDITINIT32	"elfedit32_init"
1411@ MSG_STR_ELFEDITINIT64	"elfedit64_init"
1412@ MSG_STR_HLPINDENT	"   ";
1413@ MSG_STR_HLPUSEINDENT	"        ";
1414@ MSG_STR_HLPSUMINDENT	"              ";
1415@ MSG_STR_HLPOPTARG	"%s";
1416@ MSG_STR_HLPOPTARG2	"%s %s";
1417@ MSG_STR_ENVVAR	"ELFEDIT_PATH"
1418@ MSG_STR_MODPATH	"%r/usr/lib/elfedit/%I"
1419@ MSG_STR_EMPTY		""
1420@ MSG_STR_DOT		"."
1421@ MSG_STR_COLON		":"
1422@ MSG_STR_SPACE		" "
1423@ MSG_STR_COMMA_SP	", "
1424@ MSG_STR_CPAREN	")"
1425@ MSG_STR_DOTSO		".so"
1426@ MSG_STR_MINUS_MINUS	"--"
1427@ MSG_STR_MINUS_A	"-a"
1428@ MSG_STR_MINUS_AND	"-and"
1429@ MSG_STR_MINUS_CMP	"-cmp"
1430@ MSG_STR_MINUS_F	"-f"
1431@ MSG_STR_MINUS_S	"-s"
1432@ MSG_STR_MINUS_O	"-o"
1433@ MSG_STR_MINUS_OR	"-or"
1434@ MSG_STR_MODNAME	"modname"
1435@ MSG_STR_TRUE		"true"
1436@ MSG_STR_FALSE		"false"
1437@ MSG_STR_ON		"on"
1438@ MSG_STR_OFF		"off"
1439@ MSG_STR_YES		"yes"
1440@ MSG_STR_NO		"no"
1441@ MSG_STR_0		"0"
1442@ MSG_STR_1		"1"
1443@ MSG_STR_A		"a"
1444@ MSG_STR_D		"d"
1445@ MSG_STR_F		"f"
1446@ MSG_STR_N		"n"
1447@ MSG_STR_O		"o"
1448@ MSG_STR_OPTION	"option"
1449@ MSG_STR_T		"t"
1450@ MSG_STR_VALUE		"value"
1451@ MSG_STR_W		"w"
1452@ MSG_STR_Y		"y"
1453@ MSG_STR_DEFAULT		"default"
1454@ MSG_STR_MINUS_O_DEFAULT	"-odefault"
1455@ MSG_STR_SIMPLE		"simple"
1456@ MSG_STR_MINUS_O_SIMPLE	"-osimple"
1457@ MSG_STR_NUM			"num"
1458@ MSG_STR_MINUS_O_NUM		"-onum"
1459@ MSG_STR_OUTSTYLE	"outstyle"
1460
1461
1462# Format strings for sys:help
1463@ MSG_HLPFMT_MULTIHDR	"::::::::::::::\n%s\n::::::::::::::\n"
1464@ MSG_HLPFMT_NAMDSCCOL	"   %-15s%s\n"
1465@ MSG_HLPFMT_NAMDSCHDR	"%s - %s\n"
1466@ MSG_HLPFMT_NAMSUMHDR	"      %s - %s\n"
1467@ MSG_HLPFMT_PATHELT	"       %s\n"
1468@ MSG_HLPFMT_MULTNAM	"%s ("
1469
1470# name of builtin sys: module
1471
1472@ MSG_MOD_SYS		"sys"
1473
1474# Names of sys: builtin commands
1475@ MSG_SYS_CMD_HELP	"help"
1476@ MSG_SYS_CMD_HELP_A1	"?"
1477@ MSG_SYS_CMD_HELP_A2	"man"
1478@ MSG_SYS_CMD_LOAD	"load"
1479@ MSG_SYS_CMD_QUIT	"quit"
1480@ MSG_SYS_CMD_QUIT_A1	"exit"
1481@ MSG_SYS_CMD_QUIT_A2	"bye"
1482@ MSG_SYS_CMD_SET	"set"
1483@ MSG_SYS_CMD_STATUS	"status"
1484@ MSG_SYS_CMD_UNLOAD	"unload"
1485@ MSG_SYS_CMD_WRITE	"write"
1486@ MSG_SYS_CMD_WRITE_A1	"flush"
1487@ MSG_SYS_CMD_WRITE_A2	"save"
1488