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