xref: /illumos-gate/usr/src/cmd/sgs/elfedit/modules/common/str.msg (revision da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0)
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@ _START_
29
30# Message file for elfedit 'str' module
31
32@ MSG_ID_ELFEDIT_STR
33
34
35# Format strings
36@ MSG_FMT_STRTAB	"String Table Section:  %s\n"
37@ MSG_FMT_DYNSTRPAD	"Dynamic String Table Padding \
38			 Region: [%d-%d] (%d bytes)\n"
39@ MSG_FMT_DUMPTITLE	"          index    value\n"
40
41# Debug messages
42
43@ MSG_DEBUG_S_OK	"[%d: %s][%d]: value unchanged: %s\n"
44@ MSG_DEBUG_S_CHG	"[%d: %s][%d]: change from %.*s to %s\n"
45@ MSG_DEBUG_Z_OK	"[%d: %s][%d]: value unchanged\n"
46@ MSG_DEBUG_Z_CHG	"[%d: %s][%d]: inserted %d NULL bytes\n"
47@ MSG_DEBUG_CHGSTR0	"[%d: %s][%d]: ELF warning: element [0] is expected \
48			 to contain a NULL (0) byte, and should not be \
49			 altered: %s\n"
50@ MSG_DEBUG_BADSTRPAD	"[%d: %s]: DT_SUNW_STRPAD value (%#llx) is larger \
51			 than string table section (%#llx), and will be \
52			 ignored\n"
53@ MSG_DEBUG_ADDDYNSTR	"[%d: %s][%d]: Using %d/%d bytes from reserved area \
54			 to add string: %s\n"
55@ MSG_DEBUG_LONGSTR	"[%d: %s][%d]: ELF warning: new string is longer \
56			 than previous value (%d > %d), and will overwrite \
57			 the beginning of the following item\n"
58
59# Errors
60
61@ MSG_ERR_STRNOTFND	"[%d: %s]: String table does not contain string: %s\n"
62@ MSG_ERR_NOFIT		"[%d: %s][%d]: New value would extend past end \
63			 of string table: %s\n"
64@ MSG_ERR_FINALNULL	"[%d: %s][%d]: New value would set final byte of \
65			 string table to non-NULL value: %s\n"
66
67
68
69# Module description
70
71@ MSG_MOD_DESC		"String Table Section"
72
73
74# 1-line description strings
75
76@ MSG_DESC_DUMP		"Dump String Table Section"
77@ MSG_DESC_SET		"Alter Existing String Table Contents"
78@ MSG_DESC_ADD		"Add New String to String Table"
79@ MSG_DESC_ZERO		"Zero String Table Region"
80
81
82# Command option description strings
83
84@ MSG_OPTDESC_END		"\
85   Zero to the end of the string table. The count argument\n\
86   cannot be used in conjunction with -end.\n".
87
88@ MSG_OPTDESC_NOTERM		"\
89   Do not write the null termination for the new string into\n\
90   the string table. This option cannot be used with the final\n\
91   position in the string table. Attempts to do so will result\n\
92   in an error.\n".
93
94@ MSG_OPTDESC_SHNAM		"\
95   Use the string table found in the ELF section with the\n\
96   specified name. If this is a string table section, it\n\
97   is used directly. If it is a section that has an associated\n\
98   symbol table or string table via its sh_link field, then the\n\
99   associated string table is used.\n"
100
101@ MSG_OPTDESC_SHNDX		"\
102   Use the string table found in the ELF section with the\n\
103   specified index. If this is a string table section, it\n\
104   is used directly. If it is a section that has an associated\n\
105   symbol table or string table via its sh_link field, then the\n\
106   associated string table is used.\n"
107
108@ MSG_OPTDESC_SHTYP		"\
109   Locate the first section in the ELF object with the\n\
110   given section type, and use the string table associated\n\
111   with it. If this is a string table section, it is used\n\
112   directly. If it is a section that has an associated\n\
113   symbol table or string table via its sh_link field, then the\n\
114   associated string table is used.\n"
115
116@ MSG_OPTDESC_STRNDX		"\
117   The string argument supplies a numeric index into the\n\
118   string table instead of the string value.\n".
119
120
121# Command argument descriptions
122
123@ MSG_A1_STRING		"String to locate in string table section.\n"
124
125@ MSG_A1_NEWSTRING	"\
126   New string to insert in string table section\n\
127   if not already present.\n"
128
129@ MSG_A2_NEWSTRING	"\
130   New string to overwrite previous value.\n"
131
132@ MSG_A2_COUNT	"\
133   Number of null bytes to write at specified offset.\n"
134
135
136
137# Help strings
138
139@ MSG_HELP_DUMP	"   \
140   The str:dump command is used to display information\n\
141   from a string table section.\n\
142   \n\
143   By default, the string table referenced by the e_shstrndx field\n\
144   of the ELF header is used. The -shnam, -shndx, or -shndx options\n\
145   can be used to select a different string table.\n\
146   \n\
147   If str:dump is called without arguments, every string in the\n\
148   string table is shown. If called with the string argument,\n\
149   the information for that string is displayed.\n"
150
151@ MSG_HELP_SET	"   \
152   The str:set command is used to display or alter the existing\n\
153   contents of the string table section.\n\
154   \n\
155   By default, the string table referenced by the e_shstrndx field\n\
156   of the ELF header is used. The -shnam, -shndx, or -shndx options\n\
157   can be used to select a different string table.\n\
158   \n\
159   The string table offset is normally determined by looking\n\
160   for the specified string in the table and using its offset.\n\
161   Alternatively, the -strndx option can be used to specify an\n\
162   offset directly.\n\
163   \n\
164   If the new-string argument is not present, the current string\n\
165   at the given offset is shown. If new-string is present, it\n\
166   is used to overwrite the contents of the string table at\n\
167   the specified offset. The new string can have any length, as\n\
168   long as it will fit in the existing size of the string table.\n\
169   A terminating null character is always included in the string,\n\
170   unless the -noterm option is specified. However, -noterm cannot\n\
171   be used for the final byte of the string table, which must\n\
172   always be NULL.\n\
173   \n\
174   Note:\n\
175   \n\
176   o\tIf new-string is longer than the existing string at\n\
177   \tthe specified offset, it will overwrite the start of\n\
178   \tthe following string in the string table. Any reference to\n\
179   \tthat following string in the ELF file will then refer to\n\
180   \tthe tail of the new-string.\n\
181   \n\
182   o\tELF files may have other dependencies upon the existing\n\
183   \tname of an item. Changing the string for such a name to\n\
184   \ta different value can create problems for the object and\n\
185   \teven render it unusable.\n\
186   \n\
187   o\tThe dynamic string table (.dynstr) may have an unused area\n\
188   \tat the end, reserved for adding new strings to the table.\n\
189   \tIn this case, the dynamic section will contain a DT_SUNW_STRPAD\n\
190   \tvalue giving the size of the unused space. If str:set is used\n\
191   \tto modify the contents of the unused space, it will adjust\n\
192   \tthe existing value of DT_SUNW_STRPAD to reflect the space used.\n"
193
194@ MSG_HELP_ADD	"   \
195   The str:add command examines the specified string table to\n\
196   determine if it contains the given string. If the string\n\
197   does not exist, str:add will add it to the end, if possible.\n\
198   \n\
199   By default, the string table referenced by the e_shstrndx field\n\
200   of the ELF header is used. The -shnam, -shndx, or -shndx options\n\
201   can be used to select a different string table.\n\
202   \n\
203   It is only possible to add a new string to a string table\n\
204   if the string table in question is the dynamic string table\n\
205   (.dynstr), and if that string table has reserved space at\n\
206   the end, indicated by a DT_SUNW_STRPAD entry in the dynamic\n\
207   section.\n"
208
209@ MSG_HELP_ZERO	"   \
210   The str:zero command is used to set a portion of the specified\n\
211   string table to NULL (0) byte values.\n\
212   \n\
213   By default, the string table referenced by the e_shstrndx field\n\
214   of the ELF header is used. The -shnam, -shndx, or -shndx options\n\
215   can be used to select a different string table.\n\
216   \n\
217   The string table offset is normally determined by looking\n\
218   for the specified string in the table and using its offset.\n\
219   Alternatively, the -strndx option can be used to specify an\n\
220   offset directly.\n\
221   \n\
222   The number of bytes to zero are determined as follows:\n\
223   \n\
224   o\tIf the -end option is specified, all bytes between the\n\
225   \tstarting offset and the end of the string table are zeroed.\n\
226   \n\
227   o\tIf the count argument is present, the number of bytes\n\
228   \tspecified are zeroed.\n\
229   \n\
230   o\tIf neither -end nor count are present, all bytes of the\n\
231   \texisting string at the given offset are zeroed, up to the\n\
232   \texisting null termination.\n\
233   \n\
234   The count argument and -end option are mutually exclusive. Only\n\
235   one of these can be used in a given call to str:zero.\n\
236   \n\
237   Note:\n\
238   \n\
239   o\tELF files may have other dependencies upon the existing\n\
240   \tname of an item. Changing the string for such a name to\n\
241   \ta different value can create problems for the object and\n\
242   \teven render it unusable.\n\
243   \n\
244   o\tThe dynamic string table (.dynstr) may have an unused area\n\
245   \tat the end, reserved for adding new strings to the table.\n\
246   \tIn this case, the dynamic section will contain a\n\
247   \tDT_SUNW_STRPAD value giving the size of the unused space.\n\
248   \tstr:zero does not alter DT_SUNW_STRPAD, or otherwise attempt\n\
249   \tto \"reclaim\" space zeroed at the end of the string table.\n"
250
251
252
253@ _END_
254
255
256# The following strings represent reserved words, files, pathnames and symbols.
257# Reference to this strings is via the MSG_ORIG() macro, and thus no message
258# translation is required.
259
260
261# Miscellaneous clutter
262@ MSG_STR_EMPTY			""
263@ MSG_STR_MINUS_END		"-end"
264@ MSG_STR_MINUS_NOTERM		"-noterm"
265@ MSG_STR_MINUS_SHNAM		"-shnam"
266@ MSG_STR_MINUS_SHNDX		"-shndx"
267@ MSG_STR_MINUS_SHTYP		"-shtyp"
268@ MSG_STR_MINUS_STRNDX		"-strndx"
269@ MSG_STR_COUNT			"count"
270@ MSG_STR_INDEX			"index"
271@ MSG_STR_NAME			"name"
272@ MSG_STR_NEWSTRING		"new-string"
273@ MSG_STR_STRING		"string"
274@ MSG_STR_TYPE			"type"
275
276
277# Format strings
278
279@ MSG_FMT_STRNL			"%s\n"
280@ MSG_FMT_INDEX			"[%lld]"
281@ MSG_FMT_INDEXRANGE		"[%lld-%lld]"
282@ MSG_FMT_DUMPENTRY		"%15s  %s\n"
283@ MSG_FMT_WORDVAL		"%u"
284
285
286# Module name
287
288@ MSG_MOD_NAME		"str"
289
290
291# Command names
292
293@ MSG_CMD_DUMP		"dump"
294@ MSG_CMD_SET		"set"
295@ MSG_CMD_ADD		"add"
296@ MSG_CMD_ZERO		"zero"
297