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