1# 2# CDDL HEADER START 3# 4# The contents of this file are subject to the terms of the 5# Common Development and Distribution License (the "License"). 6# You may not use this file except in compliance with the License. 7# 8# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9# or http://www.opensolaris.org/os/licensing. 10# See the License for the specific language governing permissions 11# and limitations under the License. 12# 13# When distributing Covered Code, include this CDDL HEADER in each 14# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15# If applicable, add the following below this CDDL HEADER, with the 16# fields enclosed by brackets "[]" replaced with your own identifying 17# information: Portions Copyright [yyyy] [name of copyright owner] 18# 19# CDDL HEADER END 20# 21 22# 23# Copyright 2007 Sun Microsystems, Inc. All rights reserved. 24# Use is subject to license terms. 25# 26# ident "%Z%%M% %I% %E% SMI" 27 28@ _START_ 29 30# Message file for elfedit 'sym' module 31 32@ MSG_ID_ELFEDIT_SYM 33 34 35# Command argument strings 36@ MSG_ARG_SECNDX "symbol section index" 37@ MSG_ARG_SYM "Name of desired symbol within symbol table(s)" 38@ MSG_ARG_SYMVIS "symbol visibility" 39@ MSG_ARG_SYMBIND "symbol binding" 40 41# Names of things we allocate dynamically 42 43@ MSG_ALLOC_ARGSTATE "symbol table state" 44 45# Format strings 46@ MSG_FMT_SYMTAB "Symbol Table Section: %s\n" 47 48# Debug messages 49 50@ MSG_DEBUG_S_OK "[%d: %s][%d].%s: value unchanged: %s\n" 51@ MSG_DEBUG_S_CHG "[%d: %s][%d].%s: change from %s to %s\n" 52@ MSG_DEBUG_EXT_S_OK "[%d: %s][%d]: value unchanged: %s\n" 53@ MSG_DEBUG_EXT_S_CHG "[%d: %s][%d]: change from %s to %s\n" 54@ MSG_DEBUG_D_OK "[%d: %s][%d].%s: value unchanged: %d\n" 55@ MSG_DEBUG_D_CHG "[%d: %s][%d].%s: change from %d to %d\n" 56@ MSG_DEBUG_LLX_OK "[%d: %s][%d].%s: value unchanged: %#llx\n" 57@ MSG_DEBUG_LLX_CHG "[%d: %s][%d].%s: change from %#llx to %#llx\n" 58@ MSG_DEBUG_SHNDX_UNDEF0 "ELF warning: symbol [0] is expected to reference \ 59 SHN_UNDEF\n" 60@ MSG_DEBUG_SHNDX_XINDEX "ELF warning: SHN_XINDEX is not supposed to \ 61 be set directly\n" 62@ MSG_DEBUG_SHNDX_EFORCE "[%d: %s][%d]: ELF warning: Section index does not \ 63 normally go in extended index section: %d\n" 64@ MSG_DEBUG_LBINDGSYM "[%d: %s][%d]: ELF warning: local binding set for \ 65 symbol in global part of symbol table \ 66 (shdr[%d].sh_info == %d)\n" 67@ MSG_DEBUG_GBINDLSYM "[%d: %s][%d]: ELF warning: global binding set for \ 68 symbol in local part of symbol table \ 69 (shdr[%d].sh_info == %d)\n" 70@ MSG_DEBUG_DYNSYMNAMCHG "[%d: %s][%d]: ELF warning: changing the name \ 71 of a symbol in the dynamic symbol table will confuse \ 72 the hash section and likely render the object \ 73 unusable\n" 74@ MSG_DEBUG_CHGSYMELT0 "[%d: %s][%d]: ELF warning: Symbol [0] is expected \ 75 to be NULL\n" 76 77# Errors 78 79@ MSG_ERR_NOSYMTAB "Object does not have any symbol tables\n"; 80@ MSG_ERR_NEEDEXPSYMTAB "The -symndx option requires a symbol table to be \ 81 explicitly specified (-shnam, -shndx, or \ 82 -shtyp options)\n" 83 84 85 86# Module description 87 88@ MSG_MOD_DESC "Symbol Section" 89 90 91# 1-line description strings 92 93@ MSG_DESC_DUMP "Dump Symbol Table" 94@ MSG_DESC_ST_BIND "Symbol binding" 95@ MSG_DESC_ST_INFO "st_info (binding and type)" 96@ MSG_DESC_ST_NAME "Symbol name" 97@ MSG_DESC_ST_OTHER "st_other (visibility)" 98@ MSG_DESC_ST_SHNDX "Symbol section index" 99@ MSG_DESC_ST_SIZE "Symbol size" 100@ MSG_DESC_ST_TYPE "Symbol type" 101@ MSG_DESC_ST_VALUE "Symbol value" 102@ MSG_DESC_ST_VISIBILITY "Symbol visibility" 103 104 105# Command option description strings 106 107@ MSG_OPTDESC_E "\ 108 Force the use of the extended index section to hold the\n\ 109 specified section index, even if it is small enough to fit\n\ 110 into the symbol st_shndx field. Note that this will produce\n\ 111 a non-standard ELF file.\n" 112@ MSG_OPTDESC_SHNDX "\ 113 Use the symbol table found in the ELF section with the\n\ 114 specified index.\n" 115@ MSG_OPTDESC_SHNAM "\ 116 Use the symbol table found in the ELF section with the\n\ 117 specified name.\n" 118@ MSG_OPTDESC_SHTYP "\ 119 Use the first symbol table found in the ELF section with\n\ 120 the specified section type.\n" 121@ MSG_OPTDESC_SECSHNDX "\ 122 Interpret the sec argument as a section index rather than\n\ 123 as a section name. section can be one of the well known SHN_\n\ 124 symbolic constants, or any integer.\n" 125@ MSG_OPTDESC_SECSHTYP "\ 126 Interpret the sec argument as a section type rather than\n\ 127 as a section name. section can be one of the well known SHT_\n\ 128 symbolic constants, or any integer.\n" 129@ MSG_OPTDESC_NAME_OFFSET "\ 130 Interpret the name argument as a string table offset rather\n\ 131 than as a string.\n" 132 133@ MSG_OPTDESC_SYMNDX "\ 134 The sym argument supplies a numeric index into the symbol\n\ 135 section instead of the name of the symbol. The symbol table\n\ 136 to use must be explicitly specified (-shnam, -shndx, or\n\ 137 -shtyp option) when -symndx is used.\n". 138 139# Command argument descriptions 140 141@ MSG_A1_SYM "Name of desired symbol within symbol table.\n" 142 143@ MSG_A2_DESC_ST_BIND "Symbol binding. STB_ symbol constants are\n\ 144 accepted, as is any integer in the range 0 - 15.\n" 145 146@ MSG_A2_DESC_ST_INFO "Integer value to set for symbol st_info field.\n\ 147 Note that the fact that the value of st_info affects both\n\ 148 the symbol binding and type values.\n" 149 150@ MSG_A2_DESC_ST_NAME "\ 151 Name to set for symbol. If the -name_offset option is used,\n\ 152 this is an integer offset into the string table section\n\ 153 associated with the symbol table. Otherwise, it is a string,\n\ 154 which will be looked up in the symbol table (and inserted if\n\ 155 necessary, and if possible) in order to obtain the needed\n\ 156 offset value.\n" 157 158@ MSG_A2_DESC_ST_OTHER "\ 159 Integer value to set for symbol st_other field. Note\n\ 160 that the fact that the value of st_other affects the\n\ 161 symbol visibility value.\n" 162 163@ MSG_A2_DESC_ST_SEC "\ 164 Section to set for symbol section index. By default, this\n\ 165 argument is interpreted as the name of the desired section.\n\ 166 The section index of the first section with the specified\n\ 167 name is used.\n\ 168 \n\ 169 If -secshndx is set, then sec is a section index,\n\ 170 and is interpreted as an integer, or one of the well known\n\ 171 SHN_ symbolic constant names.\n\ 172 \n\ 173 If -secshtyp is set, then sec is a section type,\n\ 174 and is interpreted as an integer, or one of the well known\n\ 175 SHT_ symbolic constant names. The section index of the first\n\ 176 section with the specified type is used.\n" 177 178 179@ MSG_A2_DESC_ST_SIZE "Integer value to set for symbol size.\n" 180 181@ MSG_A2_DESC_ST_TYPE "\ 182 Symbol type. STT_ symbol constants are accepted, as is any\n\ 183 integer in the range 0 - 15.\n" 184 185@ MSG_A2_DESC_ST_VALUE "Integer value to set for symbol value.\n" 186 187@ MSG_A2_DESC_ST_VISIBILITY "\ 188 Symbol visibility. STV_ symbol constants are accepted, as\n\ 189 are integer values.\n" 190 191 192 193# Help strings 194 195@ MSG_HELP_DUMP " \ 196 The sym:dump command is used to display symbol information\n\ 197 using the same style used by the elfdump program.\n\ 198 \n\ 199 By default, symbols are taken from all available symbol tables.\n\ 200 The symbol table to use can be changed using the -shnam, -shndx,\n\ 201 or -shtyp options. Only one of these options can be used at a time.\n\ 202 \n\ 203 If sym:dump is called without arguments, information for every\n\ 204 symbol in the symbol table is shown. If called with the symndx\n\ 205 argument, the information forthe symbol at that index is\n\ 206 displayed.\n" 207 208@ MSG_HELP_ST_BIND " \ 209 The sym:st_bind command is used to display or alter symbol\n\ 210 binding. Symbol binding is found in the st_bind portion of the\n\ 211 st_info field of an ELF symbol.\n\ 212 \n\ 213 By default, symbols are taken from all available symbol tables.\n\ 214 The symbol table to use can be changed using the -shnam, -shndx,\n\ 215 or -shtyp options. Only one of these options can be used at a time.\n\ 216 \n\ 217 If sym:st_bind is called without arguments, the value of\n\ 218 st_bind for every symbol in the symbol table is shown. If\n\ 219 called with the symndx argument, the value of the symbol at that\n\ 220 index is displayed. If both arguments are present, the st_bind\n\ 221 field of the symbol at the specified index is set to the given\n\ 222 value.\n" 223 224@ MSG_HELP_ST_INFO " \ 225 The sym:st_info command is used to display or alter the\n\ 226 st_info field of the specified symbol. It provides raw access\n\ 227 to the entire st_info value. Normally, the sym:st_bind or sym:st_type\n\ 228 commands are used in preference to sym:st_info.\n\ 229 \n\ 230 By default, symbols are taken from all available symbol tables.\n\ 231 The symbol table to use can be changed using the -shnam, -shndx,\n\ 232 or -shtyp options. Only one of these options can be used at a time.\n\ 233 If sym:st_info is called without arguments, the value of st_info\n\ 234 for every symbol in the symbol table is shown. If called with the\n\ 235 symndx argument, the value of the symbol at that index is displayed.\n\ 236 If both arguments are present, the st_info field of the symbol at\n\ 237 the specified index is set to the given value.\n" 238 239@ MSG_HELP_ST_NAME " \ 240 The sym:st_name command is used to display or alter the\n\ 241 name associated with a specified symbol.\n\ 242 \n\ 243 By default, symbols are taken from all available symbol tables.\n\ 244 The symbol table to use can be changed using the -shnam, -shndx,\n\ 245 or -shtyp options. Only one of these options can be used at a time.\n\ 246 \n\ 247 If sym:st_name is called without arguments, the value of st_name\n\ 248 for every symbol in the symbol table is shown. If called with the\n\ 249 symndx argument, the name of the symbol at that index is displayed.\n\ 250 If both arguments are present, the name field of the symbol at\n\ 251 the specified index is set to the given value.\n\ 252 \n\ 253 When changing the name of a symbol, you should be aware of the\n\ 254 following limitations:\n\ 255 \n \ 256 o\tIt is only possible to change the name of a symbol in a\n\ 257 \tnon-dynamic symbol table to one of the names already found\n\ 258 \tin the associated string table.\n\ 259 \n \ 260 o\tChanging the name of a symbol in the dynamic symbol table\n\ 261 \twill lead to the hash table having inaccurate information\n\ 262 \tabout the symbol table, and is likely render the object\n\ 263 \tunusable.\n" 264 265@ MSG_HELP_ST_OTHER " \ 266 The sym:st_other command is used to display or alter the\n\ 267 st_other field of the specified symbol. It provides raw access\n\ 268 to the entire st_other value. Normally, the sym:st_visibility\n\ 269 command is used in preference to sym:st_other.\n\ 270 \n\ 271 By default, symbols are taken from all available symbol tables.\n\ 272 The symbol table to use can be changed using the -shnam, -shndx,\n\ 273 or -shtyp options. Only one of these options can be used at a time.\n\ 274 \n\ 275 If sym:st_other is called without arguments, the value of st_other\n\ 276 for every symbol in the symbol table is shown. If called with the\n\ 277 symndx argument, the value of the symbol at that index is displayed.\n\ 278 If both arguments are present, the st_other field of the symbol at\n\ 279 the specified index is set to the given value.\n" 280 281@ MSG_HELP_ST_SHNDX " \ 282 Every symbol table entry is defined in relation to some section.\n\ 283 This information is maintained in the st_shndx field of an ELF\n\ 284 symbol. The sym:st_shndx command is used to display or alter the\n\ 285 st_shndx field of the specified symbol.\n\ 286 \n\ 287 By default, symbols are taken from all available symbol tables.\n\ 288 The symbol table to use can be changed using the -shnam, -shndx,\n\ 289 or -shtyp options. Only one of these options can be used at a time.\n\ 290 \n\ 291 If sym:st_shndx is called without arguments, the value of st_shndx\n\ 292 for every symbol in the symbol table is shown. If called with the\n\ 293 symndx argument, the value of the symbol at that index is displayed.\n\ 294 If both arguments are present, the st_shndx field of the symbol at\n\ 295 the specified index is set to the given value.\n\ 296 \n\ 297 sym:st_shndx is aware of extended section indexes, and will\n\ 298 access/modify the extended index sections associated with a given\n\ 299 symbol table as necessary.\n" 300 301@ MSG_HELP_ST_SIZE " \ 302 The sym:st_size command is used to display or alter the\n\ 303 size of the specified symbol (st_size field).\n\ 304 \n\ 305 By default, symbols are taken from all available symbol tables.\n\ 306 The symbol table to use can be changed using the -shnam, -shndx,\n\ 307 or -shtyp options. Only one of these options can be used at a time.\n\ 308 \n\ 309 If sym:st_size is called without arguments, the value of st_size\n\ 310 for every symbol in the symbol table is shown. If called with\n\ 311 the symndx argument, the size of the symbol at that index is\n\ 312 displayed. If both arguments are present, the st_size field of\n\ 313 the symbol at the specified index is set to the given value.\n" 314 315@ MSG_HELP_ST_TYPE " \ 316 The sym:st_type command is used to display or alter the\n\ 317 st_type portion of the st_info field of the specified\n\ 318 symbol.\n\ 319 \n\ 320 By default, symbols are taken from all available symbol tables.\n\ 321 The symbol table to use can be changed using the -shnam, -shndx,\n\ 322 or -shtyp options. Only one of these options can be used at a time.\n\ 323 \n\ 324 If sym:st_type is called without arguments, the value of\n\ 325 st_type for every symbol in the symbol table is shown. If\n\ 326 called with the symndx argument, the value of the symbol at that\n\ 327 index is displayed. If both arguments are present, the st_type\n\ 328 field of the symbol at the specified index is set to the given value.\n" 329 330@ MSG_HELP_ST_VALUE " \ 331 The sym:st_value command is used to display or alter the\n\ 332 value of the specified symbol (st_value field).\n\ 333 \n\ 334 By default, symbols are taken from all available symbol tables.\n\ 335 The symbol table to use can be changed using the -shnam, -shndx,\n\ 336 or -shtyp options. Only one of these options can be used at a time.\n\ 337 \n\ 338 If sym:st_value is called without arguments, the value of\n\ 339 st_value for every symbol in the symbol table is shown. If\n\ 340 called with the symndx argument, the value of the symbol at that\n\ 341 index is displayed. If both arguments are present, the st_value\n\ 342 field of the symbol at the specified index is set to the given value.\n" 343 344@ MSG_HELP_ST_VISIBILITY " \ 345 The sym:st_visibility command is used to display or alter the\n\ 346 st_visibility portion of the st_other field of the specified\n\ 347 symbol.\n\ 348 \n\ 349 By default, symbols are taken from all available symbol tables.\n\ 350 The symbol table to use can be changed using the -shnam, -shndx,\n\ 351 or -shtyp options. Only one of these options can be used at a time.\n\ 352 \n\ 353 If sym:st_visibility is called without arguments, the value of\n\ 354 st_visibility for every symbol in the symbol table is shown. If\n\ 355 called with the symndx argument, the value of the symbol at that\n\ 356 index is displayed. If both arguments are present, the st_visibility\n\ 357 field of the symbol at the specified index is set to the given value.\n" 358 359 360@ _END_ 361 362 363# The following strings represent reserved words, files, pathnames and symbols. 364# Reference to this strings is via the MSG_ORIG() macro, and thus no message 365# translation is required. 366 367 368# Miscellaneous clutter 369@ MSG_STR_EMPTY "" 370@ MSG_STR_NL "\n" 371@ MSG_STR_MINUS_E "-e" 372@ MSG_STR_MINUS_SHNAM "-shnam" 373@ MSG_STR_MINUS_SHNDX "-shndx" 374@ MSG_STR_MINUS_SHTYP "-shtyp" 375@ MSG_STR_MINUS_SYMNDX "-symndx" 376@ MSG_STR_MINUS_NAME_OFFSET "-name_offset" 377@ MSG_STR_MINUS_SECSHNDX "-secshndx" 378@ MSG_STR_MINUS_SECSHTYP "-secshtyp" 379@ MSG_STR_INDEX "index" 380@ MSG_STR_NAME "name" 381@ MSG_STR_SEC "sec" 382@ MSG_STR_SYM "sym" 383@ MSG_STR_TYPE "type" 384@ MSG_STR_VALUE "value" 385 386 387# Format strings 388 389@ MSG_FMT_WORDVAL "%u" 390@ MSG_FMT_WORDVALNL "%u\n" 391@ MSG_FMT_XWORDVALNL_32 "0x%8.8x\n" 392@ MSG_FMT_XWORDVALNL_64 "0x%16.16llx\n" 393@ MSG_FMT_STRNL "%s\n" 394@ MSG_FMT_INDEX " [%lld]" 395 396 397# Module name 398 399@ MSG_MOD_NAME "sym" 400 401 402# Command names 403 404@ MSG_CMD_DUMP "dump" 405@ MSG_CMD_ST_BIND "st_bind" 406@ MSG_CMD_ST_INFO "st_info" 407@ MSG_CMD_ST_NAME "st_name" 408@ MSG_CMD_ST_OTHER "st_other" 409@ MSG_CMD_ST_SHNDX "st_shndx" 410@ MSG_CMD_ST_SIZE "st_size" 411@ MSG_CMD_ST_TYPE "st_type" 412@ MSG_CMD_ST_VALUE "st_value" 413@ MSG_CMD_ST_VISIBILITY "st_visibility" 414