xref: /onnv-gate/usr/src/cmd/sgs/elfedit/modules/common/dyn.msg (revision 5088:26c540f30cd3)
1*5088Sab196087#
2*5088Sab196087# CDDL HEADER START
3*5088Sab196087#
4*5088Sab196087# The contents of this file are subject to the terms of the
5*5088Sab196087# Common Development and Distribution License (the "License").
6*5088Sab196087# You may not use this file except in compliance with the License.
7*5088Sab196087#
8*5088Sab196087# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*5088Sab196087# or http://www.opensolaris.org/os/licensing.
10*5088Sab196087# See the License for the specific language governing permissions
11*5088Sab196087# and limitations under the License.
12*5088Sab196087#
13*5088Sab196087# When distributing Covered Code, include this CDDL HEADER in each
14*5088Sab196087# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*5088Sab196087# If applicable, add the following below this CDDL HEADER, with the
16*5088Sab196087# fields enclosed by brackets "[]" replaced with your own identifying
17*5088Sab196087# information: Portions Copyright [yyyy] [name of copyright owner]
18*5088Sab196087#
19*5088Sab196087# CDDL HEADER END
20*5088Sab196087#
21*5088Sab196087
22*5088Sab196087#
23*5088Sab196087# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
24*5088Sab196087# Use is subject to license terms.
25*5088Sab196087#
26*5088Sab196087# ident	"%Z%%M%	%I%	%E% SMI"
27*5088Sab196087
28*5088Sab196087
29*5088Sab196087@ _START_
30*5088Sab196087
31*5088Sab196087# Message file for elfedit 'dyn' module
32*5088Sab196087
33*5088Sab196087@ MSG_ID_ELFEDIT_DYN
34*5088Sab196087
35*5088Sab196087
36*5088Sab196087# Strings
37*5088Sab196087@ MSG_STR_DEPRECATED	"(deprecated value)"
38*5088Sab196087
39*5088Sab196087# Debug messages
40*5088Sab196087
41*5088Sab196087@ MSG_DEBUG_S_OK	"[%d: %s][%d]: value unchanged: %s\n"
42*5088Sab196087@ MSG_DEBUG_S_CHG	"[%d: %s][%d]: change from %s to %s\n"
43*5088Sab196087@ MSG_DEBUG_X_OK	"[%d: %s][%d]: value unchanged: %#llx\n"
44*5088Sab196087@ MSG_DEBUG_X_CHG	"[%d: %s][%d]: change from %#llx to %#llx\n"
45*5088Sab196087@ MSG_DEBUG_PREVRPATH	"[%d: %s][%d]: Reusing existing %s entry: %s\n"
46*5088Sab196087@ MSG_DEBUG_OLDRPATHOK	"[%d: %s][%d]: Existing %s already has desired \
47*5088Sab196087			 value\n"
48*5088Sab196087@ MSG_DEBUG_CONVNULL	"[%d: %s][%d]: No existing %s to modify. Converting \
49*5088Sab196087			 extra DT_NULL\n"
50*5088Sab196087@ MSG_DEBUG_DT2NDX	"[%d: %s][%d]: Dynamic entry for tag: %s\n"
51*5088Sab196087@ MSG_DEBUG_NULCLIP	"[%d: %s][%d]: ELF warning: null element will cause \
52*5088Sab196087			 the runtime linker to ignore the non-null \
53*5088Sab196087			 elements that follow: %s\n"
54*5088Sab196087@ MSG_DEBUG_NULHIDE	"[%d: %s][%d]: ELF warning: this non-null element \
55*5088Sab196087			 follows the first DT_NULL element, and will be \
56*5088Sab196087			 ignored by the runtime linker: %s\n"
57*5088Sab196087@ MSG_DEBUG_NULLTERM	"[%d: %s][%d]: ELF warning: dynamic section is \
58*5088Sab196087			 must be terminated by a DT_NULL. The runtime linker \
59*5088Sab196087			 will be unable to use this object: %s\n"
60*5088Sab196087@ MSG_DEBUG_DTNULLVALUE	"[%d: %s][%d]: ELF warning: DT_NULL element value \
61*5088Sab196087			 is expected to be 0: %#llx\n"
62*5088Sab196087
63*5088Sab196087
64*5088Sab196087# Errors
65*5088Sab196087
66*5088Sab196087@ MSG_ERR_NODTELT	"[%d: %s]: Dynamic section does not contain tag: %s\n"
67*5088Sab196087@ MSG_ERR_NOEXTRANULL	"[%d: %s]: Dynamic section does not have room to add \
68*5088Sab196087			 a new element\n"
69*5088Sab196087@ MSG_ERR_NORUNPATH	"[%d: %s]: no runpath (DT_RPATH or DT_RUNPATH) found\n"
70*5088Sab196087@ MSG_ERR_NODYNELT	"[%d: %s]: no elements of type %s found\n"
71*5088Sab196087@ MSG_ERR_STRPADSTRVAL	"[%d: %s]: -s option cannot be used with \
72*5088Sab196087			 DT_SUNW_STRPAD dynamic element\n"
73*5088Sab196087
74*5088Sab196087
75*5088Sab196087# Module description
76*5088Sab196087
77*5088Sab196087@ MSG_MOD_DESC		"Dynamic Section"
78*5088Sab196087
79*5088Sab196087
80*5088Sab196087
81*5088Sab196087# 1-line description strings
82*5088Sab196087
83*5088Sab196087@ MSG_DESC_DUMP		"Dump Dynamic Section"
84*5088Sab196087@ MSG_DESC_TAG		"Change element tag"
85*5088Sab196087@ MSG_DESC_VALUE	"Change element value"
86*5088Sab196087@ MSG_DESC_DELETE	"Delete elements"
87*5088Sab196087@ MSG_DESC_MOVE		"Move elements"
88*5088Sab196087@ MSG_DESC_RUNPATH	"Set runpath"
89*5088Sab196087@ MSG_DESC_POSFLAG1	"DT_POSFLAG_1 bit values"
90*5088Sab196087@ MSG_DESC_FLAGS	"DT_FLAGS bit values"
91*5088Sab196087@ MSG_DESC_FLAGS1	"DT_FLAGS_1 bit values"
92*5088Sab196087@ MSG_DESC_FEATURE1	"DT_FEATURE_1 bit values"
93*5088Sab196087@ MSG_DESC_CHECKSUM	"Recompute DT_CHECKSUM"
94*5088Sab196087
95*5088Sab196087
96*5088Sab196087# Commmand option description strings
97*5088Sab196087
98*5088Sab196087@ MSG_OPTDESC_ADD	"\
99*5088Sab196087   By default, dyn:value modifies the first element of the\n\
100*5088Sab196087   dynamic section that has the specified tag type, creating\n\
101*5088Sab196087   a new element only if no element of the specified type\n\
102*5088Sab196087   exists, and if room exists in the file. If -add is specified,\n\
103*5088Sab196087   dyn:value will always create a new element for the new value,\n\
104*5088Sab196087   leaving any existing elements with the same tag untouched.\n"
105*5088Sab196087
106*5088Sab196087@ MSG_OPTDESC_S		"\
107*5088Sab196087   Interpret the value argument as a string rather than an\n\
108*5088Sab196087   integer. If the specified string already exists in the dynamic\n\
109*5088Sab196087   string table, the offset of that string is stored in the\n\
110*5088Sab196087   dynamic entry. If the string does not exist in the string table,\n\
111*5088Sab196087   but there is room to add it, the new string is added and then\n\
112*5088Sab196087   the offset is placed in the dynamic entry.\n"
113*5088Sab196087
114*5088Sab196087@ MSG_OPTDESC_DYNNDX		"\
115*5088Sab196087   Interpret the elt argument as a direct index into the dynamic\n\
116*5088Sab196087   section, rather than as a DT_ tag value.\n"
117*5088Sab196087
118*5088Sab196087
119*5088Sab196087# Command argument description strings
120*5088Sab196087
121*5088Sab196087@ MSG_A1_TAG_ELT	"\
122*5088Sab196087   Dynamic element to be examined or changed. By default, this\n\
123*5088Sab196087   is a DT_ tag value. The index of the first element in the\n\
124*5088Sab196087   dynamic section that has the specified tag value will be used.\n\
125*5088Sab196087   The value specified can be one of the well known DT_ constants,\n\
126*5088Sab196087   or any integer.\n\
127*5088Sab196087   \n\
128*5088Sab196087   If the -dynndx option is specified, elt is instead interpreted\n\
129*5088Sab196087   as a simple integer index into the dynamic section.\n"
130*5088Sab196087
131*5088Sab196087@ MSG_A2_TAG_VALUE	"\
132*5088Sab196087   Value to be set for d_tag field of specified dynamic\n\
133*5088Sab196087   element. Tag values can be specified using the well known\n\
134*5088Sab196087   DT_ symbolic constants from /usr/include/sys/link.h, or\n\
135*5088Sab196087   as integers.\n"
136*5088Sab196087
137*5088Sab196087@ MSG_ARGDESC_ELT	"\
138*5088Sab196087   Element within dynamic section. By default, this is a tag\n\
139*5088Sab196087   value. In this case, the index of the first dynamic element\n\
140*5088Sab196087   with the specified tag value will be used. Tag values can\n\
141*5088Sab196087   be specified using the well known DT_ symbolic constants from\n\
142*5088Sab196087   /usr/include/sys/link.h, or as integers. If the -dynndx\n\
143*5088Sab196087   option is specified, then elt is instead interpreted as a\n\
144*5088Sab196087   direct numeric index into the dynamic section.\n"
145*5088Sab196087
146*5088Sab196087@ MSG_A2_VALUE_VALUE	"\
147*5088Sab196087   Value to set for specified dynamic section element. By\n\
148*5088Sab196087   default, this is a numeric value which is used directly.\n\
149*5088Sab196087   If the -s option is used, this is a string value, and the\n\
150*5088Sab196087   dynamic element will receive the numeric offset of the\n\
151*5088Sab196087   specified string from within the associated dynamic string\n\
152*5088Sab196087   table.\n"
153*5088Sab196087
154*5088Sab196087@ MSG_A2_DELETE_COUNT	"\
155*5088Sab196087   Number of dynamic elements to delete, starting at the\n\
156*5088Sab196087   specified position. This value cannot exceed the number\n\
157*5088Sab196087   of slots remaining in the table below the specified position.\n\
158*5088Sab196087   If count is not supplied, a single element is deleted.\n"
159*5088Sab196087
160*5088Sab196087@ MSG_A2_MOVE_DST_INDEX	"\
161*5088Sab196087   Numeric index within dynamic section to which the element(s)\n\
162*5088Sab196087   should be moved.\n"
163*5088Sab196087
164*5088Sab196087@ MSG_A3_MOVE_COUNT	"\
165*5088Sab196087   Number of dynamic elements to move. This value cannot\n\
166*5088Sab196087   exceed the number of slots remaining in the table below\n\
167*5088Sab196087   the specified position. If count is not supplied, a\n\
168*5088Sab196087   single element is moved.\n"
169*5088Sab196087
170*5088Sab196087@ MSG_A1_RUNPATH_NEWPATH	"\
171*5088Sab196087   New runpath string for the ELF object.\n"
172*5088Sab196087
173*5088Sab196087@ MSG_A1_POSFLAG1_VALUE "\
174*5088Sab196087   Position dependent state flags which are applied to the\n\
175*5088Sab196087   element immediately following. This can be an integer\n\
176*5088Sab196087   value, or any of the DF_P1_ symbolic constants defined\n\
177*5088Sab196087   in /usr/include/sys/link.h\n"
178*5088Sab196087
179*5088Sab196087@ MSG_A1_FLAGS_VALUE	"\
180*5088Sab196087   Flag values. This can be an integer value, or any of the\n\
181*5088Sab196087   DF_ symbolic constants defined in /usr/include/sys/link.h\n"
182*5088Sab196087
183*5088Sab196087@ MSG_A1_FLAGS1_VALUE	"\
184*5088Sab196087   Flag values. This can be an integer value, or any of the\n\
185*5088Sab196087   DF_1_ symbolic constants defined in /usr/include/sys/link.h\n"
186*5088Sab196087
187*5088Sab196087@ MSG_A1_FEATURE1_VALUE	"\
188*5088Sab196087   Feature values. This can be an integer value, or any of\n\
189*5088Sab196087   the DTF_1_ symbolic constants defined in\n\
190*5088Sab196087   /usr/include/sys/link.h\n"
191*5088Sab196087
192*5088Sab196087
193*5088Sab196087# Help strings
194*5088Sab196087
195*5088Sab196087@ MSG_HELP_DUMP	"   \
196*5088Sab196087   The dyn:dump command is used to display the contents of the\n\
197*5088Sab196087   dynamic section using the same style used by the elfdump program.\n"
198*5088Sab196087
199*5088Sab196087@ MSG_HELP_TAG	"   \
200*5088Sab196087   The dyn:tag command is used to display or alter the\n\
201*5088Sab196087   type of an element in the dynamic section. This information\n\
202*5088Sab196087   is found in the d_tag field of a dynamic element.\n\
203*5088Sab196087   \n\
204*5088Sab196087   If dyn:tag is called without arguments, the value of d_tag\n\
205*5088Sab196087   for every element in the dynamic section is shown. If called\n\
206*5088Sab196087   with the elt argument, the specified elements are displayed.\n\
207*5088Sab196087   If both arguments are present, the d_tag field of the specified\n\
208*5088Sab196087   dynamic element is set to the given value.\n"
209*5088Sab196087
210*5088Sab196087@ MSG_HELP_VALUE	"   \
211*5088Sab196087   The dyn:value command is used to display or alter the\n\
212*5088Sab196087   value of an element in the dynamic section, or to add\n\
213*5088Sab196087   a new element of a desired type. The value of a dynamic\n\
214*5088Sab196087   element is found in the d_un union of the element.\n\
215*5088Sab196087   \n\
216*5088Sab196087   If dyn:value is called without arguments, the value of every\n\
217*5088Sab196087   element in the dynamic section is shown. If called with the\n\
218*5088Sab196087   elt argument, the value of the specified elements are displayed.\n\
219*5088Sab196087   If both arguments are present, the value of the specified\n\
220*5088Sab196087   dynamic element is set to the given value.\n"
221*5088Sab196087
222*5088Sab196087@ MSG_HELP_DELETE	"   \
223*5088Sab196087   The dyn:delete command is used to delete one or more elements\n\
224*5088Sab196087   in the dynamic section. The elements following the deleted\n\
225*5088Sab196087   items move up, and new DT_NULL elements are inserted at the\n\
226*5088Sab196087   end of the dynamic section to fill the vacated space.\n\
227*5088Sab196087   \n\
228*5088Sab196087   Other parts of the ELF object may have dependencies on the\n\
229*5088Sab196087   position and values of existing dynamic elements. Moving or\n\
230*5088Sab196087   deleting dynamic elements can therefore break the object,\n\
231*5088Sab196087   and should be done with caution. Among the potential issues:\n\
232*5088Sab196087   \n\
233*5088Sab196087   o\tDT_POSFLAG_1 has a positional dependency on the item that\n\
234*5088Sab196087   \tfollows it. If that item is removed, the DT_POSFLAG_1 will\n\
235*5088Sab196087   \tapply to the new item that moves below it.\n\
236*5088Sab196087   \n\
237*5088Sab196087   o\tSyminfo sections reference DT_NEEDED elements in the dynamic\n\
238*5088Sab196087   \tsection by index. Moving or deleting such elements will break\n\
239*5088Sab196087   \tthis dependency.\n"
240*5088Sab196087
241*5088Sab196087@ MSG_HELP_MOVE	"   \
242*5088Sab196087   The dyn:move command is used to move the position of one\n\
243*5088Sab196087   or more elements in the dynamic section. The specified\n\
244*5088Sab196087   number of elements are moved from elt to dst_index.\n\
245*5088Sab196087   \n\
246*5088Sab196087   Other parts of the ELF object may have dependencies on the\n\
247*5088Sab196087   position and values of existing dynamic elements. Moving or\n\
248*5088Sab196087   deleting dynamic elements can therefore break the object,\n\
249*5088Sab196087   and should be done with caution. Among the potential issues:\n\
250*5088Sab196087   \n\
251*5088Sab196087   o\tDT_POSFLAG_1 has a positional dependency on the item that\n\
252*5088Sab196087   \tfollows it. If that item is removed, the DT_POSFLAG_1 will\n\
253*5088Sab196087   \tapply to the new item that moves below it.\n\
254*5088Sab196087   \n\
255*5088Sab196087   o\tSyminfo sections reference DT_NEEDED elements in the dynamic\n\
256*5088Sab196087   \tsection by index. Moving or deleting such elements will break\n\
257*5088Sab196087   \tthis dependency.\n"
258*5088Sab196087
259*5088Sab196087@ MSG_HELP_RUNPATH	"   \
260*5088Sab196087   The dyn:runpath command is used to display or alter the\n\
261*5088Sab196087   runpath of the ELF object.\n\
262*5088Sab196087   \n\
263*5088Sab196087   If dyn:runpath is called without arguments, the existing runpath\n\
264*5088Sab196087   is shown. If called with the newpath argument, the runpath is set\n\
265*5088Sab196087   to the given string, if possible.\n\
266*5088Sab196087   \n\
267*5088Sab196087   Not all files can be modified to have a new runpath:\n\
268*5088Sab196087   \n\
269*5088Sab196087   o\tThe desired string must already exist in the dynamic string\n\
270*5088Sab196087   \ttable, or there must be enough room in the reserved section\n\
271*5088Sab196087   \tsection at the end (DT_SUNW_STRPAD) for the new string to be\n\
272*5088Sab196087   \tadded.\n\
273*5088Sab196087   \n\
274*5088Sab196087   o\tThe dynamic section must already have a DT_RPATH or DT_RUNPATH\n\
275*5088Sab196087   \telement, or there must be an extra DT_NULL slot at the end\n\
276*5088Sab196087   \twhere a DT_RUNPATH can be inserted.\n\
277*5088Sab196087   \n\
278*5088Sab196087   If the file has both DT_RPATH and DT_RUNPATH elements in\n\
279*5088Sab196087   the dynamic section, both are set to the new value. If no\n\
280*5088Sab196087   runpath entry exists, a new DT_RUNPATH is inserted if the room\n\
281*5088Sab196087   for it exists.\n"
282*5088Sab196087
283*5088Sab196087@ MSG_HELP_POSFLAG1	"   \
284*5088Sab196087   The dyn:posflag1 command is used to display or alter the\n\
285*5088Sab196087   DT_POSFLAG_1 flags values.\n\
286*5088Sab196087   \n\
287*5088Sab196087   If dyn:posflag1 is called without arguments, the current\n\
288*5088Sab196087   value is shown. If one or more value arguments are present,\n\
289*5088Sab196087   the following steps are taken:\n\
290*5088Sab196087   \n   \
291*5088Sab196087   o\tAll the value arguments are OR'd together.\n\
292*5088Sab196087   \n   \
293*5088Sab196087   o\tIf the -cmp option has been specified, the new value\n\
294*5088Sab196087   \tis complemented.\n\
295*5088Sab196087   \n   \
296*5088Sab196087   o\tThe DT_POSFLAG_1 element of the dynamic section is updated\n\
297*5088Sab196087   \twith the new value. If -and is specified, the new value is\n\
298*5088Sab196087   \tAND'd against the existing value. If -or is specified,\n\
299*5088Sab196087   \tthe new value is OR'd against the existing value. If\n\
300*5088Sab196087   \tneither -and or -or are specified, the new value replaces\n\
301*5088Sab196087   \tthe existing value.\n\
302*5088Sab196087   \n\
303*5088Sab196087   If the current dynamic section does not have a current\n\
304*5088Sab196087   DT_POSFLAG_1 element, and room for it exists at the end\n\
305*5088Sab196087   of the section, a new one is inserted.\n"
306*5088Sab196087
307*5088Sab196087@ MSG_HELP_FLAGS	"   \
308*5088Sab196087   The dyn:flags command is used to display or alter the\n\
309*5088Sab196087   value of the DT_FLAGS dynamic element.\n\
310*5088Sab196087   \n\
311*5088Sab196087   If dyn:flags is called without arguments, the current\n\
312*5088Sab196087   value is shown. If one or more value arguments are present,\n\
313*5088Sab196087   the following steps are taken:\n\
314*5088Sab196087   \n   \
315*5088Sab196087   o\tAll the value arguments are OR'd together.\n\
316*5088Sab196087   \n   \
317*5088Sab196087   o\tIf the -cmp option has been specified, the new value\n\
318*5088Sab196087   \tis complemented.\n\
319*5088Sab196087   \n   \
320*5088Sab196087   o\tThe DT_FLAGS element of the dynamic section is updated\n\
321*5088Sab196087   \twith the new value. If -and is specified, the new value is\n\
322*5088Sab196087   \tAND'd against the existing value. If -or is specified,\n\
323*5088Sab196087   \tthe new value is OR'd against the existing value. If\n\
324*5088Sab196087   \tneither -and or -or are specified, the new value replaces\n\
325*5088Sab196087   \tthe existing value.\n\
326*5088Sab196087   \n\
327*5088Sab196087   If the current dynamic section does not have a current\n\
328*5088Sab196087   DT_FLAGS element, and room for it exists at the end\n\
329*5088Sab196087   of the section, a new one is inserted.\n"
330*5088Sab196087
331*5088Sab196087@ MSG_HELP_FLAGS1	"   \
332*5088Sab196087   The dyn:flags1 command is used to display or alter the\n\
333*5088Sab196087   value of the DT_FLAGS_1 dynamic element.\n\
334*5088Sab196087   \n\
335*5088Sab196087   If dyn:flags1 is called without arguments, the current\n\
336*5088Sab196087   value is shown. If one or more value arguments are present,\n\
337*5088Sab196087   the following steps are taken:\n\
338*5088Sab196087   \n   \
339*5088Sab196087   o\tAll the value arguments are OR'd together.\n\
340*5088Sab196087   \n   \
341*5088Sab196087   o\tIf the -cmp option has been specified, the new value\n\
342*5088Sab196087   \tis complemented.\n\
343*5088Sab196087   \n   \
344*5088Sab196087   o\tThe DT_FLAGS_1 element of the dynamic section is updated\n\
345*5088Sab196087   \twith the new value. If -and is specified, the new value is\n\
346*5088Sab196087   \tAND'd against the existing value. If -or is specified,\n\
347*5088Sab196087   \tthe new value is OR'd against the existing value. If\n\
348*5088Sab196087   \tneither -and or -or are specified, the new value replaces\n\
349*5088Sab196087   \tthe existing value.\n\
350*5088Sab196087   \n\
351*5088Sab196087   If the current dynamic section does not have a current\n\
352*5088Sab196087   DT_FLAGS_1 element, and room for it exists at the end\n\
353*5088Sab196087   of the section, a new one is inserted.\n"
354*5088Sab196087
355*5088Sab196087@ MSG_HELP_FEATURE1	"   \
356*5088Sab196087   The dyn:feature1 command is used to display or alter the\n\
357*5088Sab196087   value of the DT_FEATURE_1 dynamic element.\n\
358*5088Sab196087   \n\
359*5088Sab196087   If dyn:feature1 is called without arguments, the current\n\
360*5088Sab196087   value is shown. If one or more value arguments are present,\n\
361*5088Sab196087   the following steps are taken:\n\
362*5088Sab196087   \n   \
363*5088Sab196087   o\tAll the value arguments are OR'd together.\n\
364*5088Sab196087   \n   \
365*5088Sab196087   o\tIf the -cmp option has been specified, the new value\n\
366*5088Sab196087   \tis complemented.\n\
367*5088Sab196087   \n   \
368*5088Sab196087   o\tThe DT_FEATURE_1 element of the dynamic section is updated\n\
369*5088Sab196087   \twith the new value. If -and is specified, the new value is\n\
370*5088Sab196087   \tAND'd against the existing value. If -or is specified,\n\
371*5088Sab196087   \tthe new value is OR'd against the existing value. If\n\
372*5088Sab196087   \tneither -and or -or are specified, the new value replaces\n\
373*5088Sab196087   \tthe existing value.\n\
374*5088Sab196087   \n\
375*5088Sab196087   If the current dynamic section does not have a current\n\
376*5088Sab196087   DT_FEATURE_1 element, and room for it exists at the end\n\
377*5088Sab196087   of the section, a new one is inserted.\n"
378*5088Sab196087
379*5088Sab196087@ MSG_HELP_CHECKSUM	"   \
380*5088Sab196087   The dyn:checksum command recomputes the value of the DT_CHECKSUM\n\
381*5088Sab196087   dynamic element. It calls the elf32_checksum() for 32-bit objects,\n\
382*5088Sab196087   or elf64_checksum() for 64-bit objects, and then sets the value of\n\
383*5088Sab196087   the DT_CHECKSUM element to the resulting value.\n\
384*5088Sab196087   \n\
385*5088Sab196087   If the current dynamic section does not have a current\n\
386*5088Sab196087   DT_CHECKSUM element, and room for it exists at the end\n\
387*5088Sab196087   of the section, a new one is inserted.\n"
388*5088Sab196087
389*5088Sab196087@ _END_
390*5088Sab196087
391*5088Sab196087
392*5088Sab196087# The following strings represent reserved words, files, pathnames and symbols.
393*5088Sab196087# Reference to this strings is via the MSG_ORIG() macro, and thus no message
394*5088Sab196087# translation is required.
395*5088Sab196087
396*5088Sab196087
397*5088Sab196087# Strings
398*5088Sab196087@ MSG_STR_EMPTY		""
399*5088Sab196087@ MSG_STR_COUNT		"count"
400*5088Sab196087@ MSG_STR_ELT		"elt"
401*5088Sab196087@ MSG_STR_DST_INDEX	"dst_index"
402*5088Sab196087@ MSG_STR_MINUS_ADD	"-add"
403*5088Sab196087@ MSG_STR_MINUS_DYNNDX	"-dynndx"
404*5088Sab196087@ MSG_STR_MINUS_S	"-s"
405*5088Sab196087@ MSG_STR_NEWPATH	"newpath"
406*5088Sab196087@ MSG_STR_VALUE		"value"
407*5088Sab196087
408*5088Sab196087# Format strings
409*5088Sab196087@ MSG_FMT_STRNL		"%s\n"
410*5088Sab196087@ MSG_FMT_HEXXWORDNL	"%#llx\n"
411*5088Sab196087
412*5088Sab196087
413*5088Sab196087# Module name
414*5088Sab196087
415*5088Sab196087@ MSG_MOD_NAME		"dyn"
416*5088Sab196087
417*5088Sab196087
418*5088Sab196087# Command names
419*5088Sab196087
420*5088Sab196087@ MSG_CMD_DUMP		"dump"
421*5088Sab196087@ MSG_CMD_TAG		"tag"
422*5088Sab196087@ MSG_CMD_VALUE		"value"
423*5088Sab196087@ MSG_CMD_DELETE	"delete"
424*5088Sab196087@ MSG_CMD_MOVE		"move"
425*5088Sab196087@ MSG_CMD_RUNPATH	"runpath"
426*5088Sab196087@ MSG_CMD_RUNPATH_A1	"rpath"
427*5088Sab196087@ MSG_CMD_POSFLAG1	"posflag1"
428*5088Sab196087@ MSG_CMD_FLAGS		"flags"
429*5088Sab196087@ MSG_CMD_FLAGS1	"flags1"
430*5088Sab196087@ MSG_CMD_FEATURE1	"feature1"
431*5088Sab196087@ MSG_CMD_CHECKSUM	"checksum"
432