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 bytes from reserved area \ 102 to add string: %s\n" 103@ MSG_DEBUG_NULL2DYNFL1 "[%d: %s]: No existing flags1 field to modify. \ 104 Will use extra DT_NULL in slot [%d] \n" 105@ MSG_DEBUG_AUX_LINK "[%d: %s]: Ignoring section: sh_link field references \ 106 non-symbol table section: [%d]\n" 107@ MSG_DEBUG_AUX_SIZE "[%d: %s][%d]: Ignoring section: Not enough elements \ 108 for corresponding symbol table: [%d: %s][%d]\n" 109@ MSG_DEBUG_EXECCMD "command: %s\n" 110@ MSG_DEBUG_SHNAM2NDX "[%d: %s]: section name: %s\n" 111@ MSG_DEBUG_SYMNAM2NDX "[%d: %s][%d]: symbol \"%s\"\n" 112@ MSG_DEBUG_INPLACEWARN "warning: editing input file in place is not \ 113 recommended: %s\n" 114@ MSG_DEBUG_SHNDX_RANGE "Specified section index [%d] is outside of valid \ 115 of range for this object: 0-%d\n" 116@ MSG_DEBUG_ARRCPY_1 "%s: copy array element [%d] to [%d]\n" 117@ MSG_DEBUG_ARRCPY_N "%s: copy array elements [%d-%d] to [%d-%d]\n" 118@ MSG_DEBUG_ARRZERO_1 "%s[%d]: zero array element\n" 119@ MSG_DEBUG_ARRZERO_N "%s[%d-%d]: zero %d array elements\n" 120@ MSG_DEBUG_ARRMOVE_1 "%s: moved element [%d] to [%d]\n" 121@ MSG_DEBUG_ARRMOVE_N "%s: moved %d elements from [%d-%d] to [%d-%d]\n" 122 123# Errors 124 125@ MSG_ERR_NOFILSYSONLY "No ELF object specified. Only commands from \ 126 module sys: are allowed: %s:%s\n" 127@ MSG_ERR_BADOSTYLE "Unrecognized output style \ 128 (default|simple|num): %s\n" 129@ MSG_ERR_BADCONST "internal error: bad constant value in \ 130 elfedit_const_to_atoui()\n" 131@ MSG_ERR_BADGETVAL "internal error: bad required value passed to \ 132 elfedit_XXX_get_value()\n" 133@ MSG_ERR_PATHTOOLONG "path too long: %s/%s.so\n" 134@ MSG_ERR_CNTDLOPEN "unable to load module sharable object %s: %s\n" 135@ MSG_ERR_CNTDLCLOSE "unable to unload module sharable object %s: %s\n" 136@ MSG_ERR_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@ MSG_STV_EXPORTED "STV_EXPORTED" # 4 1325@ MSG_STV_EXPORTED_ALT1 "exported" 1326@ MSG_STV_SINGLETON "STV_SINGLETON" # 5 1327@ MSG_STV_SINGLETON_ALT1 "singleton" 1328@ MSG_STV_ELIMINATE "STV_ELIMINATE" # 6 1329@ MSG_STV_ELIMINATE_ALT1 "eliminate" 1330 1331 1332# Names of si_boundto SYMINFO_BT_ symbol type constants 1333 1334@ MSG_SYMINFO_BT_SELF "SYMINFO_BT_SELF" # 0xffff 1335@ MSG_SYMINFO_BT_SELF_ALT1 "self" 1336@ MSG_SYMINFO_BT_PARENT "SYMINFO_BT_PARENT" # 0xfffe 1337@ MSG_SYMINFO_BT_PARENT_ALT1 "parent" 1338@ MSG_SYMINFO_BT_NONE "SYMINFO_BT_NONE" # 0xfffd 1339@ MSG_SYMINFO_BT_NONE_ALT1 "none" 1340 1341 1342# Names of si_flags SYMINFO_FLG_ symbol type constants 1343 1344@ MSG_SYMINFO_FLG_DIRECT "SYMINFO_FLG_DIRECT" # 0x01 1345@ MSG_SYMINFO_FLG_DIRECT_ALT1 "direct" 1346@ MSG_SYMINFO_FLG_COPY "SYMINFO_FLG_COPY" # 0x04 1347@ MSG_SYMINFO_FLG_COPY_ALT1 "copy" 1348@ MSG_SYMINFO_FLG_LAZYLOAD "SYMINFO_FLG_LAZYLOAD" # 0x08 1349@ MSG_SYMINFO_FLG_LAZYLOAD_ALT1 "lazyload" 1350@ MSG_SYMINFO_FLG_DIRECTBIND "SYMINFO_FLG_DIRECTBIND" # 0x10 1351@ MSG_SYMINFO_FLG_DIRECTBIND_ALT1 "directbind" 1352@ MSG_SYMINFO_FLG_NOEXTDIRECT "SYMINFO_FLG_NOEXTDIRECT" # 0x20 1353@ MSG_SYMINFO_FLG_NOEXTDIRECT_ALT1 "noextdirect" 1354 1355 1356# Names of capabilities section CA_ tag 1357 1358@ MSG_CA_SUNW_NULL "CA_SUNW_NULL" # 0 1359@ MSG_CA_SUNW_NULL_ALT1 "null" 1360@ MSG_CA_SUNW_HW_1 "CA_SUNW_HW_1" # 1 1361@ MSG_CA_SUNW_HW_1_ALT1 "hw_1" 1362@ MSG_CA_SUNW_SF_1 "CA_SUNW_SF_1" # 2 1363@ MSG_CA_SUNW_SF_1_ALT1 "sf_1" 1364 1365# ISA strings. These could be separated into separate message modules 1366# on a per-platform basis if their size became large, but this is probably 1367# cheaper for this small set of strings. 1368@ MSG_ISA_SPARC_32 "sparc" 1369@ MSG_ISA_SPARC_64 "sparcv9" 1370@ MSG_ISA_X86_32 "i386" 1371@ MSG_ISA_X86_64 "amd64" 1372 1373# Format strings 1374 1375@ MSG_FMT_BLDPATH "%s/%s" 1376@ MSG_FMT_BLDSOPATH "%s/%s.so" 1377@ MSG_FMT_MODCMD "%s:%s" 1378@ MSG_FMT_SYSCMD "[sys]:%s" 1379@ MSG_FMT_WORDVAL "%u" 1380@ MSG_FMT_WRAPUSAGE "\n%s" 1381@ MSG_FMT_SECMSGPRE "[%d: %s]" 1382 1383# Miscellaneous clutter 1384 1385@ MSG_STR_NULL "" 1386@ MSG_STR_ARG "arg" 1387@ MSG_STR_SP_BAR_SP " | " 1388@ MSG_STR_ELIPSES "..." 1389@ MSG_STR_OPTIONS "ade:L:o:rw" 1390@ MSG_STR_ELFEDIT "elfedit: " 1391@ MSG_STR_PROMPT "> " 1392@ MSG_STR_NL "\n" 1393@ MSG_STR_TAB "\t" 1394@ MSG_STR_BINCP "/bin/cp" 1395@ MSG_STR_BINMORE "/bin/more" 1396@ MSG_STR_PAGER "PAGER" 1397@ MSG_STR_ELFEDITINIT32 "elfedit32_init" 1398@ MSG_STR_ELFEDITINIT64 "elfedit64_init" 1399@ MSG_STR_HLPINDENT " "; 1400@ MSG_STR_HLPUSEINDENT " "; 1401@ MSG_STR_HLPSUMINDENT " "; 1402@ MSG_STR_HLPOPTARG "%s"; 1403@ MSG_STR_HLPOPTARG2 "%s %s"; 1404@ MSG_STR_ENVVAR "ELFEDIT_PATH" 1405@ MSG_STR_MODPATH "%r/usr/lib/elfedit/%I" 1406@ MSG_STR_EMPTY "" 1407@ MSG_STR_DOT "." 1408@ MSG_STR_COLON ":" 1409@ MSG_STR_SPACE " " 1410@ MSG_STR_COMMA_SP ", " 1411@ MSG_STR_CPAREN ")" 1412@ MSG_STR_DOTSO ".so" 1413@ MSG_STR_MINUS_MINUS "--" 1414@ MSG_STR_MINUS_A "-a" 1415@ MSG_STR_MINUS_AND "-and" 1416@ MSG_STR_MINUS_CMP "-cmp" 1417@ MSG_STR_MINUS_F "-f" 1418@ MSG_STR_MINUS_S "-s" 1419@ MSG_STR_MINUS_O "-o" 1420@ MSG_STR_MINUS_OR "-or" 1421@ MSG_STR_MODNAME "modname" 1422@ MSG_STR_TRUE "true" 1423@ MSG_STR_FALSE "false" 1424@ MSG_STR_ON "on" 1425@ MSG_STR_OFF "off" 1426@ MSG_STR_YES "yes" 1427@ MSG_STR_NO "no" 1428@ MSG_STR_0 "0" 1429@ MSG_STR_1 "1" 1430@ MSG_STR_A "a" 1431@ MSG_STR_D "d" 1432@ MSG_STR_F "f" 1433@ MSG_STR_N "n" 1434@ MSG_STR_O "o" 1435@ MSG_STR_OPTION "option" 1436@ MSG_STR_T "t" 1437@ MSG_STR_VALUE "value" 1438@ MSG_STR_W "w" 1439@ MSG_STR_Y "y" 1440@ MSG_STR_DEFAULT "default" 1441@ MSG_STR_MINUS_O_DEFAULT "-odefault" 1442@ MSG_STR_SIMPLE "simple" 1443@ MSG_STR_MINUS_O_SIMPLE "-osimple" 1444@ MSG_STR_NUM "num" 1445@ MSG_STR_MINUS_O_NUM "-onum" 1446@ MSG_STR_OUTSTYLE "outstyle" 1447 1448 1449# Format strings for sys:help 1450@ MSG_HLPFMT_MULTIHDR "::::::::::::::\n%s\n::::::::::::::\n" 1451@ MSG_HLPFMT_NAMDSCCOL " %-15s%s\n" 1452@ MSG_HLPFMT_NAMDSCHDR "%s - %s\n" 1453@ MSG_HLPFMT_NAMSUMHDR " %s - %s\n" 1454@ MSG_HLPFMT_PATHELT " %s\n" 1455@ MSG_HLPFMT_MULTNAM "%s (" 1456 1457# name of builtin sys: module 1458 1459@ MSG_MOD_SYS "sys" 1460 1461# Names of sys: builtin commands 1462@ MSG_SYS_CMD_HELP "help" 1463@ MSG_SYS_CMD_HELP_A1 "?" 1464@ MSG_SYS_CMD_HELP_A2 "man" 1465@ MSG_SYS_CMD_LOAD "load" 1466@ MSG_SYS_CMD_QUIT "quit" 1467@ MSG_SYS_CMD_QUIT_A1 "exit" 1468@ MSG_SYS_CMD_QUIT_A2 "bye" 1469@ MSG_SYS_CMD_SET "set" 1470@ MSG_SYS_CMD_STATUS "status" 1471@ MSG_SYS_CMD_UNLOAD "unload" 1472@ MSG_SYS_CMD_WRITE "write" 1473@ MSG_SYS_CMD_WRITE_A1 "flush" 1474@ MSG_SYS_CMD_WRITE_A2 "save" 1475