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