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