xref: /aosp_15_r20/external/toybox/tests/readelf.test (revision cf5a6c84e2b8763fc1a7db14496fd4742913b199)
1*cf5a6c84SAndroid Build Coastguard Worker#!/bin/bash
2*cf5a6c84SAndroid Build Coastguard Worker
3*cf5a6c84SAndroid Build Coastguard Worker[ -f testing.sh ] && . testing.sh
4*cf5a6c84SAndroid Build Coastguard Worker
5*cf5a6c84SAndroid Build Coastguard Worker#testing "name" "command" "result" "infile" "stdin"
6*cf5a6c84SAndroid Build Coastguard Worker
7*cf5a6c84SAndroid Build Coastguard Workerelf=$FILES/elf/ndk-elf-note
8*cf5a6c84SAndroid Build Coastguard Worker
9*cf5a6c84SAndroid Build Coastguard Worker# toybox uses Linux kernel architecture names, so rewrite binutils with sed.
10*cf5a6c84SAndroid Build Coastguard WorkerNOSPACE=1 testing "-h" "readelf -hW $elf-full | sed s/AArch64/arm64/g" \
11*cf5a6c84SAndroid Build Coastguard Worker"ELF Header:
12*cf5a6c84SAndroid Build Coastguard Worker  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
13*cf5a6c84SAndroid Build Coastguard Worker  Class:                             ELF64
14*cf5a6c84SAndroid Build Coastguard Worker  Data:                              2's complement, little endian
15*cf5a6c84SAndroid Build Coastguard Worker  Version:                           1 (current)
16*cf5a6c84SAndroid Build Coastguard Worker  OS/ABI:                            UNIX - System V
17*cf5a6c84SAndroid Build Coastguard Worker  ABI Version:                       0
18*cf5a6c84SAndroid Build Coastguard Worker  Type:                              DYN (Shared object file)
19*cf5a6c84SAndroid Build Coastguard Worker  Machine:                           arm64
20*cf5a6c84SAndroid Build Coastguard Worker  Version:                           0x1
21*cf5a6c84SAndroid Build Coastguard Worker  Entry point address:               0x660
22*cf5a6c84SAndroid Build Coastguard Worker  Start of program headers:          64 (bytes into file)
23*cf5a6c84SAndroid Build Coastguard Worker  Start of section headers:          7776 (bytes into file)
24*cf5a6c84SAndroid Build Coastguard Worker  Flags:                             0x0
25*cf5a6c84SAndroid Build Coastguard Worker  Size of this header:               64 (bytes)
26*cf5a6c84SAndroid Build Coastguard Worker  Size of program headers:           56 (bytes)
27*cf5a6c84SAndroid Build Coastguard Worker  Number of program headers:         9
28*cf5a6c84SAndroid Build Coastguard Worker  Size of section headers:           64 (bytes)
29*cf5a6c84SAndroid Build Coastguard Worker  Number of section headers:         32
30*cf5a6c84SAndroid Build Coastguard Worker  Section header string table index: 29
31*cf5a6c84SAndroid Build Coastguard Worker" "" ""
32*cf5a6c84SAndroid Build Coastguard Worker
33*cf5a6c84SAndroid Build Coastguard Worker# We format the key to flags differently and don't include obsolete ones.
34*cf5a6c84SAndroid Build Coastguard WorkerNOSPACE=1 testing "-S" "readelf -SW $elf-full | head -36" \
35*cf5a6c84SAndroid Build Coastguard Worker"There are 32 section headers, starting at offset 0x1e60:
36*cf5a6c84SAndroid Build Coastguard Worker
37*cf5a6c84SAndroid Build Coastguard WorkerSection Headers:
38*cf5a6c84SAndroid Build Coastguard Worker  [Nr] Name                 Type           Address          Off    Size   ES Flg Lk Inf Al
39*cf5a6c84SAndroid Build Coastguard Worker  [ 0]                      NULL           0000000000000000 000000 000000 00      0  0  0
40*cf5a6c84SAndroid Build Coastguard Worker  [ 1] .interp              PROGBITS       0000000000000238 000238 000015 00   A  0  0  1
41*cf5a6c84SAndroid Build Coastguard Worker  [ 2] .note.android.ident  NOTE           0000000000000250 000250 000098 00   A  0  0  4
42*cf5a6c84SAndroid Build Coastguard Worker  [ 3] .note.gnu.build-id   NOTE           00000000000002e8 0002e8 000024 00   A  0  0  4
43*cf5a6c84SAndroid Build Coastguard Worker  [ 4] .hash                HASH           0000000000000310 000310 000048 04   A  5  0  8
44*cf5a6c84SAndroid Build Coastguard Worker  [ 5] .dynsym              DYNSYM         0000000000000358 000358 000138 18   A  6  3  8
45*cf5a6c84SAndroid Build Coastguard Worker  [ 6] .dynstr              STRTAB         0000000000000490 000490 000097 00   A  0  0  1
46*cf5a6c84SAndroid Build Coastguard Worker  [ 7] .gnu.version         VERSYM         0000000000000528 000528 00001a 02   A  5  0  2
47*cf5a6c84SAndroid Build Coastguard Worker  [ 8] .gnu.version_r       VERNEED        0000000000000548 000548 000020 00   A  6  1  8
48*cf5a6c84SAndroid Build Coastguard Worker  [ 9] .rela.dyn            RELA           0000000000000568 000568 000060 18   A  5  0  8
49*cf5a6c84SAndroid Build Coastguard Worker  [10] .rela.plt            RELA           00000000000005c8 0005c8 000048 18  AI  5 19  8
50*cf5a6c84SAndroid Build Coastguard Worker  [11] .plt                 PROGBITS       0000000000000610 000610 000050 10  AX  0  0 16
51*cf5a6c84SAndroid Build Coastguard Worker  [12] .text                PROGBITS       0000000000000660 000660 00008c 00  AX  0  0  4
52*cf5a6c84SAndroid Build Coastguard Worker  [13] .eh_frame_hdr        PROGBITS       00000000000006ec 0006ec 000014 00   A  0  0  4
53*cf5a6c84SAndroid Build Coastguard Worker  [14] .eh_frame            PROGBITS       0000000000000700 000700 000030 00   A  0  0  8
54*cf5a6c84SAndroid Build Coastguard Worker  [15] .preinit_array       PREINIT_ARRAY  0000000000010d68 000d68 000010 08  WA  0  0  8
55*cf5a6c84SAndroid Build Coastguard Worker  [16] .init_array          INIT_ARRAY     0000000000010d78 000d78 000010 08  WA  0  0  8
56*cf5a6c84SAndroid Build Coastguard Worker  [17] .fini_array          FINI_ARRAY     0000000000010d88 000d88 000010 08  WA  0  0  8
57*cf5a6c84SAndroid Build Coastguard Worker  [18] .dynamic             DYNAMIC        0000000000010d98 000d98 000210 10  WA  6  0  8
58*cf5a6c84SAndroid Build Coastguard Worker  [19] .got                 PROGBITS       0000000000010fa8 000fa8 000058 08  WA  0  0  8
59*cf5a6c84SAndroid Build Coastguard Worker  [20] .bss                 NOBITS         0000000000011000 001000 000008 00  WA  0  0  8
60*cf5a6c84SAndroid Build Coastguard Worker  [21] .comment             PROGBITS       0000000000000000 001000 000107 01  MS  0  0  1
61*cf5a6c84SAndroid Build Coastguard Worker  [22] .debug_pubnames      PROGBITS       0000000000000000 001107 00001b 00      0  0  1
62*cf5a6c84SAndroid Build Coastguard Worker  [23] .debug_info          PROGBITS       0000000000000000 001122 00004b 00      0  0  1
63*cf5a6c84SAndroid Build Coastguard Worker  [24] .debug_abbrev        PROGBITS       0000000000000000 00116d 000037 00      0  0  1
64*cf5a6c84SAndroid Build Coastguard Worker  [25] .debug_line          PROGBITS       0000000000000000 0011a4 00003f 00      0  0  1
65*cf5a6c84SAndroid Build Coastguard Worker  [26] .debug_str           PROGBITS       0000000000000000 0011e3 000138 01  MS  0  0  1
66*cf5a6c84SAndroid Build Coastguard Worker  [27] .debug_macinfo       PROGBITS       0000000000000000 00131b 000001 00      0  0  1
67*cf5a6c84SAndroid Build Coastguard Worker  [28] .debug_pubtypes      PROGBITS       0000000000000000 00131c 00001a 00      0  0  1
68*cf5a6c84SAndroid Build Coastguard Worker  [29] .shstrtab            STRTAB         0000000000000000 001d0c 000151 00      0  0  1
69*cf5a6c84SAndroid Build Coastguard Worker  [30] .symtab              SYMTAB         0000000000000000 001338 0007e0 18     31 68  8
70*cf5a6c84SAndroid Build Coastguard Worker  [31] .strtab              STRTAB         0000000000000000 001b18 0001f4 00      0  0  1
71*cf5a6c84SAndroid Build Coastguard Worker" "" ""
72*cf5a6c84SAndroid Build Coastguard Worker
73*cf5a6c84SAndroid Build Coastguard Worker# Verify many section header flags display properly.
74*cf5a6c84SAndroid Build Coastguard WorkerNOSPACE=1 testing "-S flags" "readelf -SW $elf-shflags | head -32" \
75*cf5a6c84SAndroid Build Coastguard Worker"There are 28 section headers, starting at offset 0xc74:
76*cf5a6c84SAndroid Build Coastguard Worker
77*cf5a6c84SAndroid Build Coastguard WorkerSection Headers:
78*cf5a6c84SAndroid Build Coastguard Worker  [Nr] Name              Type            Address  Off    Size   ES Flg Lk Inf Al
79*cf5a6c84SAndroid Build Coastguard Worker  [ 0]                   NULL            00000000 000000 000000 00      0   0  0
80*cf5a6c84SAndroid Build Coastguard Worker  [ 1] .interp           PROGBITS        000001b4 0001b4 000013 00   A  0   0  1
81*cf5a6c84SAndroid Build Coastguard Worker  [ 2] .note.android.ident NOTE            000001c8 0001c8 000018 00   A  0   0  4
82*cf5a6c84SAndroid Build Coastguard Worker  [ 3] .note.gnu.build-id NOTE            000001e0 0001e0 000020 00   A  0   0  4
83*cf5a6c84SAndroid Build Coastguard Worker  [ 4] .dynsym           DYNSYM          00000200 000200 000060 10   A  8   1  4
84*cf5a6c84SAndroid Build Coastguard Worker  [ 5] .gnu.version      VERSYM          00000260 000260 00000c 02   A  4   0  2
85*cf5a6c84SAndroid Build Coastguard Worker  [ 6] .gnu.version_r    VERNEED         0000026c 00026c 000020 00   A  8   1  4
86*cf5a6c84SAndroid Build Coastguard Worker  [ 7] .gnu.hash         GNU_HASH        0000028c 00028c 000018 00   A  4   0  4
87*cf5a6c84SAndroid Build Coastguard Worker  [ 8] .dynstr           STRTAB          000002a4 0002a4 000064 00   A  0   0  1
88*cf5a6c84SAndroid Build Coastguard Worker  [ 9] .rel.dyn          ANDROID_REL     00000308 000308 00000d 01   A  4   0  4
89*cf5a6c84SAndroid Build Coastguard Worker  [10] .relr.dyn         RELR            00000318 000318 00000c 04   A  0   0  4
90*cf5a6c84SAndroid Build Coastguard Worker  [11] .ARM.exidx        ARM_EXIDX       00000324 000324 000028 00  AL 14   0  4
91*cf5a6c84SAndroid Build Coastguard Worker  [12] .rel.plt          REL             0000034c 00034c 000020 08  AI  4  19  4
92*cf5a6c84SAndroid Build Coastguard Worker  [13] .rodata           PROGBITS        0000036c 00036c 000015 01 AMS  0   0  1
93*cf5a6c84SAndroid Build Coastguard Worker  [14] .text             PROGBITS        00001384 000384 0001c4 00  AX  0   0  4
94*cf5a6c84SAndroid Build Coastguard Worker  [15] .plt              PROGBITS        00001550 000550 000060 00  AX  0   0 16
95*cf5a6c84SAndroid Build Coastguard Worker  [16] .tdata            PROGBITS        000025c0 0005c0 000000 00 WAT  0   0 32
96*cf5a6c84SAndroid Build Coastguard Worker  [17] .dynamic          DYNAMIC         000025c0 0005c0 0000d0 08  WA  8   0  4
97*cf5a6c84SAndroid Build Coastguard Worker  [18] .got              PROGBITS        00002690 000690 000010 00  WA  0   0  4
98*cf5a6c84SAndroid Build Coastguard Worker  [19] .got.plt          PROGBITS        000026a0 0006a0 00001c 00  WA  0   0  4
99*cf5a6c84SAndroid Build Coastguard Worker  [20] .data             PROGBITS        000036bc 0006bc 00000c 00  WA  0   0  4
100*cf5a6c84SAndroid Build Coastguard Worker  [21] .comment          PROGBITS        00000000 0006c8 0000cc 01  MS  0   0  1
101*cf5a6c84SAndroid Build Coastguard Worker  [22] .ARM.attributes   ATTRIBUTES      00000000 000794 000042 00      0   0  1
102*cf5a6c84SAndroid Build Coastguard Worker  [23] .debug_frame      PROGBITS        00000000 0007d8 00007a 00   C  0   0  4
103*cf5a6c84SAndroid Build Coastguard Worker  [24] .symtab           SYMTAB          00000000 000854 000220 10     26  27  4
104*cf5a6c84SAndroid Build Coastguard Worker  [25] .shstrtab         STRTAB          00000000 000a74 00010e 00      0   0  1
105*cf5a6c84SAndroid Build Coastguard Worker  [26] .strtab           STRTAB          00000000 000b82 0000de 00      0   0  1
106*cf5a6c84SAndroid Build Coastguard Worker  [27] .gnu_debuglink    PROGBITS        00000000 000c60 000014 00      0   0  4
107*cf5a6c84SAndroid Build Coastguard Worker" "" ""
108*cf5a6c84SAndroid Build Coastguard Worker
109*cf5a6c84SAndroid Build Coastguard Workertesting "-l" "readelf -lW $elf-short" "
110*cf5a6c84SAndroid Build Coastguard WorkerElf file type is DYN (Shared object file)
111*cf5a6c84SAndroid Build Coastguard WorkerEntry point 0x1001
112*cf5a6c84SAndroid Build Coastguard WorkerThere are 10 program headers, starting at offset 52
113*cf5a6c84SAndroid Build Coastguard Worker
114*cf5a6c84SAndroid Build Coastguard WorkerProgram Headers:
115*cf5a6c84SAndroid Build Coastguard Worker  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
116*cf5a6c84SAndroid Build Coastguard Worker  PHDR           0x000034 0x00000034 0x00000034 0x00140 0x00140 R   0x4
117*cf5a6c84SAndroid Build Coastguard Worker  INTERP         0x000174 0x00000174 0x00000174 0x00013 0x00013 R   0x1
118*cf5a6c84SAndroid Build Coastguard Worker      [Requesting program interpreter: /system/bin/linker]
119*cf5a6c84SAndroid Build Coastguard Worker  LOAD           0x000000 0x00000000 0x00000000 0x00404 0x00404 R   0x1000
120*cf5a6c84SAndroid Build Coastguard Worker  LOAD           0x001000 0x00001000 0x00001000 0x00140 0x00140 R E 0x1000
121*cf5a6c84SAndroid Build Coastguard Worker  LOAD           0x002000 0x00002000 0x00002000 0x00144 0x00144 RW  0x1000
122*cf5a6c84SAndroid Build Coastguard Worker  DYNAMIC        0x002018 0x00002018 0x00002018 0x00100 0x00100 RW  0x4
123*cf5a6c84SAndroid Build Coastguard Worker  GNU_RELRO      0x002000 0x00002000 0x00002000 0x00144 0x01000 R   0x1
124*cf5a6c84SAndroid Build Coastguard Worker  GNU_STACK      0x000000 0x00000000 0x00000000 0x00000 0x00000 RW  0
125*cf5a6c84SAndroid Build Coastguard Worker  NOTE           0x000188 0x00000188 0x00000188 0x00038 0x00038 R   0x4
126*cf5a6c84SAndroid Build Coastguard Worker  EXIDX          0x0001c0 0x000001c0 0x000001c0 0x00030 0x00030 R   0x4
127*cf5a6c84SAndroid Build Coastguard Worker
128*cf5a6c84SAndroid Build Coastguard Worker Section to Segment mapping:
129*cf5a6c84SAndroid Build Coastguard Worker  Segment Sections...
130*cf5a6c84SAndroid Build Coastguard Worker   00
131*cf5a6c84SAndroid Build Coastguard Worker   01     .interp
132*cf5a6c84SAndroid Build Coastguard Worker   02     .interp .note.android.ident .note.gnu.build-id .ARM.exidx .dynsym .gnu.version .gnu.version_r .gnu.hash .dynstr .rel.dyn .relr.dyn .rel.plt
133*cf5a6c84SAndroid Build Coastguard Worker   03     .text .plt
134*cf5a6c84SAndroid Build Coastguard Worker   04     .preinit_array .init_array .fini_array .dynamic .got .got.plt
135*cf5a6c84SAndroid Build Coastguard Worker   05     .dynamic
136*cf5a6c84SAndroid Build Coastguard Worker   06     .preinit_array .init_array .fini_array .dynamic .got .got.plt
137*cf5a6c84SAndroid Build Coastguard Worker   07
138*cf5a6c84SAndroid Build Coastguard Worker   08     .note.android.ident .note.gnu.build-id
139*cf5a6c84SAndroid Build Coastguard Worker   09     .ARM.exidx
140*cf5a6c84SAndroid Build Coastguard Worker" "" ""
141*cf5a6c84SAndroid Build Coastguard Worker
142*cf5a6c84SAndroid Build Coastguard Worker# binutils doesn't line up the column headers for 64-bit ELF files.
143*cf5a6c84SAndroid Build Coastguard Worker# TODO: binutils readelf lies about trailing NULL entires binutils ld produces
144*cf5a6c84SAndroid Build Coastguard WorkerNOSPACE=1 toyonly testing "-d" "readelf -dW $elf-full" "
145*cf5a6c84SAndroid Build Coastguard WorkerDynamic section at offset 0xd98 contains 33 entries:
146*cf5a6c84SAndroid Build Coastguard Worker  Tag                Type                 Name/Value
147*cf5a6c84SAndroid Build Coastguard Worker 0x0000000000000001 (NEEDED)             Shared library: [libc.so]
148*cf5a6c84SAndroid Build Coastguard Worker 0x0000000000000001 (NEEDED)             Shared library: [libm.so]
149*cf5a6c84SAndroid Build Coastguard Worker 0x0000000000000001 (NEEDED)             Shared library: [libdl.so]
150*cf5a6c84SAndroid Build Coastguard Worker 0x0000000000000020 (PREINIT_ARRAY)      0x10d68
151*cf5a6c84SAndroid Build Coastguard Worker 0x0000000000000021 (PREINIT_ARRAYSZ)    0x10
152*cf5a6c84SAndroid Build Coastguard Worker 0x0000000000000019 (INIT_ARRAY)         0x10d78
153*cf5a6c84SAndroid Build Coastguard Worker 0x000000000000001b (INIT_ARRAYSZ)       16 (bytes)
154*cf5a6c84SAndroid Build Coastguard Worker 0x000000000000001a (FINI_ARRAY)         0x10d88
155*cf5a6c84SAndroid Build Coastguard Worker 0x000000000000001c (FINI_ARRAYSZ)       16 (bytes)
156*cf5a6c84SAndroid Build Coastguard Worker 0x0000000000000004 (HASH)               0x310
157*cf5a6c84SAndroid Build Coastguard Worker 0x0000000000000005 (STRTAB)             0x490
158*cf5a6c84SAndroid Build Coastguard Worker 0x0000000000000006 (SYMTAB)             0x358
159*cf5a6c84SAndroid Build Coastguard Worker 0x000000000000000a (STRSZ)              151 (bytes)
160*cf5a6c84SAndroid Build Coastguard Worker 0x000000000000000b (SYMENT)             24 (bytes)
161*cf5a6c84SAndroid Build Coastguard Worker 0x0000000000000015 (DEBUG)              0x0
162*cf5a6c84SAndroid Build Coastguard Worker 0x0000000000000003 (PLTGOT)             0x10fa8
163*cf5a6c84SAndroid Build Coastguard Worker 0x0000000000000002 (PLTRELSZ)           72 (bytes)
164*cf5a6c84SAndroid Build Coastguard Worker 0x0000000000000014 (PLTREL)             RELA
165*cf5a6c84SAndroid Build Coastguard Worker 0x0000000000000017 (JMPREL)             0x5c8
166*cf5a6c84SAndroid Build Coastguard Worker 0x0000000000000007 (RELA)               0x568
167*cf5a6c84SAndroid Build Coastguard Worker 0x0000000000000008 (RELASZ)             96 (bytes)
168*cf5a6c84SAndroid Build Coastguard Worker 0x0000000000000009 (RELAENT)            24 (bytes)
169*cf5a6c84SAndroid Build Coastguard Worker 0x000000000000001e (FLAGS)              BIND_NOW
170*cf5a6c84SAndroid Build Coastguard Worker 0x000000006ffffffb (FLAGS_1)            Flags: NOW
171*cf5a6c84SAndroid Build Coastguard Worker 0x000000006ffffffe (VERNEED)            0x548
172*cf5a6c84SAndroid Build Coastguard Worker 0x000000006fffffff (VERNEEDNUM)         1
173*cf5a6c84SAndroid Build Coastguard Worker 0x000000006ffffff0 (VERSYM)             0x528
174*cf5a6c84SAndroid Build Coastguard Worker 0x000000006ffffff9 (RELACOUNT)          4
175*cf5a6c84SAndroid Build Coastguard Worker 0x0000000000000000 (NULL)               0x0
176*cf5a6c84SAndroid Build Coastguard Worker 0x0000000000000000 (NULL)               0x0
177*cf5a6c84SAndroid Build Coastguard Worker 0x0000000000000000 (NULL)               0x0
178*cf5a6c84SAndroid Build Coastguard Worker 0x0000000000000000 (NULL)               0x0
179*cf5a6c84SAndroid Build Coastguard Worker 0x0000000000000000 (NULL)               0x0
180*cf5a6c84SAndroid Build Coastguard Worker" "" ""
181*cf5a6c84SAndroid Build Coastguard Worker
182*cf5a6c84SAndroid Build Coastguard Worker# toybox does a better job of decoding Android's ELF notes than binutils.
183*cf5a6c84SAndroid Build Coastguard Workertoyonly testing "-n" "readelf -nW $elf-short" "
184*cf5a6c84SAndroid Build Coastguard WorkerDisplaying notes found in: .note.android.ident
185*cf5a6c84SAndroid Build Coastguard Worker  Owner                 Data size	Description
186*cf5a6c84SAndroid Build Coastguard Worker  Android              0x00000004	NT_VERSION	API level 28
187*cf5a6c84SAndroid Build Coastguard Worker
188*cf5a6c84SAndroid Build Coastguard WorkerDisplaying notes found in: .note.gnu.build-id
189*cf5a6c84SAndroid Build Coastguard Worker  Owner                 Data size	Description
190*cf5a6c84SAndroid Build Coastguard Worker  GNU                  0x00000010	NT_GNU_BUILD_ID	da6a5f4ca8da163b9339326e626d8a3c
191*cf5a6c84SAndroid Build Coastguard Worker" "" ""
192*cf5a6c84SAndroid Build Coastguard Worker
193*cf5a6c84SAndroid Build Coastguard Workertesting "-p" "readelf -p22 $elf-short" "
194*cf5a6c84SAndroid Build Coastguard WorkerString dump of section '.shstrtab':
195*cf5a6c84SAndroid Build Coastguard Worker  [     1]  .preinit_array
196*cf5a6c84SAndroid Build Coastguard Worker  [    10]  .init_array
197*cf5a6c84SAndroid Build Coastguard Worker  [    1c]  .fini_array
198*cf5a6c84SAndroid Build Coastguard Worker  [    28]  .ARM.exidx
199*cf5a6c84SAndroid Build Coastguard Worker  [    33]  .text
200*cf5a6c84SAndroid Build Coastguard Worker  [    39]  .got
201*cf5a6c84SAndroid Build Coastguard Worker  [    3e]  .note.android.ident
202*cf5a6c84SAndroid Build Coastguard Worker  [    52]  .got.plt
203*cf5a6c84SAndroid Build Coastguard Worker  [    5b]  .rel.plt
204*cf5a6c84SAndroid Build Coastguard Worker  [    64]  .ARM.attributes
205*cf5a6c84SAndroid Build Coastguard Worker  [    74]  .dynstr
206*cf5a6c84SAndroid Build Coastguard Worker  [    7c]  .gnu.version_r
207*cf5a6c84SAndroid Build Coastguard Worker  [    8b]  .interp
208*cf5a6c84SAndroid Build Coastguard Worker  [    93]  .relr.dyn
209*cf5a6c84SAndroid Build Coastguard Worker  [    9d]  .rel.dyn
210*cf5a6c84SAndroid Build Coastguard Worker  [    a6]  .gnu.version
211*cf5a6c84SAndroid Build Coastguard Worker  [    b3]  .dynsym
212*cf5a6c84SAndroid Build Coastguard Worker  [    bb]  .gnu.hash
213*cf5a6c84SAndroid Build Coastguard Worker  [    c5]  .note.gnu.build-id
214*cf5a6c84SAndroid Build Coastguard Worker  [    d8]  .dynamic
215*cf5a6c84SAndroid Build Coastguard Worker  [    e1]  .shstrtab
216*cf5a6c84SAndroid Build Coastguard Worker  [    eb]  .gnu_debugdata
217*cf5a6c84SAndroid Build Coastguard Worker
218*cf5a6c84SAndroid Build Coastguard Worker" "" ""
219*cf5a6c84SAndroid Build Coastguard Worker
220*cf5a6c84SAndroid Build Coastguard Workertesting "-x" "readelf -x22 $elf-short" "
221*cf5a6c84SAndroid Build Coastguard WorkerHex dump of section '.shstrtab':
222*cf5a6c84SAndroid Build Coastguard Worker  0x00000000 002e7072 65696e69 745f6172 72617900 ..preinit_array.
223*cf5a6c84SAndroid Build Coastguard Worker  0x00000010 2e696e69 745f6172 72617900 2e66696e .init_array..fin
224*cf5a6c84SAndroid Build Coastguard Worker  0x00000020 695f6172 72617900 2e41524d 2e657869 i_array..ARM.exi
225*cf5a6c84SAndroid Build Coastguard Worker  0x00000030 6478002e 74657874 002e676f 74002e6e dx..text..got..n
226*cf5a6c84SAndroid Build Coastguard Worker  0x00000040 6f74652e 616e6472 6f69642e 6964656e ote.android.iden
227*cf5a6c84SAndroid Build Coastguard Worker  0x00000050 74002e67 6f742e70 6c74002e 72656c2e t..got.plt..rel.
228*cf5a6c84SAndroid Build Coastguard Worker  0x00000060 706c7400 2e41524d 2e617474 72696275 plt..ARM.attribu
229*cf5a6c84SAndroid Build Coastguard Worker  0x00000070 74657300 2e64796e 73747200 2e676e75 tes..dynstr..gnu
230*cf5a6c84SAndroid Build Coastguard Worker  0x00000080 2e766572 73696f6e 5f72002e 696e7465 .version_r..inte
231*cf5a6c84SAndroid Build Coastguard Worker  0x00000090 7270002e 72656c72 2e64796e 002e7265 rp..relr.dyn..re
232*cf5a6c84SAndroid Build Coastguard Worker  0x000000a0 6c2e6479 6e002e67 6e752e76 65727369 l.dyn..gnu.versi
233*cf5a6c84SAndroid Build Coastguard Worker  0x000000b0 6f6e002e 64796e73 796d002e 676e752e on..dynsym..gnu.
234*cf5a6c84SAndroid Build Coastguard Worker  0x000000c0 68617368 002e6e6f 74652e67 6e752e62 hash..note.gnu.b
235*cf5a6c84SAndroid Build Coastguard Worker  0x000000d0 75696c64 2d696400 2e64796e 616d6963 uild-id..dynamic
236*cf5a6c84SAndroid Build Coastguard Worker  0x000000e0 002e7368 73747274 6162002e 676e755f ..shstrtab..gnu_
237*cf5a6c84SAndroid Build Coastguard Worker  0x000000f0 64656275 67646174 61000000 000000   debugdata......
238*cf5a6c84SAndroid Build Coastguard Worker
239*cf5a6c84SAndroid Build Coastguard Worker" "" ""
240*cf5a6c84SAndroid Build Coastguard Worker
241*cf5a6c84SAndroid Build Coastguard Worker# TODO: remove the sed when we handle symbol versions
242*cf5a6c84SAndroid Build Coastguard Workertesting "-s" "readelf -s $elf-short | sed s/@.*//" "
243*cf5a6c84SAndroid Build Coastguard WorkerSymbol table '.dynsym' contains 11 entries:
244*cf5a6c84SAndroid Build Coastguard Worker   Num:    Value  Size Type    Bind   Vis      Ndx Name
245*cf5a6c84SAndroid Build Coastguard Worker     0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND
246*cf5a6c84SAndroid Build Coastguard Worker     1: 00000000     0 FUNC    GLOBAL DEFAULT  UND __libc_init
247*cf5a6c84SAndroid Build Coastguard Worker     2: 00000000     0 FUNC    GLOBAL DEFAULT  UND __stack_chk_fail
248*cf5a6c84SAndroid Build Coastguard Worker     3: 00000000     0 OBJECT  GLOBAL DEFAULT  UND __stack_chk_guard
249*cf5a6c84SAndroid Build Coastguard Worker     4: 00000000     0 FUNC    GLOBAL DEFAULT  UND memset
250*cf5a6c84SAndroid Build Coastguard Worker     5: 000010d8    12 FUNC    GLOBAL DEFAULT   13 __aeabi_memclr
251*cf5a6c84SAndroid Build Coastguard Worker     6: 000010d8    12 FUNC    GLOBAL DEFAULT   13 __aeabi_memclr4
252*cf5a6c84SAndroid Build Coastguard Worker     7: 000010d8    12 FUNC    GLOBAL DEFAULT   13 __aeabi_memclr8
253*cf5a6c84SAndroid Build Coastguard Worker     8: 000010c8    16 FUNC    GLOBAL DEFAULT   13 __aeabi_memset
254*cf5a6c84SAndroid Build Coastguard Worker     9: 000010c8    16 FUNC    GLOBAL DEFAULT   13 __aeabi_memset4
255*cf5a6c84SAndroid Build Coastguard Worker    10: 000010c8    16 FUNC    GLOBAL DEFAULT   13 __aeabi_memset8
256*cf5a6c84SAndroid Build Coastguard Worker" "" ""
257