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