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 2008 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 'ehdr' module 31 32@ MSG_ID_ELFEDIT_EHDR 33 34 35# Debug messages 36@ MSG_DEBUG_E_S_OK "ehdr.%s: value unchanged: %s\n" 37@ MSG_DEBUG_E_S_CHG "ehdr.%s: change from %s to %s\n" 38@ MSG_DEBUG_E_D_OK "ehdr.%s: value unchanged: %d\n" 39@ MSG_DEBUG_E_D_CHG "ehdr.%s: change from %d to %d\n" 40@ MSG_DEBUG_E_LLX_OK "ehdr.%s: value unchanged: %#llx\n" 41@ MSG_DEBUG_E_LLX_CHG "ehdr.%s: change from %#llx to %#llx\n" 42@ MSG_DEBUG_EI_S_S_OK "ehdr.e_ident[%s]: value unchanged: %s\n"; 43@ MSG_DEBUG_EI_S_S_CHG "ehdr.e_ident[%s]: change from %s to %s\n" 44@ MSG_DEBUG_EI_S_X_OK "ehdr.e_ident[%s]: value unchanged: %#x\n"; 45@ MSG_DEBUG_EI_S_X_CHG "ehdr.e_ident[%s]: change from %#x to %#x\n" 46@ MSG_DEBUG_EI_D_X_OK "ehdr.e_ident[%d]: value unchanged: %#x\n" 47@ MSG_DEBUG_EI_D_X_CHG "ehdr.e_ident[%d]: change from %#x to %#x\n" 48@ MSG_DEBUG_SHDR0_D_OK "shdr[0].%s: value unchanged: %d\n" 49@ MSG_DEBUG_SHDR0_D_CHG "shdr[0].%s: change from %d to %d\n" 50@ MSG_DEBUG_NOTSTRTAB "ehdr.%s: ELF warning: section is not a \ 51 string table: %d\n" 52 53 54# Module description 55 56@ MSG_MOD_DESC "ELF Header" 57 58 59# 1-line description strings 60 61@ MSG_DESC_DUMP "Dump ELF Header" 62@ MSG_DESC_E_IDENT "ELF Identification" 63@ MSG_DESC_E_TYPE "Object File Type" 64@ MSG_DESC_E_MACHINE "Machine Architecture" 65@ MSG_DESC_E_VERSION "Object File Version" 66@ MSG_DESC_E_ENTRY "Starting Virtual Address" 67@ MSG_DESC_E_PHOFF "Program Header Table File Offset" 68@ MSG_DESC_E_SHOFF "Section Header Table File Offset" 69@ MSG_DESC_E_FLAGS "Processor-Specific Flags" 70@ MSG_DESC_E_EHSIZE "ELF Header's Size" 71@ MSG_DESC_E_PHENTSIZE "Program Header Table Entry Size" 72@ MSG_DESC_E_PHNUM "Number Program Header Entries" 73@ MSG_DESC_E_SHENTSIZE "Section Header Table Entry Size" 74@ MSG_DESC_E_SHNUM "Number Section Header Entries" 75@ MSG_DESC_E_SHSTRNDX "Section Name String Table Index" 76 77@ MSG_DESC_EI_MAG0 "File Identification Byte #1" 78@ MSG_DESC_EI_MAG1 "File Identification Byte #2" 79@ MSG_DESC_EI_MAG2 "File Identification Byte #3" 80@ MSG_DESC_EI_MAG3 "File Identification Byte #4" 81@ MSG_DESC_EI_CLASS "File Class (System Word Size)" 82@ MSG_DESC_EI_DATA "Data Encoding (Byte Order)" 83@ MSG_DESC_EI_VERSION "File Version" 84@ MSG_DESC_EI_OSABI "Operating System / ABI Identification" 85@ MSG_DESC_EI_ABIVERSION "ABI version" 86 87# Command option description strings 88 89@ MSG_OPTDESC_SHNDX "\ 90 Interpret the sec argument as a section index rather than\n\ 91 as a section name. section can be one of the well known SHN_\n\ 92 symbolic constants, or any integer.\n" 93 94@ MSG_OPTDESC_SHTYP "\ 95 Interpret the sec argument as a section type rather than\n\ 96 as a section name. section can be one of the well known SHT_\n\ 97 symbolic constants, or any integer.\n" 98 99# Command argument description strings 100 101@ MSG_ARGDESC_E_IDENT_NDX "\ 102 Index of element of e_ident[] array. This can be\n\ 103 an integer value, or any of the EI_ symbolic constants\n\ 104 defined in /usr/include/sys/elf.h.\n" 105 106@ MSG_ARGDESC_E_IDENT_VALUE "\ 107 New value for element of e_ident[] array. This can be\n\ 108 an integer value, or any symbolic constants defined in\n\ 109 /usr/include/sys/elf.h that apply to the selected item.\n" 110 111@ MSG_ARGDESC_E_TYPE_VALUE "\ 112 New value for type of the ELF object. This can be\n\ 113 an integer value, or any of the ET_ symbolic constants\n\ 114 defined in /usr/include/sys/elf.h.\n" 115 116@ MSG_ARGDESC_E_MACHINE_VALUE "\ 117 New value for architecture of the ELF object. This can be\n\ 118 an integer value, or any of the EM_ symbolic constants\n\ 119 defined in /usr/include/sys/elf.h.\n" 120 121@ MSG_ARGDESC_E_VERSION_VALUE "\ 122 New value for version of the ELF object. This can be\n\ 123 an integer value, or any of the EV_ symbolic constants\n\ 124 defined in /usr/include/sys/elf.h.\n" 125 126@ MSG_ARGDESC_E_ENTRY_VALUE "\ 127 New value for virtual address to which the system first transfers control.\n" 128 129@ MSG_ARGDESC_E_PHOFF_VALUE "\ 130 New value for program header table's file offset.\n" 131 132@ MSG_ARGDESC_E_SHOFF_VALUE "\ 133 New value for section header table's file offset.\n" 134 135@ MSG_ARGDESC_E_FLAGS_VALUE "\ 136 New value for processor-specific flags. This can be an integer\n\ 137 value, or any of the EF_ symbolic constants defined in the\n\ 138 system header files\n" 139 140@ MSG_ARGDESC_E_EHSIZE_VALUE "\ 141 New value for size of ELF header, in bytes.\n" 142 143@ MSG_ARGDESC_E_PHENTSIZE_VALUE "\ 144 New value for size of one entry in the file's program header table,\n\ 145 in bytes.\n" 146 147@ MSG_ARGDESC_E_PHNUM_VALUE "\ 148 New value for number of entries in the program header table.\n" 149 150@ MSG_ARGDESC_E_SHENTSIZE_VALUE "\ 151 New value for size of one entry in the file's section header table,\n\ 152 in bytes.\n" 153 154@ MSG_ARGDESC_E_SHNUM_VALUE "\ 155 New value for number of entries in the section header table.\n" 156 157@ MSG_ARGDESC_E_SHSTRNDX_SEC "\ 158 String table section containing section name strings.\n\ 159 By default, this argument is interpreted as the name\n\ 160 of the desired section. The section index of the first\n\ 161 section with the specified name is used.\n\ 162 \n\ 163 If -shndx is set, then sec is a section index, and is\n\ 164 interpreted as an integer, or one of the well known SHN_\n\ 165 symbolic constant names.\n\ 166 \n\ 167 If -shtyp is set, then sec is a section type, and is\n\ 168 interpreted as an integer, or one of the well known SHT_\n\ 169 symbolic constant names. The section index of the first\n\ 170 section with the specified type is used.\n" 171 172@ MSG_ARGDESC_EI_MAG0_VALUE "\ 173 New value for first byte of file magic number.\n" 174 175@ MSG_ARGDESC_EI_MAG1_VALUE "\ 176 New value for second byte of file magic number.\n" 177 178@ MSG_ARGDESC_EI_MAG2_VALUE "\ 179 New value for third byte of file magic number.\n" 180 181@ MSG_ARGDESC_EI_MAG3_VALUE "\ 182 New value for fourth byte of file magic number.\n" 183 184@ MSG_ARGDESC_EI_CLASS_VALUE "\ 185 New value for file's class. This can be an integer value, or any of\n\ 186 the ELFCLASS symbolic constants defined in /usr/include/sys/elf.h.\n" 187 188@ MSG_ARGDESC_EI_DATA_VALUE "\ 189 New value for file's data encoding. This can be an integer\n\ 190 value, or any ELFDATA symbolic constants defined in\n\ 191 /usr/include/sys/elf.h.\n" 192 193# Note: EI_VERSION uses the same string as E_VERSION, above 194 195@ MSG_ARGDESC_EI_OSABI_VALUE "\ 196 New value for ABI identification of the ELF object. This can be\n\ 197 an integer value, or any of the ELFOSABI_ symbolic constants\n\ 198 defined in /usr/include/sys/elf.h.\n" 199 200@ MSG_ARGDESC_EI_ABIVERSION_VALUE "\ 201 New value for version of the ABI to which the object is targeted.\n" 202 203 204# Help strings 205 206@ MSG_HELP_DUMP " \ 207 The ehdr:dump command is used to display the contents of\n\ 208 the ELF header using the same style used by the elfdump program.\n" 209 210@ MSG_HELP_E_IDENT " \ 211 Examine or modify ELF Identification information for the\n\ 212 object. This information is found in the e_ident array in\n\ 213 the ELF header.\n\ 214 \n\ 215 If ehdr:e_ident is called without any argument, all values\n\ 216 the value in e_ident are shown. If called with the index\n\ 217 argument, the selected element of e_ident is shown. If also\n\ 218 called with the value argument, the selected e_ident element\n\ 219 is updated with the new value.\n" 220 221 222@ MSG_HELP_E_TYPE " \ 223 Examine or modify the object file type. This information is\n\ 224 found in the e_type field of the ELF header.\n\ 225 \n\ 226 If ehdr:e_type is called without an argument, the value of\n\ 227 e_type is shown. If called with the value argument, the\n\ 228 e_type field is updated with the new value.\n\ 229 \n\ 230 Note: Changing the type code of an object does not change the\n\ 231 other contents of the file, and is unlikely to produce a usable\n\ 232 ELF object.\n" 233 234 235@ MSG_HELP_E_MACHINE " \ 236 Examine or modify the required architecture of the object.\n\ 237 This information is found in the e_machine field of the\n\ 238 ELF header.\n\ 239 \n\ 240 If ehdr:e_machine is called without an argument, the value of\n\ 241 e_machine is shown. If called with the value argument, the\n\ 242 e_machine field is updated with the new value.\n\ 243 \n\ 244 Note: Changing the architecture code of an object does not change the\n\ 245 other contents of the file, and is unlikely to produce a usable\n\ 246 ELF object.\n" 247 248 249@ MSG_HELP_E_VERSION " \ 250 Examine or modify the object file version. This information\n\ 251 is found in the e_version field of the ELF header.\n\ 252 \n\ 253 If ehdr:e_version is called without an argument, the value of\n\ 254 e_version is shown. If called with the value argument, the\n\ 255 e_version field is updated with the new value.\n\ 256 \n\ 257 Note: The e_ident[EI_VERSION] element of the ELF header\n\ 258 identification array also contains a version value. These\n\ 259 two fields should be set to the same value. Use the\n\ 260 ehdr:ei_version command to change that element.\n" 261 262 263@ MSG_HELP_E_ENTRY " \ 264 Examine or modify the virtual address to which the system\n\ 265 first transfers control, thus starting the process. This\n\ 266 information is found in the e_entry field of the ELF header.\n\ 267 If the file has no associated entry point, this member\n\ 268 holds zero.\n\ 269 \n\ 270 If ehdr:e_entry is called without an argument, the value of\n\ 271 e_entry is shown. If called with the value argument, the\n\ 272 e_entry field is updated with the new value.\n\ 273 \n\ 274 Note: The entry point of an object is highly system\n\ 275 dependent. Changing it is likely to produce an object that\n\ 276 does not run properly.\n" 277 278 279@ MSG_HELP_E_PHOFF " \ 280 Examine or modify the program header table's file offset.\n\ 281 This information is found in the e_phoff field of the\n\ 282 ELF header. If the file has no program header table, this\n\ 283 member holds zero.\n\ 284 \n\ 285 If ehdr:e_phoff is called without an argument, the value of\n\ 286 e_phoff is shown. If called with the value argument, the\n\ 287 e_phoff field is updated with the new value.\n\ 288 \n\ 289 Note: Changing the e_phoff field of an object does not change\n\ 290 the actual layout of the file or move the program header table.\n\ 291 As such, changing this value is likely to produce an unusable\n\ 292 ELF object.\n" 293 294 295@ MSG_HELP_E_SHOFF " \ 296 Examine or modify the section header table's file offset.\n\ 297 This information is found in the e_shoff field of the\n\ 298 ELF header. If the file has no section header table, this\n\ 299 member holds zero.\n\ 300 \n\ 301 If ehdr:e_shoff is called without an argument, the value of\n\ 302 e_shoff is shown. If called with the value argument, the\n\ 303 e_shoff field is updated with the new value.\n\ 304 \n\ 305 Note: Changing the e_shoff field of an object does not change\n\ 306 the actual layout of the file or move the section header table.\n\ 307 As such, changing this value is likely to produce an unusable\n\ 308 ELF object.\n" 309 310 311@ MSG_HELP_E_FLAGS " \ 312 Examine or modify the processor specific flags associated\n\ 313 with the file. This information is found in the e_flags\n\ 314 field of the ELF header.\n\ 315 \n\ 316 If ehdr:e_flags is called without an argument, the value of\n\ 317 e_flags is shown. If called with one or more flag_value\n\ 318 arguments, the the following steps are taken:\n\ 319 \n \ 320 o\tAll the flag_value arguments are OR'd together.\n\ 321 \n \ 322 o\tIf the -cmp option has been specified, the new value\n\ 323 \tis complemented.\n\ 324 \n \ 325 o\tThe e_flags field of the ELF header is updated with\n\ 326 \tthe new value. If -and is specified, the new value is\n\ 327 \tAND'd against the existing value. If -or is specified,\n\ 328 \tthe new value is OR'd against the existing value. If\n\ 329 \tneither -and or -or are specified, the new value replaces\n\ 330 \tthe existing value.\n\ 331 \n\ 332 Note: Changing the e_flags field of an object does not change\n\ 333 the code contained in the file. Setting a flag that implies\n\ 334 an ability the existing code cannot support will produce an\n\ 335 unusable ELF object.\n" 336 337 338@ MSG_HELP_E_EHSIZE " \ 339 Examine or modify the size of the ELF header. This information\n\ 340 is found in the e_ehsize field of the ELF header.\n\ 341 \n\ 342 If ehdr:e_ehsize is called without an argument, the value of\n\ 343 e_ehsize is shown. If called with the value argument, the\n\ 344 e_ehsize field is updated with the new value.\n\ 345 \n\ 346 Note: Changing the e_ehsize field of the ELF header does not\n\ 347 change the size of the actual ELF header data structure. Setting\n\ 348 it to a different value is likely to produce an unusable ELF object.\n" 349 350 351@ MSG_HELP_E_PHENTSIZE " \ 352 Examine or modify the size of one entry in the file's program\n\ 353 header table. This information is found in the e_phentsize\n\ 354 field of the ELF header.\n\ 355 \n\ 356 If ehdr:e_phentsize is called without an argument, the value of\n\ 357 e_phentsize is shown. If called with the value argument, the\n\ 358 e_phentsize field is updated with the new value.\n\ 359 \n\ 360 Note: Changing the e_phentsize field of the ELF header does\n\ 361 not change the size of the actual program header array elements.\n\ 362 Setting it to a different value is likely to produce an unusable\n\ 363 ELF object.\n" 364 365 366@ MSG_HELP_E_PHNUM " \ 367 Examine or modify the number of entries in the program header\n\ 368 table. This information is found in the e_phnum field of the\n\ 369 ELF header, or in the sh_link field of the first section header\n\ 370 in the case of extended program indexes.\n\ 371 \n\ 372 If the number of program headers is greater than or equal\n\ 373 to PN_XNUM (0xffff), e_phnum has the value PN_XNUM, and the\n\ 374 actual number of program header table entries is contained\n\ 375 in the sh_info field of the section header at index 0.\n\ 376 \n\ 377 If ehdr:e_phnum is called without an argument, the number\n\ 378 of program headers is shown. If called with the value argument,\n\ 379 the number is updated with the new value.\n\ 380 \n\ 381 Note: Changing e_phnum and/or the sh_link field of the first\n\ 382 section header does not change the size of the actual program\n\ 383 header array in the file.\n" 384 385 386@ MSG_HELP_E_SHENTSIZE " \ 387 Examine or modify the size of one entry in the file's section\n\ 388 header table. This information is found in the e_shentsize\n\ 389 field of the ELF header.\n\ 390 \n\ 391 If ehdr:e_shentsize is called without an argument, the value of\n\ 392 e_shentsize is shown. If called with the value argument, the\n\ 393 e_shentsize field is updated with the new value.\n\ 394 \n\ 395 Note: Changing the e_shentsize field of the ELF header does\n\ 396 not change the size of the actual section header array elements.\n\ 397 Setting it to a different value is likely to produce an unusable\n\ 398 ELF object.\n" 399 400 401@ MSG_HELP_E_SHNUM " \ 402 Examine or modify the number of entries in the section header\n\ 403 table. This information is found in the e_shnum field of the\n\ 404 ELF header, or in the sh_size field of the first section header\n\ 405 in the case of extended section indexes.\n\ 406 \n\ 407 If the number of sections is greater than or equal to\n\ 408 SHN_LORESERVE (0xff00), e_shnum has the value zero, and\n\ 409 the actual number of section header table entries is\n\ 410 contained in the sh_size field of the section header\n\ 411 at index 0.\n\ 412 \n\ 413 If ehdr:e_shnum is called without an argument, the number of\n\ 414 sections is shown. If called with the value argument, the\n\ 415 number of sections is updated with the new value.\n\ 416 \n\ 417 Note: Changing e_shnum and/or the sh_size field of the first\n\ 418 section header does not change the size of the actual section\n\ 419 header array in the file.\n" 420 421 422@ MSG_HELP_E_SHSTRNDX " \ 423 Examine or modify the section table index of the entry that is\n\ 424 associated with the section name string table. This information\n\ 425 is found in the e_shstrndx field of the ELF header, or in the\n\ 426 sh_link field of the first section header in the case of\n\ 427 extended section indexes. If the file has no section name\n\ 428 string table, this member holds the value SHN_UNDEF.\n\ 429 \n\ 430 If the section name string table section index is greater\n\ 431 than or equal to SHN_LORESERVE (0xff00), e_shstrndx has the\n\ 432 value SHN_XINDEX (0xffff) and the actual index of the section\n\ 433 name string table section is contained in the sh_link field of\n\ 434 the section header at index 0.\n\ 435 \n\ 436 If ehdr:e_shstrndx is called without an argument, the index of\n\ 437 the section name string table is shown. If called with the value\n\ 438 argument, the ELF header is updated with the new value.\n\ 439 \n\ 440 Note: The e_shstrndx field of the ELF header must reference\n\ 441 a string table section. Otherwise, diagnostic tools will be\n\ 442 confused by the resulting object.\n" 443 444 445@ MSG_HELP_EI_MAG0 " \ 446 Examine or modify the first byte of the object's \"magic number\".\n\ 447 The magic number is the first 4 bytes of the object file, and is\n\ 448 used to identify it as being an ELF object. This information\n\ 449 is found in the e_ident[EI_MAG0] field of the ELF header.\n\ 450 \n\ 451 If ehdr:ei_mag0 is called without an argument, the value of\n\ 452 e_ident[EI_MAG0] is shown. If called with the value argument,\n\ 453 the e_ident[EI_MAG0] field is updated with the new value.\n\ 454 \n\ 455 Note: Changing the e_ident[EI_MAG0] field of the ELF header\n\ 456 to a value other than 0x7f will cause the system to fail to\n\ 457 identify it as an ELF object.\n" 458 459 460@ MSG_HELP_EI_MAG1 " \ 461 Examine or modify the second byte of the object's \"magic number\".\n\ 462 The magic number is the first 4 bytes of the object file, and is\n\ 463 used to identify it as being an ELF object. This information\n\ 464 is found in the e_ident[EI_MAG1] field of the ELF header.\n\ 465 \n\ 466 If ehdr:ei_mag1 is called without an argument, the value of\n\ 467 e_ident[EI_MAG1] is shown. If called with the value argument,\n\ 468 the e_ident[EI_MAG1] field is updated with the new value.\n\ 469 \n\ 470 Note: Changing the e_ident[EI_MAG1] field of the ELF header\n\ 471 to a value other than 0x45 ('E') will cause the system to\n\ 472 fail to identify it as an ELF object.\n" 473 474 475@ MSG_HELP_EI_MAG2 " \ 476 Examine or modify the third byte of the object's \"magic number\".\n\ 477 The magic number is the first 4 bytes of the object file, and is\n\ 478 used to identify it as being an ELF object. This information\n\ 479 is found in the e_ident[EI_MAG2] field of the ELF header.\n\ 480 \n\ 481 If ehdr:ei_mag2 is called without an argument, the value of\n\ 482 e_ident[EI_MAG2] is shown. If called with the value argument,\n\ 483 the e_ident[EI_MAG2] field is updated with the new value.\n\ 484 \n\ 485 Note: Changing the e_ident[EI_MAG2] field of the ELF header\n\ 486 to a value other than 0x4c ('L') will cause the system to\n\ 487 fail to identify it as an ELF object.\n" 488 489 490@ MSG_HELP_EI_MAG3 " \ 491 Examine or modify the fourth byte of the object's \"magic number\".\n\ 492 The magic number is the first 4 bytes of the object file, and is\n\ 493 used to identify it as being an ELF object. This information\n\ 494 is found in the e_ident[EI_MAG3] field of the ELF header.\n\ 495 \n\ 496 If ehdr:ei_mag3 is called without an argument, the value of\n\ 497 e_ident[EI_MAG3] is shown. If called with the value argument,\n\ 498 e_ident[EI_MAG3] field is updated with the new value.\n\ 499 \n\ 500 Note: Changing the e_ident[EI_MAG3] field of the ELF header\n\ 501 to a value other than 0x46 ('F') will cause the system to\n\ 502 fail to identify it as an ELF object.\n" 503 504 505@ MSG_HELP_EI_CLASS " \ 506 Examine or modify the file's class (system word size). This\n\ 507 information is found in the e_ident[EI_CLASS] field of the\n\ 508 ELF header.\n\ 509 \n\ 510 If ehdr:ei_class is called without an argument, the value of\n\ 511 e_ident[EI_CLASS] is shown. If called with the value argument,\n\ 512 the e_ident[EI_CLASS] field is updated with the new value.\n\ 513 \n\ 514 Note: Changing the e_ident[EI_CLASS] field of the ELF header\n\ 515 does not alter the contents of the file, and is therefore\n\ 516 likely to render the file unusable.\n" 517 518@ MSG_HELP_EI_DATA " \ 519 Examine or modify the file's data encoding (byte order). This\n\ 520 information is found in the e_ident[EI_DATA] field of the\n\ 521 ELF header.\n\ 522 \n\ 523 If ehdr:ei_data is called without an argument, the value of\n\ 524 e_ident[EI_DATA] is shown. If called with the value argument,\n\ 525 the e_ident[EI_DATA] field is updated with the new value.\n\ 526 \n\ 527 Note: Changing the e_ident[EI_DATA] field of the ELF header\n\ 528 does not alter the contents of the file or the byte order\n\ 529 of the data, and is therefore likely to render the file unusable.\n" 530 531 532@ MSG_HELP_EI_VERSION " \ 533 Examine or modify the object file version. This information\n\ 534 is found in the e_ident[EI_VERSION] field of the ELF header.\n\ 535 \n\ 536 If ehdr:ei_version is called without an argument, the value\n\ 537 of e_ident[EI_VERSION] is shown. If called with the value\n\ 538 argument, the e_ident[EI_VERSION] field is updated with the\n\ 539 new value.\n\ 540 \n\ 541 Note: The e_version element of the ELF header also contains\n\ 542 a version value. These two fields should be set to the same\n\ 543 value. Use the ehdr:e_version command to change that element.\n" 544 545 546@ MSG_HELP_EI_OSABI " \ 547 Examine or modify the operating system / ABI identification for\n\ 548 the object. This information is kept in the e_ident[EI_OSABI]\n\ 549 field of the ELF header.\n\ 550 \n\ 551 If ehdr:ei_osabi is called without arguments, current value of\n\ 552 e_ident[EI_OSABI] is shown. If called with the value argument,\n\ 553 the e_ident[EI_OSABI] field is updated with the new value.\n\ 554 \n\ 555 Note: Changing the e_ident[EI_OSABI] field of the ELF header\n\ 556 does not alter the contents of the file, or cause the actual\n\ 557 ABI to be altered. Setting an incompatible ABI value is likely\n\ 558 to cause the object to become unusable.\n" 559 560 561@ MSG_HELP_EI_ABIVERSION " \ 562 Examine or modify the ABI version for the object. This\n\ 563 information is kept in the e_ident[EI_ABIVERSION] field of\n\ 564 the ELF header.\n\ 565 \n\ 566 If ehdr:ei_abiversion is called without arguments, the current\n\ 567 value of e_ident[EI_ABIVERSION] is shown. If called with the\n\ 568 value argument, the e_ident[EI_ABIVERSION] field is updated with\n\ 569 the new value.\n\ 570 \n\ 571 Note: The meaning of the e_ident[EI_ABIVERSION] field of\n\ 572 the ELF header depends on the value of e_ident[EI_OSABI]\n\ 573 (See ehdr:ei_osabi).\n" 574 575 576@ _END_ 577 578 579 580# Strings 581 582@ MSG_STR_EMPTY "" 583@ MSG_STR_NL "\n" 584@ MSG_STR_VALUE "value" 585@ MSG_STR_EIDENT_HDR "e_ident:\n" 586@ MSG_STR_INDEX "index" 587@ MSG_STR_SEC "sec" 588@ MSG_STR_TYPE "type" 589@ MSG_STR_VERSION "version" 590@ MSG_STR_OFFSET "offset" 591@ MSG_STR_FLAGVALUE "flag_value" 592@ MSG_STR_MINUS_SHNDX "-shndx" 593@ MSG_STR_MINUS_SHTYP "-shtyp" 594@ MSG_STR_SH_INFO "sh_info" 595@ MSG_STR_SH_LINK "sh_link" 596@ MSG_STR_SH_SIZE "sh_size" 597 598 599# Format strings 600@ MSG_FMT_BKTSTR "[%s]" 601@ MSG_FMT_BKTINT "[%d]" 602@ MSG_FMT_STRNL "%s\n" 603@ MSG_FMT_DECNUMNL "%d\n" 604@ MSG_FMT_HEXNUM "%#x" 605@ MSG_FMT_HEXNUMNL "%#x\n" 606@ MSG_FMT_HEXNUM_QCHR "%#x ('%c')" 607@ MSG_FMT_EI_ELT " %-18s%s\n" 608 609 610 611 612# The following strings represent reserved words, files, pathnames and symbols. 613# Reference to this strings is via the MSG_ORIG() macro, and thus no message 614# translation is required. 615 616 617# Module name 618 619@ MSG_MOD_NAME "ehdr" 620 621 622# Command names 623 624@ MSG_CMD_DUMP "dump" 625 626@ MSG_CMD_E_IDENT "e_ident" 627@ MSG_CMD_E_TYPE "e_type" 628@ MSG_CMD_E_MACHINE "e_machine" 629@ MSG_CMD_E_VERSION "e_version" 630@ MSG_CMD_E_ENTRY "e_entry" 631@ MSG_CMD_E_PHOFF "e_phoff" 632@ MSG_CMD_E_SHOFF "e_shoff" 633@ MSG_CMD_E_FLAGS "e_flags" 634@ MSG_CMD_E_EHSIZE "e_ehsize" 635@ MSG_CMD_E_PHENTSIZE "e_phentsize" 636@ MSG_CMD_E_PHNUM "e_phnum" 637@ MSG_CMD_E_SHENTSIZE "e_shentsize" 638@ MSG_CMD_E_SHNUM "e_shnum" 639@ MSG_CMD_E_SHSTRNDX "e_shstrndx" 640 641@ MSG_CMD_EI_MAG0 "ei_mag0" 642@ MSG_CMD_EI_MAG1 "ei_mag1" 643@ MSG_CMD_EI_MAG2 "ei_mag2" 644@ MSG_CMD_EI_MAG3 "ei_mag3" 645@ MSG_CMD_EI_CLASS "ei_class" 646@ MSG_CMD_EI_DATA "ei_data" 647@ MSG_CMD_EI_VERSION "ei_version" 648@ MSG_CMD_EI_OSABI "ei_osabi" 649@ MSG_CMD_EI_ABIVERSION "ei_abiversion" 650