ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab#
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# CDDL HEADER START
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab#
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# The contents of this file are subject to the terms of the
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# Common Development and Distribution License (the "License").
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# You may not use this file except in compliance with the License.
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab#
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# or http://www.opensolaris.org/os/licensing.
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# See the License for the specific language governing permissions
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# and limitations under the License.
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab#
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# When distributing Covered Code, include this CDDL HEADER in each
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# If applicable, add the following below this CDDL HEADER, with the
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# fields enclosed by brackets "[]" replaced with your own identifying
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# information: Portions Copyright [yyyy] [name of copyright owner]
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab#
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# CDDL HEADER END
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab#
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab#
cce0e03bb2d07f0fe27cabb93acae9c23655859fab# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# Use is subject to license terms.
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab#
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# ident "%Z%%M% %I% %E% SMI"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ _START_
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# Message file for elfedit 'str' module
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_ID_ELFEDIT_STR
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# Format strings
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_FMT_STRTAB "String Table Section: %s\n"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_FMT_DYNSTRPAD "Dynamic String Table Padding \
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab Region: [%d-%d] (%d bytes)\n"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_FMT_DUMPTITLE " index value\n"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# Debug messages
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_DEBUG_S_OK "[%d: %s][%d]: value unchanged: %s\n"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_DEBUG_S_CHG "[%d: %s][%d]: change from %.*s to %s\n"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_DEBUG_Z_OK "[%d: %s][%d]: value unchanged\n"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_DEBUG_Z_CHG "[%d: %s][%d]: inserted %d NULL bytes\n"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_DEBUG_CHGSTR0 "[%d: %s][%d]: ELF warning: element [0] is expected \
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab to contain a NULL (0) byte, and should not be \
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab altered: %s\n"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_DEBUG_BADSTRPAD "[%d: %s]: DT_SUNW_STRPAD value (%#llx) is larger \
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab than string table section (%#llx), and will be \
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab ignored\n"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_DEBUG_ADDDYNSTR "[%d: %s][%d]: Using %d/%d bytes from reserved area \
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab to add string: %s\n"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_DEBUG_LONGSTR "[%d: %s][%d]: ELF warning: new string is longer \
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab than previous value (%d > %d), and will overwrite \
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab the beginning of the following item\n"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# Errors
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_ERR_STRNOTFND "[%d: %s]: String table does not contain string: %s\n"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_ERR_NOFIT "[%d: %s][%d]: New value would extend past end \
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab of string table: %s\n"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_ERR_FINALNULL "[%d: %s][%d]: New value would set final byte of \
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab string table to non-NULL value: %s\n"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# Module description
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_MOD_DESC "String Table Section"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# 1-line description strings
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_DESC_DUMP "Dump String Table Section"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_DESC_SET "Alter Existing String Table Contents"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_DESC_ADD "Add New String to String Table"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_DESC_ZERO "Zero String Table Region"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# Command option description strings
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
cce0e03bb2d07f0fe27cabb93acae9c23655859fab@ MSG_OPTDESC_ANY "\
cce0e03bb2d07f0fe27cabb93acae9c23655859fab Normally, only string table sections (section type SHT_STRTAB)\n\
55ef6355bc6375ad080b10b10660e3528e2b7e6aab or sections with the SHF_STRINGS section flag set are allowed.\n\
55ef6355bc6375ad080b10b10660e3528e2b7e6aab If -any is set, then the specified section is used without\n\
55ef6355bc6375ad080b10b10660e3528e2b7e6aab checking its section type, and will be treated as if it is a\n\
55ef6355bc6375ad080b10b10660e3528e2b7e6aab string table. This can be used to examine sections that are\n\
55ef6355bc6375ad080b10b10660e3528e2b7e6aab known to be in string table format even though they are not\n\
55ef6355bc6375ad080b10b10660e3528e2b7e6aab properly marked as such (i.e. SHT_PROGBITS).\n"
cce0e03bb2d07f0fe27cabb93acae9c23655859fab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_OPTDESC_END "\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab Zero to the end of the string table. The count argument\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab cannot be used in conjunction with -end.\n".
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_OPTDESC_NOTERM "\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab Do not write the null termination for the new string into\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab the string table. This option cannot be used with the final\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab position in the string table. Attempts to do so will result\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab in an error.\n".
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_OPTDESC_SHNAM "\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab Use the string table found in the ELF section with the\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab specified name. If this is a string table section, it\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab is used directly. If it is a section that has an associated\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab symbol table or string table via its sh_link field, then the\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab associated string table is used.\n"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_OPTDESC_SHNDX "\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab Use the string table found in the ELF section with the\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab specified index. If this is a string table section, it\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab is used directly. If it is a section that has an associated\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab symbol table or string table via its sh_link field, then the\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab associated string table is used.\n"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_OPTDESC_SHTYP "\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab Locate the first section in the ELF object with the\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab given section type, and use the string table associated\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab with it. If this is a string table section, it is used\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab directly. If it is a section that has an associated\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab symbol table or string table via its sh_link field, then the\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab associated string table is used.\n"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_OPTDESC_STRNDX "\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab The string argument supplies a numeric index into the\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab string table instead of the string value.\n".
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# Command argument descriptions
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_A1_STRING "String to locate in string table section.\n"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_A1_NEWSTRING "\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab New string to insert in string table section\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab if not already present.\n"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_A2_NEWSTRING "\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab New string to overwrite previous value.\n"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_A2_COUNT "\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab Number of null bytes to write at specified offset.\n"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# Help strings
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_HELP_DUMP " \
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab The str:dump command is used to display information\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab from a string table section.\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab By default, the string table referenced by the e_shstrndx field\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab of the ELF header is used. The -shnam, -shndx, or -shndx options\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab can be used to select a different string table.\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab If str:dump is called without arguments, every string in the\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab string table is shown. If called with the string argument,\n\
cce0e03bb2d07f0fe27cabb93acae9c23655859fab the information for that string is displayed.\n\
cce0e03bb2d07f0fe27cabb93acae9c23655859fab \n\
cce0e03bb2d07f0fe27cabb93acae9c23655859fab The strings are displayed within double quotes. These quotes are\n\
cce0e03bb2d07f0fe27cabb93acae9c23655859fab not part of the actual string, and serve to visually delimit the\n\
cce0e03bb2d07f0fe27cabb93acae9c23655859fab actual string. Printable characters are shown as themselves, while\n\
cce0e03bb2d07f0fe27cabb93acae9c23655859fab non-printable characters are shown using the same notation used\n\
cce0e03bb2d07f0fe27cabb93acae9c23655859fab by the C programming language for literal string constants:\n\
cce0e03bb2d07f0fe27cabb93acae9c23655859fab \n\
cce0e03bb2d07f0fe27cabb93acae9c23655859fab \t\\a\talert (bell)\n\
cce0e03bb2d07f0fe27cabb93acae9c23655859fab \t\\b\tbackspace\n\
cce0e03bb2d07f0fe27cabb93acae9c23655859fab \t\\f\tform feed\n\
cce0e03bb2d07f0fe27cabb93acae9c23655859fab \t\\n\tnewline\n\
cce0e03bb2d07f0fe27cabb93acae9c23655859fab \t\\r\treturn\n\
cce0e03bb2d07f0fe27cabb93acae9c23655859fab \t\\t\thorizontal tab\n\
cce0e03bb2d07f0fe27cabb93acae9c23655859fab \t\\v\tvertical tab\n\
cce0e03bb2d07f0fe27cabb93acae9c23655859fab \t\\\\\tbackslash\n\
cce0e03bb2d07f0fe27cabb93acae9c23655859fab \t\\'\tsingle quote\n\
cce0e03bb2d07f0fe27cabb93acae9c23655859fab \t\\\"\tdouble quote\n\
cce0e03bb2d07f0fe27cabb93acae9c23655859fab \t\\ooo\tAn octal constant, where ooo is one to three\n\
cce0e03bb2d07f0fe27cabb93acae9c23655859fab \t\t\toctal digits (0..7)\n"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_HELP_SET " \
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab The str:set command is used to display or alter the existing\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab contents of the string table section.\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab By default, the string table referenced by the e_shstrndx field\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab of the ELF header is used. The -shnam, -shndx, or -shndx options\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab can be used to select a different string table.\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab The string table offset is normally determined by looking\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab for the specified string in the table and using its offset.\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab Alternatively, the -strndx option can be used to specify an\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab offset directly.\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab If the new-string argument is not present, the current string\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab at the given offset is shown. If new-string is present, it\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab is used to overwrite the contents of the string table at\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab the specified offset. The new string can have any length, as\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab long as it will fit in the existing size of the string table.\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab A terminating null character is always included in the string,\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab unless the -noterm option is specified. However, -noterm cannot\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab be used for the final byte of the string table, which must\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab always be NULL.\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab Note:\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab o\tIf new-string is longer than the existing string at\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \tthe specified offset, it will overwrite the start of\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \tthe following string in the string table. Any reference to\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \tthat following string in the ELF file will then refer to\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \tthe tail of the new-string.\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab o\tELF files may have other dependencies upon the existing\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \tname of an item. Changing the string for such a name to\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \ta different value can create problems for the object and\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \teven render it unusable.\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab o\tThe dynamic string table (.dynstr) may have an unused area\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \tat the end, reserved for adding new strings to the table.\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \tIn this case, the dynamic section will contain a DT_SUNW_STRPAD\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \tvalue giving the size of the unused space. If str:set is used\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \tto modify the contents of the unused space, it will adjust\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \tthe existing value of DT_SUNW_STRPAD to reflect the space used.\n"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_HELP_ADD " \
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab The str:add command examines the specified string table to\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab determine if it contains the given string. If the string\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab does not exist, str:add will add it to the end, if possible.\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab By default, the string table referenced by the e_shstrndx field\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab of the ELF header is used. The -shnam, -shndx, or -shndx options\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab can be used to select a different string table.\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab It is only possible to add a new string to a string table\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab if the string table in question is the dynamic string table\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab (.dynstr), and if that string table has reserved space at\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab the end, indicated by a DT_SUNW_STRPAD entry in the dynamic\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab section.\n"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_HELP_ZERO " \
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab The str:zero command is used to set a portion of the specified\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab string table to NULL (0) byte values.\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab By default, the string table referenced by the e_shstrndx field\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab of the ELF header is used. The -shnam, -shndx, or -shndx options\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab can be used to select a different string table.\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab The string table offset is normally determined by looking\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab for the specified string in the table and using its offset.\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab Alternatively, the -strndx option can be used to specify an\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab offset directly.\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab The number of bytes to zero are determined as follows:\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab o\tIf the -end option is specified, all bytes between the\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \tstarting offset and the end of the string table are zeroed.\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab o\tIf the count argument is present, the number of bytes\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \tspecified are zeroed.\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab o\tIf neither -end nor count are present, all bytes of the\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \texisting string at the given offset are zeroed, up to the\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \texisting null termination.\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab The count argument and -end option are mutually exclusive. Only\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab one of these can be used in a given call to str:zero.\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab Note:\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab o\tELF files may have other dependencies upon the existing\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \tname of an item. Changing the string for such a name to\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \ta different value can create problems for the object and\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \teven render it unusable.\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab o\tThe dynamic string table (.dynstr) may have an unused area\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \tat the end, reserved for adding new strings to the table.\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \tIn this case, the dynamic section will contain a\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \tDT_SUNW_STRPAD value giving the size of the unused space.\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \tstr:zero does not alter DT_SUNW_STRPAD, or otherwise attempt\n\
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab \tto \"reclaim\" space zeroed at the end of the string table.\n"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ _END_
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# The following strings represent reserved words, files, pathnames and symbols.
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# Reference to this strings is via the MSG_ORIG() macro, and thus no message
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# translation is required.
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# Miscellaneous clutter
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_STR_EMPTY ""
cce0e03bb2d07f0fe27cabb93acae9c23655859fab@ MSG_STR_MINUS_ANY "-any"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_STR_MINUS_END "-end"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_STR_MINUS_NOTERM "-noterm"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_STR_MINUS_SHNAM "-shnam"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_STR_MINUS_SHNDX "-shndx"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_STR_MINUS_SHTYP "-shtyp"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_STR_MINUS_STRNDX "-strndx"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_STR_COUNT "count"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_STR_INDEX "index"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_STR_NAME "name"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_STR_NEWSTRING "new-string"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_STR_STRING "string"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_STR_TYPE "type"
cce0e03bb2d07f0fe27cabb93acae9c23655859fab@ MSG_STR_DQUOTE "\""
cce0e03bb2d07f0fe27cabb93acae9c23655859fab@ MSG_STR_DQUOTENL "\"\n"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# Format strings
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_FMT_STRNL "%s\n"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_FMT_INDEX "[%lld]"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_FMT_INDEXRANGE "[%lld-%lld]"
cce0e03bb2d07f0fe27cabb93acae9c23655859fab@ MSG_FMT_DUMPENTRY "%15s "
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# Module name
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_MOD_NAME "str"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab# Command names
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_CMD_DUMP "dump"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_CMD_SET "set"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_CMD_ADD "add"
ad212f6fd387c78d9e1507c5d58c58eb9bdefa66ab@ MSG_CMD_ZERO "zero"