xref: /onnv-gate/usr/src/cmd/sgs/elfedit/modules/common/dyn.msg (revision 6225:e6305f16e938)
15088Sab196087#
25088Sab196087# CDDL HEADER START
35088Sab196087#
45088Sab196087# The contents of this file are subject to the terms of the
55088Sab196087# Common Development and Distribution License (the "License").
65088Sab196087# You may not use this file except in compliance with the License.
75088Sab196087#
85088Sab196087# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
95088Sab196087# or http://www.opensolaris.org/os/licensing.
105088Sab196087# See the License for the specific language governing permissions
115088Sab196087# and limitations under the License.
125088Sab196087#
135088Sab196087# When distributing Covered Code, include this CDDL HEADER in each
145088Sab196087# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
155088Sab196087# If applicable, add the following below this CDDL HEADER, with the
165088Sab196087# fields enclosed by brackets "[]" replaced with your own identifying
175088Sab196087# information: Portions Copyright [yyyy] [name of copyright owner]
185088Sab196087#
195088Sab196087# CDDL HEADER END
205088Sab196087#
215088Sab196087
225088Sab196087#
236206Sab196087# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
245088Sab196087# Use is subject to license terms.
255088Sab196087#
265088Sab196087# ident	"%Z%%M%	%I%	%E% SMI"
275088Sab196087
285088Sab196087
295088Sab196087@ _START_
305088Sab196087
315088Sab196087# Message file for elfedit 'dyn' module
325088Sab196087
335088Sab196087@ MSG_ID_ELFEDIT_DYN
345088Sab196087
355088Sab196087
365088Sab196087# Strings
375088Sab196087@ MSG_STR_DEPRECATED	"(deprecated value)"
385088Sab196087
395088Sab196087# Debug messages
405088Sab196087
415088Sab196087@ MSG_DEBUG_S_OK	"[%d: %s][%d]: value unchanged: %s\n"
425088Sab196087@ MSG_DEBUG_S_CHG	"[%d: %s][%d]: change from %s to %s\n"
435088Sab196087@ MSG_DEBUG_X_OK	"[%d: %s][%d]: value unchanged: %#llx\n"
445088Sab196087@ MSG_DEBUG_X_CHG	"[%d: %s][%d]: change from %#llx to %#llx\n"
455088Sab196087@ MSG_DEBUG_PREVRPATH	"[%d: %s][%d]: Reusing existing %s entry: %s\n"
465088Sab196087@ MSG_DEBUG_OLDRPATHOK	"[%d: %s][%d]: Existing %s already has desired \
475088Sab196087			 value\n"
485088Sab196087@ MSG_DEBUG_CONVNULL	"[%d: %s][%d]: No existing %s to modify. Converting \
495088Sab196087			 extra DT_NULL\n"
505088Sab196087@ MSG_DEBUG_DT2NDX	"[%d: %s][%d]: Dynamic entry for tag: %s\n"
515088Sab196087@ MSG_DEBUG_NULCLIP	"[%d: %s][%d]: ELF warning: null element will cause \
525088Sab196087			 the runtime linker to ignore the non-null \
535088Sab196087			 elements that follow: %s\n"
545088Sab196087@ MSG_DEBUG_NULHIDE	"[%d: %s][%d]: ELF warning: this non-null element \
555088Sab196087			 follows the first DT_NULL element, and will be \
565088Sab196087			 ignored by the runtime linker: %s\n"
575088Sab196087@ MSG_DEBUG_NULLTERM	"[%d: %s][%d]: ELF warning: dynamic section is \
585088Sab196087			 must be terminated by a DT_NULL. The runtime linker \
595088Sab196087			 will be unable to use this object: %s\n"
605088Sab196087@ MSG_DEBUG_DTNULLVALUE	"[%d: %s][%d]: ELF warning: DT_NULL element value \
615088Sab196087			 is expected to be 0: %#llx\n"
625088Sab196087
635088Sab196087
645088Sab196087# Errors
655088Sab196087
665088Sab196087@ MSG_ERR_NODTELT	"[%d: %s]: Dynamic section does not contain tag: %s\n"
675088Sab196087@ MSG_ERR_NOEXTRANULL	"[%d: %s]: Dynamic section does not have room to add \
685088Sab196087			 a new element\n"
695088Sab196087@ MSG_ERR_NORUNPATH	"[%d: %s]: no runpath (DT_RPATH or DT_RUNPATH) found\n"
705088Sab196087@ MSG_ERR_NODYNELT	"[%d: %s]: no elements of type %s found\n"
715088Sab196087@ MSG_ERR_STRPADSTRVAL	"[%d: %s]: -s option cannot be used with \
725088Sab196087			 DT_SUNW_STRPAD dynamic element\n"
73*6225Sab196087@ MSG_ERR_WRONGTAG	"[%d: %s][%d]: expected %s dynamic element: %s\n"
74*6225Sab196087@ MSG_ERR_NEEDEDNOMATCH	"[%d: %s]: matching DT_NEEDED element not found: %s\n";
755088Sab196087
765088Sab196087
775088Sab196087# Module description
785088Sab196087
795088Sab196087@ MSG_MOD_DESC		"Dynamic Section"
805088Sab196087
815088Sab196087
825088Sab196087
835088Sab196087# 1-line description strings
845088Sab196087
855088Sab196087@ MSG_DESC_DUMP		"Dump Dynamic Section"
865088Sab196087@ MSG_DESC_TAG		"Change element tag"
875088Sab196087@ MSG_DESC_VALUE	"Change element value"
885088Sab196087@ MSG_DESC_DELETE	"Delete elements"
895088Sab196087@ MSG_DESC_MOVE		"Move elements"
905088Sab196087@ MSG_DESC_RUNPATH	"Set runpath"
915088Sab196087@ MSG_DESC_POSFLAG1	"DT_POSFLAG_1 bit values"
925088Sab196087@ MSG_DESC_FLAGS	"DT_FLAGS bit values"
935088Sab196087@ MSG_DESC_FLAGS1	"DT_FLAGS_1 bit values"
945088Sab196087@ MSG_DESC_FEATURE1	"DT_FEATURE_1 bit values"
955088Sab196087@ MSG_DESC_CHECKSUM	"Recompute DT_CHECKSUM"
966206Sab196087@ MSG_DESC_SUNW_LDMACH	"Linker machine type"
975088Sab196087
985088Sab196087
995088Sab196087# Commmand option description strings
1005088Sab196087
1015088Sab196087@ MSG_OPTDESC_ADD	"\
1025088Sab196087   By default, dyn:value modifies the first element of the\n\
1035088Sab196087   dynamic section that has the specified tag type, creating\n\
1045088Sab196087   a new element only if no element of the specified type\n\
1055088Sab196087   exists, and if room exists in the file. If -add is specified,\n\
1065088Sab196087   dyn:value will always create a new element for the new value,\n\
1075088Sab196087   leaving any existing elements with the same tag untouched.\n"
1085088Sab196087
1095088Sab196087@ MSG_OPTDESC_S		"\
1105088Sab196087   Interpret the value argument as a string rather than an\n\
1115088Sab196087   integer. If the specified string already exists in the dynamic\n\
1125088Sab196087   string table, the offset of that string is stored in the\n\
1135088Sab196087   dynamic entry. If the string does not exist in the string table,\n\
1145088Sab196087   but there is room to add it, the new string is added and then\n\
1155088Sab196087   the offset is placed in the dynamic entry.\n"
1165088Sab196087
117*6225Sab196087@ MSG_OPTDESC_DYNNDX_ELT	"\
1185088Sab196087   Interpret the elt argument as a direct index into the dynamic\n\
1195088Sab196087   section, rather than as a DT_ tag value.\n"
1205088Sab196087
121*6225Sab196087@ MSG_OPTDESC_DYNNDX_VAL	"\
122*6225Sab196087   Use the dynamic element with the specified index.\n"
123*6225Sab196087
124*6225Sab196087@ MSG_OPTDESC_NEEDED	"\
125*6225Sab196087   Select the first DT_POSFLAG_1 dynamic element that corresponds\n\
126*6225Sab196087   to the DT_NEEDED element with a value that starts with the\n\
127*6225Sab196087   string given by prefix. If present, the DT_POSFLAG_1 element\n\
128*6225Sab196087   will be in the dynamic element directly in front of the\n\
129*6225Sab196087   DT_NEEDED element.\n"
130*6225Sab196087
1315088Sab196087
1325088Sab196087# Command argument description strings
1335088Sab196087
1345088Sab196087@ MSG_A1_TAG_ELT	"\
1355088Sab196087   Dynamic element to be examined or changed. By default, this\n\
1365088Sab196087   is a DT_ tag value. The index of the first element in the\n\
1375088Sab196087   dynamic section that has the specified tag value will be used.\n\
1385088Sab196087   The value specified can be one of the well known DT_ constants,\n\
1395088Sab196087   or any integer.\n\
1405088Sab196087   \n\
1415088Sab196087   If the -dynndx option is specified, elt is instead interpreted\n\
1425088Sab196087   as a simple integer index into the dynamic section.\n"
1435088Sab196087
1445088Sab196087@ MSG_A2_TAG_VALUE	"\
1455088Sab196087   Value to be set for d_tag field of specified dynamic\n\
1465088Sab196087   element. Tag values can be specified using the well known\n\
1475088Sab196087   DT_ symbolic constants from /usr/include/sys/link.h, or\n\
1485088Sab196087   as integers.\n"
1495088Sab196087
1505088Sab196087@ MSG_ARGDESC_ELT	"\
1515088Sab196087   Element within dynamic section. By default, this is a tag\n\
1525088Sab196087   value. In this case, the index of the first dynamic element\n\
1535088Sab196087   with the specified tag value will be used. Tag values can\n\
1545088Sab196087   be specified using the well known DT_ symbolic constants from\n\
1555088Sab196087   /usr/include/sys/link.h, or as integers. If the -dynndx\n\
1565088Sab196087   option is specified, then elt is instead interpreted as a\n\
1575088Sab196087   direct numeric index into the dynamic section.\n"
1585088Sab196087
1595088Sab196087@ MSG_A2_VALUE_VALUE	"\
1605088Sab196087   Value to set for specified dynamic section element. By\n\
1615088Sab196087   default, this is a numeric value which is used directly.\n\
1625088Sab196087   If the -s option is used, this is a string value, and the\n\
1635088Sab196087   dynamic element will receive the numeric offset of the\n\
1645088Sab196087   specified string from within the associated dynamic string\n\
1655088Sab196087   table.\n"
1665088Sab196087
1675088Sab196087@ MSG_A2_DELETE_COUNT	"\
1685088Sab196087   Number of dynamic elements to delete, starting at the\n\
1695088Sab196087   specified position. This value cannot exceed the number\n\
1705088Sab196087   of slots remaining in the table below the specified position.\n\
1715088Sab196087   If count is not supplied, a single element is deleted.\n"
1725088Sab196087
1735088Sab196087@ MSG_A2_MOVE_DST_INDEX	"\
1745088Sab196087   Numeric index within dynamic section to which the element(s)\n\
1755088Sab196087   should be moved.\n"
1765088Sab196087
1775088Sab196087@ MSG_A3_MOVE_COUNT	"\
1785088Sab196087   Number of dynamic elements to move. This value cannot\n\
1795088Sab196087   exceed the number of slots remaining in the table below\n\
1805088Sab196087   the specified position. If count is not supplied, a\n\
1815088Sab196087   single element is moved.\n"
1825088Sab196087
1835088Sab196087@ MSG_A1_RUNPATH_NEWPATH	"\
1845088Sab196087   New runpath string for the ELF object.\n"
1855088Sab196087
1865088Sab196087@ MSG_A1_POSFLAG1_VALUE "\
1875088Sab196087   Position dependent state flags which are applied to the\n\
1885088Sab196087   element immediately following. This can be an integer\n\
1895088Sab196087   value, or any of the DF_P1_ symbolic constants defined\n\
1905088Sab196087   in /usr/include/sys/link.h\n"
1915088Sab196087
1925088Sab196087@ MSG_A1_FLAGS_VALUE	"\
1935088Sab196087   Flag values. This can be an integer value, or any of the\n\
1945088Sab196087   DF_ symbolic constants defined in /usr/include/sys/link.h\n"
1955088Sab196087
1965088Sab196087@ MSG_A1_FLAGS1_VALUE	"\
1975088Sab196087   Flag values. This can be an integer value, or any of the\n\
1985088Sab196087   DF_1_ symbolic constants defined in /usr/include/sys/link.h\n"
1995088Sab196087
2005088Sab196087@ MSG_A1_FEATURE1_VALUE	"\
2015088Sab196087   Feature values. This can be an integer value, or any of\n\
2025088Sab196087   the DTF_1_ symbolic constants defined in\n\
2035088Sab196087   /usr/include/sys/link.h\n"
2045088Sab196087
2056206Sab196087@ MSG_A1_SUNW_LDMACH_VALUE	"\
2066206Sab196087   Machine type of link-editor that built the object being edited.\n\
2076206Sab196087   This can be an integer value, or any of the EM_ symbolic\n\
2086206Sab196087   constants defined in /usr/include/elf.h\n"
2096206Sab196087
2105088Sab196087
2115088Sab196087# Help strings
2125088Sab196087
2135088Sab196087@ MSG_HELP_DUMP	"   \
2145088Sab196087   The dyn:dump command is used to display the contents of the\n\
2155088Sab196087   dynamic section using the same style used by the elfdump program.\n"
2165088Sab196087
2175088Sab196087@ MSG_HELP_TAG	"   \
2185088Sab196087   The dyn:tag command is used to display or alter the\n\
2195088Sab196087   type of an element in the dynamic section. This information\n\
2205088Sab196087   is found in the d_tag field of a dynamic element.\n\
2215088Sab196087   \n\
2225088Sab196087   If dyn:tag is called without arguments, the value of d_tag\n\
2235088Sab196087   for every element in the dynamic section is shown. If called\n\
2245088Sab196087   with the elt argument, the specified elements are displayed.\n\
2255088Sab196087   If both arguments are present, the d_tag field of the specified\n\
2265088Sab196087   dynamic element is set to the given value.\n"
2275088Sab196087
2285088Sab196087@ MSG_HELP_VALUE	"   \
2295088Sab196087   The dyn:value command is used to display or alter the\n\
2305088Sab196087   value of an element in the dynamic section, or to add\n\
2315088Sab196087   a new element of a desired type. The value of a dynamic\n\
2325088Sab196087   element is found in the d_un union of the element.\n\
2335088Sab196087   \n\
2345088Sab196087   If dyn:value is called without arguments, the value of every\n\
2355088Sab196087   element in the dynamic section is shown. If called with the\n\
2365088Sab196087   elt argument, the value of the specified elements are displayed.\n\
2375088Sab196087   If both arguments are present, the value of the specified\n\
2385088Sab196087   dynamic element is set to the given value.\n"
2395088Sab196087
2405088Sab196087@ MSG_HELP_DELETE	"   \
2415088Sab196087   The dyn:delete command is used to delete one or more elements\n\
2425088Sab196087   in the dynamic section. The elements following the deleted\n\
2435088Sab196087   items move up, and new DT_NULL elements are inserted at the\n\
2445088Sab196087   end of the dynamic section to fill the vacated space.\n\
2455088Sab196087   \n\
2465088Sab196087   Other parts of the ELF object may have dependencies on the\n\
2475088Sab196087   position and values of existing dynamic elements. Moving or\n\
2485088Sab196087   deleting dynamic elements can therefore break the object,\n\
2495088Sab196087   and should be done with caution. Among the potential issues:\n\
2505088Sab196087   \n\
2515088Sab196087   o\tDT_POSFLAG_1 has a positional dependency on the item that\n\
2525088Sab196087   \tfollows it. If that item is removed, the DT_POSFLAG_1 will\n\
2535088Sab196087   \tapply to the new item that moves below it.\n\
2545088Sab196087   \n\
2555088Sab196087   o\tSyminfo sections reference DT_NEEDED elements in the dynamic\n\
2565088Sab196087   \tsection by index. Moving or deleting such elements will break\n\
2575088Sab196087   \tthis dependency.\n"
2585088Sab196087
2595088Sab196087@ MSG_HELP_MOVE	"   \
2605088Sab196087   The dyn:move command is used to move the position of one\n\
2615088Sab196087   or more elements in the dynamic section. The specified\n\
2625088Sab196087   number of elements are moved from elt to dst_index.\n\
2635088Sab196087   \n\
2645088Sab196087   Other parts of the ELF object may have dependencies on the\n\
2655088Sab196087   position and values of existing dynamic elements. Moving or\n\
2665088Sab196087   deleting dynamic elements can therefore break the object,\n\
2675088Sab196087   and should be done with caution. Among the potential issues:\n\
2685088Sab196087   \n\
2695088Sab196087   o\tDT_POSFLAG_1 has a positional dependency on the item that\n\
2705088Sab196087   \tfollows it. If that item is removed, the DT_POSFLAG_1 will\n\
2715088Sab196087   \tapply to the new item that moves below it.\n\
2725088Sab196087   \n\
2735088Sab196087   o\tSyminfo sections reference DT_NEEDED elements in the dynamic\n\
2745088Sab196087   \tsection by index. Moving or deleting such elements will break\n\
2755088Sab196087   \tthis dependency.\n"
2765088Sab196087
2775088Sab196087@ MSG_HELP_RUNPATH	"   \
2785088Sab196087   The dyn:runpath command is used to display or alter the\n\
2795088Sab196087   runpath of the ELF object.\n\
2805088Sab196087   \n\
2815088Sab196087   If dyn:runpath is called without arguments, the existing runpath\n\
2825088Sab196087   is shown. If called with the newpath argument, the runpath is set\n\
2835088Sab196087   to the given string, if possible.\n\
2845088Sab196087   \n\
2855088Sab196087   Not all files can be modified to have a new runpath:\n\
2865088Sab196087   \n\
2875088Sab196087   o\tThe desired string must already exist in the dynamic string\n\
2885088Sab196087   \ttable, or there must be enough room in the reserved section\n\
2895088Sab196087   \tsection at the end (DT_SUNW_STRPAD) for the new string to be\n\
2905088Sab196087   \tadded.\n\
2915088Sab196087   \n\
2925088Sab196087   o\tThe dynamic section must already have a DT_RPATH or DT_RUNPATH\n\
2935088Sab196087   \telement, or there must be an extra DT_NULL slot at the end\n\
2945088Sab196087   \twhere a DT_RUNPATH can be inserted.\n\
2955088Sab196087   \n\
2965088Sab196087   If the file has both DT_RPATH and DT_RUNPATH elements in\n\
2975088Sab196087   the dynamic section, both are set to the new value. If no\n\
2985088Sab196087   runpath entry exists, a new DT_RUNPATH is inserted if the room\n\
2995088Sab196087   for it exists.\n"
3005088Sab196087
3015088Sab196087@ MSG_HELP_POSFLAG1	"   \
302*6225Sab196087   The dyn:posflag1 command is used to display or alter\n\
303*6225Sab196087   DT_POSFLAG_1 flags values. DT_POSFLAG_1 is a positional\n\
304*6225Sab196087   dynamic element that affects the interpretation of the item\n\
305*6225Sab196087   that follows it. Therefore, when displaying DT_POSFLAG_1 elements\n\
306*6225Sab196087   using the default output style, dyn:posflag1 also displays the\n\
307*6225Sab196087   dynamic element that follows it.\n\
3085088Sab196087   \n\
3095088Sab196087   If dyn:posflag1 is called without arguments, the current\n\
310*6225Sab196087   value of all DT_POSFLAG_1 elements are shown. It is possible\n\
311*6225Sab196087   to display the value of a single specific DT_POSFLAG_1 element\n\
312*6225Sab196087   by using the -dynndx or -needed option to specify it.\n\
313*6225Sab196087   \n\
314*6225Sab196087   If one or more value arguments are present, the default is to\n\
315*6225Sab196087   modify the first DT_POSFLAG_1 element. The -dynndx or -needed\n\
316*6225Sab196087   option can be used to specify a specific DT_POSFLAG_1_element\n\
317*6225Sab196087   instead. The following steps are taken to compute the new value:\n\
3185088Sab196087   \n   \
3195088Sab196087   o\tAll the value arguments are OR'd together.\n\
3205088Sab196087   \n   \
3215088Sab196087   o\tIf the -cmp option has been specified, the new value\n\
3225088Sab196087   \tis complemented.\n\
3235088Sab196087   \n   \
324*6225Sab196087   o\tThe DT_POSFLAG_1 element is updated with the new value.\n\
325*6225Sab196087   \tIf -and is specified, the new value is AND'd against the\n\
326*6225Sab196087   \texisting value. If -or is specified, the new value is OR'd\n\
327*6225Sab196087   \tagainst the existing value. If neither -and or -or are\n\
328*6225Sab196087   \tspecified, the new value replaces the existing value.\n\
3295088Sab196087   \n\
330*6225Sab196087   A new DT_POSFLAG_1 element is inserted in the dynamic section\n\
331*6225Sab196087   when all of the following are true:\n\
332*6225Sab196087   \n   \
333*6225Sab196087   o\tOne or more value arguments are present.\n\
334*6225Sab196087   \n   \
335*6225Sab196087   o\tThe -dynndx and -needed options are not used.\n\
336*6225Sab196087   \n   \
337*6225Sab196087   o\tThe current dynamic section does not have a current\n\
338*6225Sab196087   \tDT_POSFLAG_1 element.\n\
339*6225Sab196087   \n   \
340*6225Sab196087   o\tThere is available space at the end of the dynamic section.\n"
3415088Sab196087
3425088Sab196087@ MSG_HELP_FLAGS	"   \
3435088Sab196087   The dyn:flags command is used to display or alter the\n\
3445088Sab196087   value of the DT_FLAGS dynamic element.\n\
3455088Sab196087   \n\
3465088Sab196087   If dyn:flags is called without arguments, the current\n\
3475088Sab196087   value is shown. If one or more value arguments are present,\n\
3485088Sab196087   the following steps are taken:\n\
3495088Sab196087   \n   \
3505088Sab196087   o\tAll the value arguments are OR'd together.\n\
3515088Sab196087   \n   \
3525088Sab196087   o\tIf the -cmp option has been specified, the new value\n\
3535088Sab196087   \tis complemented.\n\
3545088Sab196087   \n   \
3555088Sab196087   o\tThe DT_FLAGS element of the dynamic section is updated\n\
3565088Sab196087   \twith the new value. If -and is specified, the new value is\n\
3575088Sab196087   \tAND'd against the existing value. If -or is specified,\n\
3585088Sab196087   \tthe new value is OR'd against the existing value. If\n\
3595088Sab196087   \tneither -and or -or are specified, the new value replaces\n\
3605088Sab196087   \tthe existing value.\n\
3615088Sab196087   \n\
3625088Sab196087   If the current dynamic section does not have a current\n\
3635088Sab196087   DT_FLAGS element, and room for it exists at the end\n\
3645088Sab196087   of the section, a new one is inserted.\n"
3655088Sab196087
3665088Sab196087@ MSG_HELP_FLAGS1	"   \
3675088Sab196087   The dyn:flags1 command is used to display or alter the\n\
3685088Sab196087   value of the DT_FLAGS_1 dynamic element.\n\
3695088Sab196087   \n\
3705088Sab196087   If dyn:flags1 is called without arguments, the current\n\
3715088Sab196087   value is shown. If one or more value arguments are present,\n\
3725088Sab196087   the following steps are taken:\n\
3735088Sab196087   \n   \
3745088Sab196087   o\tAll the value arguments are OR'd together.\n\
3755088Sab196087   \n   \
3765088Sab196087   o\tIf the -cmp option has been specified, the new value\n\
3775088Sab196087   \tis complemented.\n\
3785088Sab196087   \n   \
3795088Sab196087   o\tThe DT_FLAGS_1 element of the dynamic section is updated\n\
3805088Sab196087   \twith the new value. If -and is specified, the new value is\n\
3815088Sab196087   \tAND'd against the existing value. If -or is specified,\n\
3825088Sab196087   \tthe new value is OR'd against the existing value. If\n\
3835088Sab196087   \tneither -and or -or are specified, the new value replaces\n\
3845088Sab196087   \tthe existing value.\n\
3855088Sab196087   \n\
3865088Sab196087   If the current dynamic section does not have a current\n\
3875088Sab196087   DT_FLAGS_1 element, and room for it exists at the end\n\
3885088Sab196087   of the section, a new one is inserted.\n"
3895088Sab196087
3905088Sab196087@ MSG_HELP_FEATURE1	"   \
3915088Sab196087   The dyn:feature1 command is used to display or alter the\n\
3925088Sab196087   value of the DT_FEATURE_1 dynamic element.\n\
3935088Sab196087   \n\
3945088Sab196087   If dyn:feature1 is called without arguments, the current\n\
3955088Sab196087   value is shown. If one or more value arguments are present,\n\
3965088Sab196087   the following steps are taken:\n\
3975088Sab196087   \n   \
3985088Sab196087   o\tAll the value arguments are OR'd together.\n\
3995088Sab196087   \n   \
4005088Sab196087   o\tIf the -cmp option has been specified, the new value\n\
4015088Sab196087   \tis complemented.\n\
4025088Sab196087   \n   \
4035088Sab196087   o\tThe DT_FEATURE_1 element of the dynamic section is updated\n\
4045088Sab196087   \twith the new value. If -and is specified, the new value is\n\
4055088Sab196087   \tAND'd against the existing value. If -or is specified,\n\
4065088Sab196087   \tthe new value is OR'd against the existing value. If\n\
4075088Sab196087   \tneither -and or -or are specified, the new value replaces\n\
4085088Sab196087   \tthe existing value.\n\
4095088Sab196087   \n\
4105088Sab196087   If the current dynamic section does not have a current\n\
4115088Sab196087   DT_FEATURE_1 element, and room for it exists at the end\n\
4125088Sab196087   of the section, a new one is inserted.\n"
4135088Sab196087
4145088Sab196087@ MSG_HELP_CHECKSUM	"   \
4155088Sab196087   The dyn:checksum command recomputes the value of the DT_CHECKSUM\n\
4165088Sab196087   dynamic element. It calls the elf32_checksum() for 32-bit objects,\n\
4175088Sab196087   or elf64_checksum() for 64-bit objects, and then sets the value of\n\
4185088Sab196087   the DT_CHECKSUM element to the resulting value.\n\
4195088Sab196087   \n\
4205088Sab196087   If the current dynamic section does not have a current\n\
4215088Sab196087   DT_CHECKSUM element, and room for it exists at the end\n\
4225088Sab196087   of the section, a new one is inserted.\n"
4235088Sab196087
4246206Sab196087@ MSG_HELP_SUNW_LDMACH	"   \
4256206Sab196087   The dyn:sunw_ldmach command is used to display or alter the\n\
4266206Sab196087   DT_SUNW_LDMACH dynamic element of the ELF object. This dynamic\n\
4276206Sab196087   element records the ELF machine type of the link-editor that produced\n\
4286206Sab196087   the object. This is of special interest if the object was built\n\
4296206Sab196087   by a cross link-editor instead of being linked on a machine of the\n\
4306206Sab196087   same type as the object.\n\
4316206Sab196087   \n\
4326206Sab196087   If dyn:sunw_ldmach is called without arguments, the current\n\
4336206Sab196087   value is shown. If called with the value argument, the\n\
4346206Sab196087   DT_SUNW_LDMACH dynamic element is set to the specified machine type.\n\
4356206Sab196087   \n\
4366206Sab196087   If the current dynamic section does not have a current\n\
4376206Sab196087   DT_SUNW_LDMACH element, and room for it exists at the end\n\
4386206Sab196087   of the section, a new one is inserted.\n"
4396206Sab196087
4405088Sab196087@ _END_
4415088Sab196087
4425088Sab196087
4435088Sab196087# The following strings represent reserved words, files, pathnames and symbols.
4445088Sab196087# Reference to this strings is via the MSG_ORIG() macro, and thus no message
4455088Sab196087# translation is required.
4465088Sab196087
4475088Sab196087
4485088Sab196087# Strings
4495088Sab196087@ MSG_STR_EMPTY		""
4505088Sab196087@ MSG_STR_COUNT		"count"
4515088Sab196087@ MSG_STR_ELT		"elt"
4525088Sab196087@ MSG_STR_DST_INDEX	"dst_index"
453*6225Sab196087@ MSG_STR_INDEX		"index"
4545088Sab196087@ MSG_STR_MINUS_ADD	"-add"
4555088Sab196087@ MSG_STR_MINUS_DYNNDX	"-dynndx"
456*6225Sab196087@ MSG_STR_MINUS_NEEDED	"-needed"
4575088Sab196087@ MSG_STR_MINUS_S	"-s"
4585088Sab196087@ MSG_STR_NEWPATH	"newpath"
459*6225Sab196087@ MSG_STR_PREFIX	"prefix"
4605088Sab196087@ MSG_STR_VALUE		"value"
4615088Sab196087
4625088Sab196087# Format strings
4635088Sab196087@ MSG_FMT_STRNL		"%s\n"
4645088Sab196087@ MSG_FMT_HEXXWORDNL	"%#llx\n"
4655088Sab196087
4665088Sab196087
4675088Sab196087# Module name
4685088Sab196087
4695088Sab196087@ MSG_MOD_NAME		"dyn"
4705088Sab196087
4715088Sab196087
4725088Sab196087# Command names
4735088Sab196087
4745088Sab196087@ MSG_CMD_DUMP		"dump"
4755088Sab196087@ MSG_CMD_TAG		"tag"
4765088Sab196087@ MSG_CMD_VALUE		"value"
4775088Sab196087@ MSG_CMD_DELETE	"delete"
4785088Sab196087@ MSG_CMD_MOVE		"move"
4795088Sab196087@ MSG_CMD_RUNPATH	"runpath"
4805088Sab196087@ MSG_CMD_RUNPATH_A1	"rpath"
4815088Sab196087@ MSG_CMD_POSFLAG1	"posflag1"
4825088Sab196087@ MSG_CMD_FLAGS		"flags"
4835088Sab196087@ MSG_CMD_FLAGS1	"flags1"
4845088Sab196087@ MSG_CMD_FEATURE1	"feature1"
4855088Sab196087@ MSG_CMD_CHECKSUM	"checksum"
4866206Sab196087@ MSG_CMD_SUNW_LDMACH	"sunw_ldmach"
487