Bug 29571 - Add 'Key to Flags' to eu-readelf output
Summary: Add 'Key to Flags' to eu-readelf output
Status: NEW
Alias: None
Product: elfutils
Classification: Unclassified
Component: general (show other bugs)
Version: unspecified
: P2 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-09-14 07:21 UTC by Martin Liska
Modified: 2023-01-13 10:00 UTC (History)
3 users (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments
elfutils: List flags meaning when running eu-readelf (804 bytes, patch)
2022-10-27 17:39 UTC, lin zhuorong
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Liska 2022-09-14 07:21:19 UTC
Please list flags meaning when running eu-readelf:

$ eu-readelf -SW a.o
There are 23 section headers, starting at offset 0xbc0:

Section Headers:
[Nr] Name                 Type         Addr             Off      Size     ES Flags Lk Inf Al
[ 0]                      NULL         0000000000000000 00000000 00000000  0        0   0  0
[ 1] .text                PROGBITS     0000000000000000 00000040 000000a1  0 AX     0   0  1
[ 2] .rela.text           RELA         0000000000000000 000007d0 00000060 24 I     20   1  8
[ 3] .data                PROGBITS     0000000000000000 000000e1 00000000  0 WA     0   0  1
[ 4] .bss                 NOBITS       0000000000000000 00000100 00000200  0 WA     0   0 32
[ 5] .rodata              PROGBITS     0000000000000000 00000100 0000000e  0 A      0   0  1
[ 6] .debug_info          PROGBITS     0000000000000000 0000010e 0000014d  0        0   0  1
[ 7] .rela.debug_info     RELA         0000000000000000 00000830 000001b0 24 I     20   6  8
[ 8] .debug_abbrev        PROGBITS     0000000000000000 0000025b 000000e4  0        0   0  1
[ 9] .debug_aranges       PROGBITS     0000000000000000 0000033f 00000030  0        0   0  1
[10] .rela.debug_aranges  RELA         0000000000000000 000009e0 00000030 24 I     20   9  8
[11] .debug_line          PROGBITS     0000000000000000 0000036f 0000009e  0        0   0  1
[12] .rela.debug_line     RELA         0000000000000000 00000a10 00000090 24 I     20  11  8
[13] .debug_str           PROGBITS     0000000000000000 0000040d 000000c6  1 MS     0   0  1
[14] .debug_line_str      PROGBITS     0000000000000000 000004d3 00000087  1 MS     0   0  1
[15] .comment             PROGBITS     0000000000000000 0000055a 00000057  1 MS     0   0  1
[16] .note.GNU-stack      PROGBITS     0000000000000000 000005b1 00000000  0        0   0  1
[17] .note.gnu.property   NOTE         0000000000000000 000005b8 00000030  0 A      0   0  8
[18] .eh_frame            PROGBITS     0000000000000000 000005e8 00000078  0 A      0   0  8
[19] .rela.eh_frame       RELA         0000000000000000 00000aa0 00000048 24 I     20  18  8
[20] .symtab              SYMTAB       0000000000000000 00000660 00000150 24       21   9  8
[21] .strtab              STRTAB       0000000000000000 000007b0 0000001c  0        0   0  1
[22] .shstrtab            STRTAB       0000000000000000 00000ae8 000000d3  0        0   0  1

$ readelf -SW a.o
There are 23 section headers, starting at offset 0xbc0:

Section Headers:
  [Nr] Name              Type            Address          Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            0000000000000000 000000 000000 00      0   0  0
  [ 1] .text             PROGBITS        0000000000000000 000040 0000a1 00  AX  0   0  1
  [ 2] .rela.text        RELA            0000000000000000 0007d0 000060 18   I 20   1  8
  [ 3] .data             PROGBITS        0000000000000000 0000e1 000000 00  WA  0   0  1
  [ 4] .bss              NOBITS          0000000000000000 000100 000200 00  WA  0   0 32
  [ 5] .rodata           PROGBITS        0000000000000000 000100 00000e 00   A  0   0  1
  [ 6] .debug_info       PROGBITS        0000000000000000 00010e 00014d 00      0   0  1
  [ 7] .rela.debug_info  RELA            0000000000000000 000830 0001b0 18   I 20   6  8
  [ 8] .debug_abbrev     PROGBITS        0000000000000000 00025b 0000e4 00      0   0  1
  [ 9] .debug_aranges    PROGBITS        0000000000000000 00033f 000030 00      0   0  1
  [10] .rela.debug_aranges RELA            0000000000000000 0009e0 000030 18   I 20   9  8
  [11] .debug_line       PROGBITS        0000000000000000 00036f 00009e 00      0   0  1
  [12] .rela.debug_line  RELA            0000000000000000 000a10 000090 18   I 20  11  8
  [13] .debug_str        PROGBITS        0000000000000000 00040d 0000c6 01  MS  0   0  1
  [14] .debug_line_str   PROGBITS        0000000000000000 0004d3 000087 01  MS  0   0  1
  [15] .comment          PROGBITS        0000000000000000 00055a 000057 01  MS  0   0  1
  [16] .note.GNU-stack   PROGBITS        0000000000000000 0005b1 000000 00      0   0  1
  [17] .note.gnu.property NOTE            0000000000000000 0005b8 000030 00   A  0   0  8
  [18] .eh_frame         PROGBITS        0000000000000000 0005e8 000078 00   A  0   0  8
  [19] .rela.eh_frame    RELA            0000000000000000 000aa0 000048 18   I 20  18  8
  [20] .symtab           SYMTAB          0000000000000000 000660 000150 18     21   9  8
  [21] .strtab           STRTAB          0000000000000000 0007b0 00001c 00      0   0  1
  [22] .shstrtab         STRTAB          0000000000000000 000ae8 0000d3 00      0   0  1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
  L (link order), O (extra OS processing required), G (group), T (TLS),
  C (compressed), x (unknown), o (OS specific), E (exclude),
  D (mbind), l (large), p (processor specific)
Comment 1 lin zhuorong 2022-10-27 17:39:06 UTC
Created attachment 14419 [details]
elfutils: List flags meaning when running eu-readelf

elfutils: List flags meaning when running eu-readelf
Comment 2 Mark Wielaard 2022-10-30 01:10:18 UTC
Comment on attachment 14419 [details]
elfutils: List flags meaning when running eu-readelf

Thanks. But O is for "Ordered" (binutils doesn't seem to have that), N is for "extra OS processing required" (what binutils uses O for), R is for GNU Retain. We don't show 'D' for mbind (we probably should). Nor do we show 'l' for SHF_X86_64_LARGE (we don't even recognize that).
Comment 3 Martin Liska 2023-01-13 08:58:35 UTC
@Mark: Can you please push the patch?
Comment 4 Mark Wielaard 2023-01-13 10:00:35 UTC
(In reply to Martin Liska from comment #3)
> @Mark: Can you please push the patch?

No, please see comment #2 for various issues that need to be resolved first.