dyn.msg revision d29b2c4438482eb00488be49a1f5d6835f455546
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# CDDL HEADER START
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# The contents of this file are subject to the terms of the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Common Development and Distribution License (the "License").
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# You may not use this file except in compliance with the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# or http://www.opensolaris.org/os/licensing.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# See the License for the specific language governing permissions
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# and limitations under the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# When distributing Covered Code, include this CDDL HEADER in each
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# If applicable, add the following below this CDDL HEADER, with the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# fields enclosed by brackets "[]" replaced with your own identifying
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# information: Portions Copyright [yyyy] [name of copyright owner]
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# CDDL HEADER END
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Use is subject to license terms.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#
f948ca04a28ccfeed9633bf4b0fb0d2c59c37478David Luna# ident "%Z%%M% %I% %E% SMI"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ _START_
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
f948ca04a28ccfeed9633bf4b0fb0d2c59c37478David Luna# Message file for elfedit 'dyn' module
f948ca04a28ccfeed9633bf4b0fb0d2c59c37478David Luna
f948ca04a28ccfeed9633bf4b0fb0d2c59c37478David Luna@ MSG_ID_ELFEDIT_DYN
f948ca04a28ccfeed9633bf4b0fb0d2c59c37478David Luna
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Strings
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_STR_DEPRECATED "(deprecated value)"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Debug messages
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_DEBUG_S_OK "[%d: %s][%d]: value unchanged: %s\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_DEBUG_S_CHG "[%d: %s][%d]: change from %s to %s\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_DEBUG_X_OK "[%d: %s][%d]: value unchanged: %#llx\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_DEBUG_X_CHG "[%d: %s][%d]: change from %#llx to %#llx\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_DEBUG_PREVRPATH "[%d: %s][%d]: Reusing existing %s entry: %s\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_DEBUG_OLDRPATHOK "[%d: %s][%d]: Existing %s already has desired \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster value\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_DEBUG_CONVNULL "[%d: %s][%d]: No existing %s to modify. Converting \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster extra DT_NULL\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_DEBUG_DT2NDX "[%d: %s][%d]: Dynamic entry for tag: %s\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_DEBUG_NULCLIP "[%d: %s][%d]: ELF warning: null element will cause \
f948ca04a28ccfeed9633bf4b0fb0d2c59c37478David Luna the runtime linker to ignore the non-null \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster elements that follow: %s\n"
f948ca04a28ccfeed9633bf4b0fb0d2c59c37478David Luna@ MSG_DEBUG_NULHIDE "[%d: %s][%d]: ELF warning: this non-null element \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster follows the first DT_NULL element, and will be \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ignored by the runtime linker: %s\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_DEBUG_NULLTERM "[%d: %s][%d]: ELF warning: dynamic section is \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster must be terminated by a DT_NULL. The runtime linker \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster will be unable to use this object: %s\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_DEBUG_DTNULLVALUE "[%d: %s][%d]: ELF warning: DT_NULL element value \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster is expected to be 0: %#llx\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Errors
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_ERR_NODTELT "[%d: %s]: Dynamic section does not contain tag: %s\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_ERR_NOEXTRANULL "[%d: %s]: Dynamic section does not have room to add \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster a new element\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_ERR_NORUNPATH "[%d: %s]: no runpath (DT_RPATH or DT_RUNPATH) found\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_ERR_NODYNELT "[%d: %s]: no elements of type %s found\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_ERR_STRPADSTRVAL "[%d: %s]: -s option cannot be used with \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster DT_SUNW_STRPAD dynamic element\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Module description
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_MOD_DESC "Dynamic Section"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# 1-line description strings
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_DESC_DUMP "Dump Dynamic Section"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_DESC_TAG "Change element tag"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_DESC_VALUE "Change element value"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_DESC_DELETE "Delete elements"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_DESC_MOVE "Move elements"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_DESC_RUNPATH "Set runpath"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_DESC_POSFLAG1 "DT_POSFLAG_1 bit values"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_DESC_FLAGS "DT_FLAGS bit values"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_DESC_FLAGS1 "DT_FLAGS_1 bit values"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_DESC_FEATURE1 "DT_FEATURE_1 bit values"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_DESC_CHECKSUM "Recompute DT_CHECKSUM"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Commmand option description strings
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_OPTDESC_ADD "\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster By default, dyn:value modifies the first element of the\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster dynamic section that has the specified tag type, creating\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster a new element only if no element of the specified type\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster exists, and if room exists in the file. If -add is specified,\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster dyn:value will always create a new element for the new value,\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster leaving any existing elements with the same tag untouched.\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_OPTDESC_S "\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Interpret the value argument as a string rather than an\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster integer. If the specified string already exists in the dynamic\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster string table, the offset of that string is stored in the\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster dynamic entry. If the string does not exist in the string table,\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster but there is room to add it, the new string is added and then\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster the offset is placed in the dynamic entry.\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_OPTDESC_DYNNDX "\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Interpret the elt argument as a direct index into the dynamic\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster section, rather than as a DT_ tag value.\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Command argument description strings
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_A1_TAG_ELT "\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Dynamic element to be examined or changed. By default, this\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster is a DT_ tag value. The index of the first element in the\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster dynamic section that has the specified tag value will be used.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster The value specified can be one of the well known DT_ constants,\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster or any integer.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster If the -dynndx option is specified, elt is instead interpreted\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster as a simple integer index into the dynamic section.\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_A2_TAG_VALUE "\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Value to be set for d_tag field of specified dynamic\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster element. Tag values can be specified using the well known\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster DT_ symbolic constants from /usr/include/sys/link.h, or\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster as integers.\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_ARGDESC_ELT "\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Element within dynamic section. By default, this is a tag\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster value. In this case, the index of the first dynamic element\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster with the specified tag value will be used. Tag values can\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster be specified using the well known DT_ symbolic constants from\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /usr/include/sys/link.h, or as integers. If the -dynndx\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster option is specified, then elt is instead interpreted as a\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster direct numeric index into the dynamic section.\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_A2_VALUE_VALUE "\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Value to set for specified dynamic section element. By\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster default, this is a numeric value which is used directly.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster If the -s option is used, this is a string value, and the\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster dynamic element will receive the numeric offset of the\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster specified string from within the associated dynamic string\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster table.\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_A2_DELETE_COUNT "\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Number of dynamic elements to delete, starting at the\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster specified position. This value cannot exceed the number\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster of slots remaining in the table below the specified position.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster If count is not supplied, a single element is deleted.\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_A2_MOVE_DST_INDEX "\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Numeric index within dynamic section to which the element(s)\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster should be moved.\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_A3_MOVE_COUNT "\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Number of dynamic elements to move. This value cannot\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster exceed the number of slots remaining in the table below\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster the specified position. If count is not supplied, a\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster single element is moved.\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_A1_RUNPATH_NEWPATH "\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster New runpath string for the ELF object.\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_A1_POSFLAG1_VALUE "\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Position dependent state flags which are applied to the\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster element immediately following. This can be an integer\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster value, or any of the DF_P1_ symbolic constants defined\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster in /usr/include/sys/link.h\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_A1_FLAGS_VALUE "\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Flag values. This can be an integer value, or any of the\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster DF_ symbolic constants defined in /usr/include/sys/link.h\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_A1_FLAGS1_VALUE "\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Flag values. This can be an integer value, or any of the\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster DF_1_ symbolic constants defined in /usr/include/sys/link.h\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_A1_FEATURE1_VALUE "\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Feature values. This can be an integer value, or any of\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster the DTF_1_ symbolic constants defined in\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /usr/include/sys/link.h\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# Help strings
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_HELP_DUMP " \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster The dyn:dump command is used to display the contents of the\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster dynamic section using the same style used by the elfdump program.\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_HELP_TAG " \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster The dyn:tag command is used to display or alter the\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster type of an element in the dynamic section. This information\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster is found in the d_tag field of a dynamic element.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster If dyn:tag is called without arguments, the value of d_tag\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster for every element in the dynamic section is shown. If called\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster with the elt argument, the specified elements are displayed.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster If both arguments are present, the d_tag field of the specified\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster dynamic element is set to the given value.\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_HELP_VALUE " \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster The dyn:value command is used to display or alter the\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster value of an element in the dynamic section, or to add\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster a new element of a desired type. The value of a dynamic\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster element is found in the d_un union of the element.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster If dyn:value is called without arguments, the value of every\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster element in the dynamic section is shown. If called with the\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster elt argument, the value of the specified elements are displayed.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster If both arguments are present, the value of the specified\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster dynamic element is set to the given value.\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_HELP_DELETE " \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster The dyn:delete command is used to delete one or more elements\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster in the dynamic section. The elements following the deleted\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster items move up, and new DT_NULL elements are inserted at the\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster end of the dynamic section to fill the vacated space.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Other parts of the ELF object may have dependencies on the\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster position and values of existing dynamic elements. Moving or\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster deleting dynamic elements can therefore break the object,\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster and should be done with caution. Among the potential issues:\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster o\tDT_POSFLAG_1 has a positional dependency on the item that\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \tfollows it. If that item is removed, the DT_POSFLAG_1 will\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \tapply to the new item that moves below it.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster o\tSyminfo sections reference DT_NEEDED elements in the dynamic\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \tsection by index. Moving or deleting such elements will break\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \tthis dependency.\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_HELP_MOVE " \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster The dyn:move command is used to move the position of one\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster or more elements in the dynamic section. The specified\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster number of elements are moved from elt to dst_index.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Other parts of the ELF object may have dependencies on the\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster position and values of existing dynamic elements. Moving or\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster deleting dynamic elements can therefore break the object,\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster and should be done with caution. Among the potential issues:\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster o\tDT_POSFLAG_1 has a positional dependency on the item that\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \tfollows it. If that item is removed, the DT_POSFLAG_1 will\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \tapply to the new item that moves below it.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster o\tSyminfo sections reference DT_NEEDED elements in the dynamic\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \tsection by index. Moving or deleting such elements will break\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \tthis dependency.\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_HELP_RUNPATH " \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster The dyn:runpath command is used to display or alter the\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster runpath of the ELF object.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster If dyn:runpath is called without arguments, the existing runpath\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster is shown. If called with the newpath argument, the runpath is set\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster to the given string, if possible.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Not all files can be modified to have a new runpath:\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster o\tThe desired string must already exist in the dynamic string\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \ttable, or there must be enough room in the reserved section\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \tsection at the end (DT_SUNW_STRPAD) for the new string to be\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \tadded.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster o\tThe dynamic section must already have a DT_RPATH or DT_RUNPATH\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \telement, or there must be an extra DT_NULL slot at the end\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \twhere a DT_RUNPATH can be inserted.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster If the file has both DT_RPATH and DT_RUNPATH elements in\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster the dynamic section, both are set to the new value. If no\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster runpath entry exists, a new DT_RUNPATH is inserted if the room\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster for it exists.\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_HELP_POSFLAG1 " \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster The dyn:posflag1 command is used to display or alter the\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster DT_POSFLAG_1 flags values.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster If dyn:posflag1 is called without arguments, the current\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster value is shown. If one or more value arguments are present,\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster the following steps are taken:\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster o\tAll the value arguments are OR'd together.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster o\tIf the -cmp option has been specified, the new value\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \tis complemented.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster o\tThe DT_POSFLAG_1 element of the dynamic section is updated\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \twith the new value. If -and is specified, the new value is\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \tAND'd against the existing value. If -or is specified,\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \tthe new value is OR'd against the existing value. If\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \tneither -and or -or are specified, the new value replaces\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \tthe existing value.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster If the current dynamic section does not have a current\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster DT_POSFLAG_1 element, and room for it exists at the end\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster of the section, a new one is inserted.\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_HELP_FLAGS " \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster The dyn:flags command is used to display or alter the\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster value of the DT_FLAGS dynamic element.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster If dyn:flags is called without arguments, the current\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster value is shown. If one or more value arguments are present,\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster the following steps are taken:\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster o\tAll the value arguments are OR'd together.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster o\tIf the -cmp option has been specified, the new value\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \tis complemented.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster o\tThe DT_FLAGS element of the dynamic section is updated\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \twith the new value. If -and is specified, the new value is\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \tAND'd against the existing value. If -or is specified,\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \tthe new value is OR'd against the existing value. If\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \tneither -and or -or are specified, the new value replaces\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \tthe existing value.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster If the current dynamic section does not have a current\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster DT_FLAGS element, and room for it exists at the end\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster of the section, a new one is inserted.\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_HELP_FLAGS1 " \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster The dyn:flags1 command is used to display or alter the\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster value of the DT_FLAGS_1 dynamic element.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster If dyn:flags1 is called without arguments, the current\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster value is shown. If one or more value arguments are present,\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster the following steps are taken:\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster o\tAll the value arguments are OR'd together.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster o\tIf the -cmp option has been specified, the new value\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \tis complemented.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster o\tThe DT_FLAGS_1 element of the dynamic section is updated\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \twith the new value. If -and is specified, the new value is\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \tAND'd against the existing value. If -or is specified,\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \tthe new value is OR'd against the existing value. If\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \tneither -and or -or are specified, the new value replaces\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \tthe existing value.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster If the current dynamic section does not have a current\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster DT_FLAGS_1 element, and room for it exists at the end\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster of the section, a new one is inserted.\n"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster@ MSG_HELP_FEATURE1 " \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster The dyn:feature1 command is used to display or alter the\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster value of the DT_FEATURE_1 dynamic element.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster If dyn:feature1 is called without arguments, the current\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster value is shown. If one or more value arguments are present,\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster the following steps are taken:\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster o\tAll the value arguments are OR'd together.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster o\tIf the -cmp option has been specified, the new value\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \tis complemented.\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \n \
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster o\tThe DT_FEATURE_1 element of the dynamic section is updated\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \twith the new value. If -and is specified, the new value is\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \tAND'd against the existing value. If -or is specified,\n\
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster \tthe new value is OR'd against the existing value. If\n\
\tneither -and or -or are specified, the new value replaces\n\
\tthe existing value.\n\
\n\
If the current dynamic section does not have a current\n\
DT_FEATURE_1 element, and room for it exists at the end\n\
of the section, a new one is inserted.\n"
@ MSG_HELP_CHECKSUM " \
The dyn:checksum command recomputes the value of the DT_CHECKSUM\n\
dynamic element. It calls the elf32_checksum() for 32-bit objects,\n\
or elf64_checksum() for 64-bit objects, and then sets the value of\n\
the DT_CHECKSUM element to the resulting value.\n\
\n\
If the current dynamic section does not have a current\n\
DT_CHECKSUM element, and room for it exists at the end\n\
of the section, a new one is inserted.\n"
@ _END_
# The following strings represent reserved words, files, pathnames and symbols.
# Reference to this strings is via the MSG_ORIG() macro, and thus no message
# translation is required.
# Strings
@ MSG_STR_EMPTY ""
@ MSG_STR_COUNT "count"
@ MSG_STR_ELT "elt"
@ MSG_STR_DST_INDEX "dst_index"
@ MSG_STR_MINUS_ADD "-add"
@ MSG_STR_MINUS_DYNNDX "-dynndx"
@ MSG_STR_MINUS_S "-s"
@ MSG_STR_NEWPATH "newpath"
@ MSG_STR_VALUE "value"
# Format strings
@ MSG_FMT_STRNL "%s\n"
@ MSG_FMT_HEXXWORDNL "%#llx\n"
# Module name
@ MSG_MOD_NAME "dyn"
# Command names
@ MSG_CMD_DUMP "dump"
@ MSG_CMD_TAG "tag"
@ MSG_CMD_VALUE "value"
@ MSG_CMD_DELETE "delete"
@ MSG_CMD_MOVE "move"
@ MSG_CMD_RUNPATH "runpath"
@ MSG_CMD_RUNPATH_A1 "rpath"
@ MSG_CMD_POSFLAG1 "posflag1"
@ MSG_CMD_FLAGS "flags"
@ MSG_CMD_FLAGS1 "flags1"
@ MSG_CMD_FEATURE1 "feature1"
@ MSG_CMD_CHECKSUM "checksum"