xref: /aosp_15_r20/external/elfutils/tests/run-strip-remove-keep.sh (revision 7304104da70ce23c86437a01be71edd1a2d7f37e)
1*7304104dSAndroid Build Coastguard Worker#! /bin/sh
2*7304104dSAndroid Build Coastguard Worker# Copyright (C) 2017 Red Hat, Inc.
3*7304104dSAndroid Build Coastguard Worker# This file is part of elfutils.
4*7304104dSAndroid Build Coastguard Worker#
5*7304104dSAndroid Build Coastguard Worker# This file is free software; you can redistribute it and/or modify
6*7304104dSAndroid Build Coastguard Worker# it under the terms of the GNU General Public License as published by
7*7304104dSAndroid Build Coastguard Worker# the Free Software Foundation; either version 3 of the License, or
8*7304104dSAndroid Build Coastguard Worker# (at your option) any later version.
9*7304104dSAndroid Build Coastguard Worker#
10*7304104dSAndroid Build Coastguard Worker# elfutils is distributed in the hope that it will be useful, but
11*7304104dSAndroid Build Coastguard Worker# WITHOUT ANY WARRANTY; without even the implied warranty of
12*7304104dSAndroid Build Coastguard Worker# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13*7304104dSAndroid Build Coastguard Worker# GNU General Public License for more details.
14*7304104dSAndroid Build Coastguard Worker#
15*7304104dSAndroid Build Coastguard Worker# You should have received a copy of the GNU General Public License
16*7304104dSAndroid Build Coastguard Worker# along with this program.  If not, see <http://www.gnu.org/licenses/>.
17*7304104dSAndroid Build Coastguard Worker
18*7304104dSAndroid Build Coastguard Worker. $srcdir/test-subr.sh
19*7304104dSAndroid Build Coastguard Worker
20*7304104dSAndroid Build Coastguard Worker# strip -o output and -f debug files
21*7304104dSAndroid Build Coastguard Workertempfiles testfile.elf testfile.debug
22*7304104dSAndroid Build Coastguard Worker
23*7304104dSAndroid Build Coastguard Worker# A random 32bit testfile
24*7304104dSAndroid Build Coastguard Workertestfiles testfile
25*7304104dSAndroid Build Coastguard Worker
26*7304104dSAndroid Build Coastguard Worker# Explicitly keep .strtab (but not .symtab, so .strtab will be in both). 32bit
27*7304104dSAndroid Build Coastguard Workerecho strip --keep-section=.strtab testfile
28*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/strip --keep-section=.strtab -o testfile.elf -f testfile.debug testfile
29*7304104dSAndroid Build Coastguard Workerecho elflint testfile.elf
30*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elflint --gnu testfile.elf
31*7304104dSAndroid Build Coastguard Workerecho elflint testfile.debug
32*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elflint --gnu -d testfile.debug
33*7304104dSAndroid Build Coastguard Workerecho readelf testfile.elf
34*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/readelf -S testfile.elf <<\EOF
35*7304104dSAndroid Build Coastguard WorkerThere are 27 section headers, starting at offset 0xaf8:
36*7304104dSAndroid Build Coastguard Worker
37*7304104dSAndroid Build Coastguard WorkerSection Headers:
38*7304104dSAndroid Build Coastguard Worker[Nr] Name                 Type         Addr     Off    Size   ES Flags Lk Inf Al
39*7304104dSAndroid Build Coastguard Worker[ 0]                      NULL         00000000 000000 000000  0        0   0  0
40*7304104dSAndroid Build Coastguard Worker[ 1] .interp              PROGBITS     080480f4 0000f4 000013  0 A      0   0  1
41*7304104dSAndroid Build Coastguard Worker[ 2] .note.ABI-tag        NOTE         08048108 000108 000020  0 A      0   0  4
42*7304104dSAndroid Build Coastguard Worker[ 3] .hash                HASH         08048128 000128 000030  4 A      4   0  4
43*7304104dSAndroid Build Coastguard Worker[ 4] .dynsym              DYNSYM       08048158 000158 000070 16 A      5   1  4
44*7304104dSAndroid Build Coastguard Worker[ 5] .dynstr              STRTAB       080481c8 0001c8 00008e  0 A      0   0  1
45*7304104dSAndroid Build Coastguard Worker[ 6] .gnu.version         GNU_versym   08048256 000256 00000e  2 A      4   0  2
46*7304104dSAndroid Build Coastguard Worker[ 7] .gnu.version_r       GNU_verneed  08048264 000264 000030  0 A      5   1  4
47*7304104dSAndroid Build Coastguard Worker[ 8] .rel.got             REL          08048294 000294 000008  8 A      4  19  4
48*7304104dSAndroid Build Coastguard Worker[ 9] .rel.plt             REL          0804829c 00029c 000020  8 A      4  11  4
49*7304104dSAndroid Build Coastguard Worker[10] .init                PROGBITS     080482bc 0002bc 000018  0 AX     0   0  4
50*7304104dSAndroid Build Coastguard Worker[11] .plt                 PROGBITS     080482d4 0002d4 000050  4 AX     0   0  4
51*7304104dSAndroid Build Coastguard Worker[12] .text                PROGBITS     08048330 000330 00018c  0 AX     0   0 16
52*7304104dSAndroid Build Coastguard Worker[13] .fini                PROGBITS     080484bc 0004bc 00001e  0 AX     0   0  4
53*7304104dSAndroid Build Coastguard Worker[14] .rodata              PROGBITS     080484dc 0004dc 000008  0 A      0   0  4
54*7304104dSAndroid Build Coastguard Worker[15] .data                PROGBITS     080494e4 0004e4 000010  0 WA     0   0  4
55*7304104dSAndroid Build Coastguard Worker[16] .eh_frame            PROGBITS     080494f4 0004f4 000004  0 WA     0   0  4
56*7304104dSAndroid Build Coastguard Worker[17] .ctors               PROGBITS     080494f8 0004f8 000008  0 WA     0   0  4
57*7304104dSAndroid Build Coastguard Worker[18] .dtors               PROGBITS     08049500 000500 000008  0 WA     0   0  4
58*7304104dSAndroid Build Coastguard Worker[19] .got                 PROGBITS     08049508 000508 000020  4 WA     0   0  4
59*7304104dSAndroid Build Coastguard Worker[20] .dynamic             DYNAMIC      08049528 000528 0000a0  8 WA     5   0  4
60*7304104dSAndroid Build Coastguard Worker[21] .bss                 NOBITS       080495c8 0005c8 00001c  0 WA     0   0  4
61*7304104dSAndroid Build Coastguard Worker[22] .comment             PROGBITS     00000000 0005c8 000170  0        0   0  1
62*7304104dSAndroid Build Coastguard Worker[23] .note                NOTE         00000000 000738 0000a0  0        0   0  1
63*7304104dSAndroid Build Coastguard Worker[24] .strtab              STRTAB       00000000 0007d8 000235  0        0   0  1
64*7304104dSAndroid Build Coastguard Worker[25] .gnu_debuglink       PROGBITS     00000000 000a10 000014  0        0   0  4
65*7304104dSAndroid Build Coastguard Worker[26] .shstrtab            STRTAB       00000000 000a24 0000d1  0        0   0  1
66*7304104dSAndroid Build Coastguard Worker
67*7304104dSAndroid Build Coastguard WorkerEOF
68*7304104dSAndroid Build Coastguard Workerecho readelf testfile.debug
69*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/readelf -S testfile.debug <<\EOF
70*7304104dSAndroid Build Coastguard WorkerThere are 35 section headers, starting at offset 0x463c:
71*7304104dSAndroid Build Coastguard Worker
72*7304104dSAndroid Build Coastguard WorkerSection Headers:
73*7304104dSAndroid Build Coastguard Worker[Nr] Name                 Type         Addr     Off    Size   ES Flags Lk Inf Al
74*7304104dSAndroid Build Coastguard Worker[ 0]                      NULL         00000000 000000 000000  0        0   0  0
75*7304104dSAndroid Build Coastguard Worker[ 1] .interp              NOBITS       080480f4 0000f4 000013  0 A      0   0  1
76*7304104dSAndroid Build Coastguard Worker[ 2] .note.ABI-tag        NOTE         08048108 0000f4 000020  0 A      0   0  4
77*7304104dSAndroid Build Coastguard Worker[ 3] .hash                NOBITS       08048128 000114 000030  4 A      4   0  4
78*7304104dSAndroid Build Coastguard Worker[ 4] .dynsym              NOBITS       08048158 000114 000070 16 A      5   1  4
79*7304104dSAndroid Build Coastguard Worker[ 5] .dynstr              NOBITS       080481c8 000114 00008e  0 A      0   0  1
80*7304104dSAndroid Build Coastguard Worker[ 6] .gnu.version         NOBITS       08048256 000114 00000e  2 A      4   0  2
81*7304104dSAndroid Build Coastguard Worker[ 7] .gnu.version_r       NOBITS       08048264 000114 000030  0 A      5   1  4
82*7304104dSAndroid Build Coastguard Worker[ 8] .rel.got             NOBITS       08048294 000114 000008  8 A      4  19  4
83*7304104dSAndroid Build Coastguard Worker[ 9] .rel.plt             NOBITS       0804829c 000114 000020  8 A      4  11  4
84*7304104dSAndroid Build Coastguard Worker[10] .init                NOBITS       080482bc 000114 000018  0 AX     0   0  4
85*7304104dSAndroid Build Coastguard Worker[11] .plt                 NOBITS       080482d4 000114 000050  4 AX     0   0  4
86*7304104dSAndroid Build Coastguard Worker[12] .text                NOBITS       08048330 000120 00018c  0 AX     0   0 16
87*7304104dSAndroid Build Coastguard Worker[13] .fini                NOBITS       080484bc 000120 00001e  0 AX     0   0  4
88*7304104dSAndroid Build Coastguard Worker[14] .rodata              NOBITS       080484dc 000120 000008  0 A      0   0  4
89*7304104dSAndroid Build Coastguard Worker[15] .data                NOBITS       080494e4 000120 000010  0 WA     0   0  4
90*7304104dSAndroid Build Coastguard Worker[16] .eh_frame            NOBITS       080494f4 000120 000004  0 WA     0   0  4
91*7304104dSAndroid Build Coastguard Worker[17] .ctors               NOBITS       080494f8 000120 000008  0 WA     0   0  4
92*7304104dSAndroid Build Coastguard Worker[18] .dtors               NOBITS       08049500 000120 000008  0 WA     0   0  4
93*7304104dSAndroid Build Coastguard Worker[19] .got                 NOBITS       08049508 000120 000020  4 WA     0   0  4
94*7304104dSAndroid Build Coastguard Worker[20] .dynamic             NOBITS       08049528 000120 0000a0  8 WA     5   0  4
95*7304104dSAndroid Build Coastguard Worker[21] .sbss                PROGBITS     080495c8 000120 000000  0 W      0   0  1
96*7304104dSAndroid Build Coastguard Worker[22] .bss                 NOBITS       080495c8 000120 00001c  0 WA     0   0  4
97*7304104dSAndroid Build Coastguard Worker[23] .stab                PROGBITS     00000000 000120 000720 12       24   0  4
98*7304104dSAndroid Build Coastguard Worker[24] .stabstr             STRTAB       00000000 000840 001934  0        0   0  1
99*7304104dSAndroid Build Coastguard Worker[25] .comment             NOBITS       00000000 002174 000170  0        0   0  1
100*7304104dSAndroid Build Coastguard Worker[26] .debug_aranges       PROGBITS     00000000 002174 000060  0        0   0  1
101*7304104dSAndroid Build Coastguard Worker[27] .debug_pubnames      PROGBITS     00000000 0021d4 000055  0        0   0  1
102*7304104dSAndroid Build Coastguard Worker[28] .debug_info          PROGBITS     00000000 002229 001678  0        0   0  1
103*7304104dSAndroid Build Coastguard Worker[29] .debug_abbrev        PROGBITS     00000000 0038a1 0001d2  0        0   0  1
104*7304104dSAndroid Build Coastguard Worker[30] .debug_line          PROGBITS     00000000 003a73 000223  0        0   0  1
105*7304104dSAndroid Build Coastguard Worker[31] .note                NOTE         00000000 003c96 0000a0  0        0   0  1
106*7304104dSAndroid Build Coastguard Worker[32] .shstrtab            STRTAB       00000000 003d36 00012e  0        0   0  1
107*7304104dSAndroid Build Coastguard Worker[33] .symtab              SYMTAB       00000000 003e64 0005a0 16       34  68  4
108*7304104dSAndroid Build Coastguard Worker[34] .strtab              STRTAB       00000000 004404 000235  0        0   0  1
109*7304104dSAndroid Build Coastguard Worker
110*7304104dSAndroid Build Coastguard WorkerEOF
111*7304104dSAndroid Build Coastguard Worker
112*7304104dSAndroid Build Coastguard Worker# Explicitly keep .symtab (pulls in .strtab, so they will both be in elf). 32bit
113*7304104dSAndroid Build Coastguard Workerecho strip --keep-section=.symtab testfile
114*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/strip --keep-section=.symtab -o testfile.elf -f testfile.debug testfile
115*7304104dSAndroid Build Coastguard Workerecho elflint testfile.elf
116*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elflint --gnu testfile.elf
117*7304104dSAndroid Build Coastguard Workerecho elflint testfile.debug
118*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elflint --gnu -d testfile.debug
119*7304104dSAndroid Build Coastguard Workerecho readelf testfile.elf
120*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/readelf -S testfile.elf <<\EOF
121*7304104dSAndroid Build Coastguard WorkerThere are 28 section headers, starting at offset 0x1010:
122*7304104dSAndroid Build Coastguard Worker
123*7304104dSAndroid Build Coastguard WorkerSection Headers:
124*7304104dSAndroid Build Coastguard Worker[Nr] Name                 Type         Addr     Off    Size   ES Flags Lk Inf Al
125*7304104dSAndroid Build Coastguard Worker[ 0]                      NULL         00000000 000000 000000  0        0   0  0
126*7304104dSAndroid Build Coastguard Worker[ 1] .interp              PROGBITS     080480f4 0000f4 000013  0 A      0   0  1
127*7304104dSAndroid Build Coastguard Worker[ 2] .note.ABI-tag        NOTE         08048108 000108 000020  0 A      0   0  4
128*7304104dSAndroid Build Coastguard Worker[ 3] .hash                HASH         08048128 000128 000030  4 A      4   0  4
129*7304104dSAndroid Build Coastguard Worker[ 4] .dynsym              DYNSYM       08048158 000158 000070 16 A      5   1  4
130*7304104dSAndroid Build Coastguard Worker[ 5] .dynstr              STRTAB       080481c8 0001c8 00008e  0 A      0   0  1
131*7304104dSAndroid Build Coastguard Worker[ 6] .gnu.version         GNU_versym   08048256 000256 00000e  2 A      4   0  2
132*7304104dSAndroid Build Coastguard Worker[ 7] .gnu.version_r       GNU_verneed  08048264 000264 000030  0 A      5   1  4
133*7304104dSAndroid Build Coastguard Worker[ 8] .rel.got             REL          08048294 000294 000008  8 A      4  19  4
134*7304104dSAndroid Build Coastguard Worker[ 9] .rel.plt             REL          0804829c 00029c 000020  8 A      4  11  4
135*7304104dSAndroid Build Coastguard Worker[10] .init                PROGBITS     080482bc 0002bc 000018  0 AX     0   0  4
136*7304104dSAndroid Build Coastguard Worker[11] .plt                 PROGBITS     080482d4 0002d4 000050  4 AX     0   0  4
137*7304104dSAndroid Build Coastguard Worker[12] .text                PROGBITS     08048330 000330 00018c  0 AX     0   0 16
138*7304104dSAndroid Build Coastguard Worker[13] .fini                PROGBITS     080484bc 0004bc 00001e  0 AX     0   0  4
139*7304104dSAndroid Build Coastguard Worker[14] .rodata              PROGBITS     080484dc 0004dc 000008  0 A      0   0  4
140*7304104dSAndroid Build Coastguard Worker[15] .data                PROGBITS     080494e4 0004e4 000010  0 WA     0   0  4
141*7304104dSAndroid Build Coastguard Worker[16] .eh_frame            PROGBITS     080494f4 0004f4 000004  0 WA     0   0  4
142*7304104dSAndroid Build Coastguard Worker[17] .ctors               PROGBITS     080494f8 0004f8 000008  0 WA     0   0  4
143*7304104dSAndroid Build Coastguard Worker[18] .dtors               PROGBITS     08049500 000500 000008  0 WA     0   0  4
144*7304104dSAndroid Build Coastguard Worker[19] .got                 PROGBITS     08049508 000508 000020  4 WA     0   0  4
145*7304104dSAndroid Build Coastguard Worker[20] .dynamic             DYNAMIC      08049528 000528 0000a0  8 WA     5   0  4
146*7304104dSAndroid Build Coastguard Worker[21] .bss                 NOBITS       080495c8 0005c8 00001c  0 WA     0   0  4
147*7304104dSAndroid Build Coastguard Worker[22] .comment             PROGBITS     00000000 0005c8 000170  0        0   0  1
148*7304104dSAndroid Build Coastguard Worker[23] .note                NOTE         00000000 000738 0000a0  0        0   0  1
149*7304104dSAndroid Build Coastguard Worker[24] .symtab              SYMTAB       00000000 0007d8 000510 16       25  59  4
150*7304104dSAndroid Build Coastguard Worker[25] .strtab              STRTAB       00000000 000ce8 000235  0        0   0  1
151*7304104dSAndroid Build Coastguard Worker[26] .gnu_debuglink       PROGBITS     00000000 000f20 000014  0        0   0  4
152*7304104dSAndroid Build Coastguard Worker[27] .shstrtab            STRTAB       00000000 000f34 0000d9  0        0   0  1
153*7304104dSAndroid Build Coastguard Worker
154*7304104dSAndroid Build Coastguard WorkerEOF
155*7304104dSAndroid Build Coastguard Workerecho readelf testfile.debug
156*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/readelf -S testfile.debug <<\EOF
157*7304104dSAndroid Build Coastguard WorkerThere are 35 section headers, starting at offset 0x3e64:
158*7304104dSAndroid Build Coastguard Worker
159*7304104dSAndroid Build Coastguard WorkerSection Headers:
160*7304104dSAndroid Build Coastguard Worker[Nr] Name                 Type         Addr     Off    Size   ES Flags Lk Inf Al
161*7304104dSAndroid Build Coastguard Worker[ 0]                      NULL         00000000 000000 000000  0        0   0  0
162*7304104dSAndroid Build Coastguard Worker[ 1] .interp              NOBITS       080480f4 0000f4 000013  0 A      0   0  1
163*7304104dSAndroid Build Coastguard Worker[ 2] .note.ABI-tag        NOTE         08048108 0000f4 000020  0 A      0   0  4
164*7304104dSAndroid Build Coastguard Worker[ 3] .hash                NOBITS       08048128 000114 000030  4 A      4   0  4
165*7304104dSAndroid Build Coastguard Worker[ 4] .dynsym              NOBITS       08048158 000114 000070 16 A      5   1  4
166*7304104dSAndroid Build Coastguard Worker[ 5] .dynstr              NOBITS       080481c8 000114 00008e  0 A      0   0  1
167*7304104dSAndroid Build Coastguard Worker[ 6] .gnu.version         NOBITS       08048256 000114 00000e  2 A      4   0  2
168*7304104dSAndroid Build Coastguard Worker[ 7] .gnu.version_r       NOBITS       08048264 000114 000030  0 A      5   1  4
169*7304104dSAndroid Build Coastguard Worker[ 8] .rel.got             NOBITS       08048294 000114 000008  8 A      4  19  4
170*7304104dSAndroid Build Coastguard Worker[ 9] .rel.plt             NOBITS       0804829c 000114 000020  8 A      4  11  4
171*7304104dSAndroid Build Coastguard Worker[10] .init                NOBITS       080482bc 000114 000018  0 AX     0   0  4
172*7304104dSAndroid Build Coastguard Worker[11] .plt                 NOBITS       080482d4 000114 000050  4 AX     0   0  4
173*7304104dSAndroid Build Coastguard Worker[12] .text                NOBITS       08048330 000120 00018c  0 AX     0   0 16
174*7304104dSAndroid Build Coastguard Worker[13] .fini                NOBITS       080484bc 000120 00001e  0 AX     0   0  4
175*7304104dSAndroid Build Coastguard Worker[14] .rodata              NOBITS       080484dc 000120 000008  0 A      0   0  4
176*7304104dSAndroid Build Coastguard Worker[15] .data                NOBITS       080494e4 000120 000010  0 WA     0   0  4
177*7304104dSAndroid Build Coastguard Worker[16] .eh_frame            NOBITS       080494f4 000120 000004  0 WA     0   0  4
178*7304104dSAndroid Build Coastguard Worker[17] .ctors               NOBITS       080494f8 000120 000008  0 WA     0   0  4
179*7304104dSAndroid Build Coastguard Worker[18] .dtors               NOBITS       08049500 000120 000008  0 WA     0   0  4
180*7304104dSAndroid Build Coastguard Worker[19] .got                 NOBITS       08049508 000120 000020  4 WA     0   0  4
181*7304104dSAndroid Build Coastguard Worker[20] .dynamic             NOBITS       08049528 000120 0000a0  8 WA     5   0  4
182*7304104dSAndroid Build Coastguard Worker[21] .sbss                PROGBITS     080495c8 000120 000000  0 W      0   0  1
183*7304104dSAndroid Build Coastguard Worker[22] .bss                 NOBITS       080495c8 000120 00001c  0 WA     0   0  4
184*7304104dSAndroid Build Coastguard Worker[23] .stab                PROGBITS     00000000 000120 000720 12       24   0  4
185*7304104dSAndroid Build Coastguard Worker[24] .stabstr             STRTAB       00000000 000840 001934  0        0   0  1
186*7304104dSAndroid Build Coastguard Worker[25] .comment             NOBITS       00000000 002174 000170  0        0   0  1
187*7304104dSAndroid Build Coastguard Worker[26] .debug_aranges       PROGBITS     00000000 002174 000060  0        0   0  1
188*7304104dSAndroid Build Coastguard Worker[27] .debug_pubnames      PROGBITS     00000000 0021d4 000055  0        0   0  1
189*7304104dSAndroid Build Coastguard Worker[28] .debug_info          PROGBITS     00000000 002229 001678  0        0   0  1
190*7304104dSAndroid Build Coastguard Worker[29] .debug_abbrev        PROGBITS     00000000 0038a1 0001d2  0        0   0  1
191*7304104dSAndroid Build Coastguard Worker[30] .debug_line          PROGBITS     00000000 003a73 000223  0        0   0  1
192*7304104dSAndroid Build Coastguard Worker[31] .note                NOTE         00000000 003c96 0000a0  0        0   0  1
193*7304104dSAndroid Build Coastguard Worker[32] .shstrtab            STRTAB       00000000 003d36 00012e  0        0   0  1
194*7304104dSAndroid Build Coastguard Worker[33] .symtab              NOBITS       00000000 003e64 0005a0 16       34  68  4
195*7304104dSAndroid Build Coastguard Worker[34] .strtab              NOBITS       00000000 003e64 000235  0        0   0  1
196*7304104dSAndroid Build Coastguard Worker
197*7304104dSAndroid Build Coastguard WorkerEOF
198*7304104dSAndroid Build Coastguard Worker
199*7304104dSAndroid Build Coastguard Worker# A random 64bit testfile
200*7304104dSAndroid Build Coastguard Workertestfiles testfile69.so
201*7304104dSAndroid Build Coastguard Worker# Explicitly keep .strtab (but not .symtab, so .strtab will be in both). 64bit
202*7304104dSAndroid Build Coastguard Workerecho strip --keep-section=.strtab testfile69.so
203*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/strip --keep-section=.strtab -o testfile.elf -f testfile.debug testfile69.so
204*7304104dSAndroid Build Coastguard Workerecho elflint testfile.elf
205*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elflint --gnu testfile.elf
206*7304104dSAndroid Build Coastguard Workerecho elflint testfile.debug
207*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elflint --gnu -d testfile.debug
208*7304104dSAndroid Build Coastguard Workerecho readelf testfile.elf
209*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/readelf -S testfile.elf <<\EOF
210*7304104dSAndroid Build Coastguard WorkerThere are 27 section headers, starting at offset 0xad8:
211*7304104dSAndroid Build Coastguard Worker
212*7304104dSAndroid Build Coastguard WorkerSection Headers:
213*7304104dSAndroid Build Coastguard Worker[Nr] Name                 Type         Addr             Off      Size     ES Flags Lk Inf Al
214*7304104dSAndroid Build Coastguard Worker[ 0]                      NULL         0000000000000000 00000000 00000000  0        0   0  0
215*7304104dSAndroid Build Coastguard Worker[ 1] .note.gnu.build-id   NOTE         0000000000000190 00000190 00000024  0 A      0   0  4
216*7304104dSAndroid Build Coastguard Worker[ 2] .gnu.hash            GNU_HASH     00000000000001b8 000001b8 0000003c  0 A      3   0  8
217*7304104dSAndroid Build Coastguard Worker[ 3] .dynsym              DYNSYM       00000000000001f8 000001f8 00000108 24 A      4   2  8
218*7304104dSAndroid Build Coastguard Worker[ 4] .dynstr              STRTAB       0000000000000300 00000300 00000077  0 A      0   0  1
219*7304104dSAndroid Build Coastguard Worker[ 5] .gnu.version         GNU_versym   0000000000000378 00000378 00000016  2 A      3   0  2
220*7304104dSAndroid Build Coastguard Worker[ 6] .gnu.version_r       GNU_verneed  0000000000000390 00000390 00000020  0 A      4   1  8
221*7304104dSAndroid Build Coastguard Worker[ 7] .rela.dyn            RELA         00000000000003b0 000003b0 00000060 24 A      3   0  8
222*7304104dSAndroid Build Coastguard Worker[ 8] .rela.plt            RELA         0000000000000410 00000410 00000018 24 A      3  10  8
223*7304104dSAndroid Build Coastguard Worker[ 9] .init                PROGBITS     0000000000000428 00000428 00000018  0 AX     0   0  4
224*7304104dSAndroid Build Coastguard Worker[10] .plt                 PROGBITS     0000000000000440 00000440 00000020 16 AX     0   0 16
225*7304104dSAndroid Build Coastguard Worker[11] .text                PROGBITS     0000000000000460 00000460 00000128  0 AX     0   0 16
226*7304104dSAndroid Build Coastguard Worker[12] .fini                PROGBITS     0000000000000588 00000588 0000000e  0 AX     0   0  4
227*7304104dSAndroid Build Coastguard Worker[13] .eh_frame_hdr        PROGBITS     0000000000000598 00000598 00000024  0 A      0   0  4
228*7304104dSAndroid Build Coastguard Worker[14] .eh_frame            PROGBITS     00000000000005c0 000005c0 00000084  0 A      0   0  8
229*7304104dSAndroid Build Coastguard Worker[15] .ctors               PROGBITS     0000000000200648 00000648 00000010  0 WA     0   0  8
230*7304104dSAndroid Build Coastguard Worker[16] .dtors               PROGBITS     0000000000200658 00000658 00000010  0 WA     0   0  8
231*7304104dSAndroid Build Coastguard Worker[17] .jcr                 PROGBITS     0000000000200668 00000668 00000008  0 WA     0   0  8
232*7304104dSAndroid Build Coastguard Worker[18] .data.rel.ro         PROGBITS     0000000000200670 00000670 00000008  0 WA     0   0  8
233*7304104dSAndroid Build Coastguard Worker[19] .dynamic             DYNAMIC      0000000000200678 00000678 00000180 16 WA     4   0  8
234*7304104dSAndroid Build Coastguard Worker[20] .got                 PROGBITS     00000000002007f8 000007f8 00000018  8 WA     0   0  8
235*7304104dSAndroid Build Coastguard Worker[21] .got.plt             PROGBITS     0000000000200810 00000810 00000020  8 WA     0   0  8
236*7304104dSAndroid Build Coastguard Worker[22] .bss                 NOBITS       0000000000200830 00000830 00000010  0 WA     0   0  8
237*7304104dSAndroid Build Coastguard Worker[23] .comment             PROGBITS     0000000000000000 00000830 0000002c  1 MS     0   0  1
238*7304104dSAndroid Build Coastguard Worker[24] .strtab              STRTAB       0000000000000000 0000085c 00000175  0        0   0  1
239*7304104dSAndroid Build Coastguard Worker[25] .gnu_debuglink       PROGBITS     0000000000000000 000009d4 00000014  0        0   0  4
240*7304104dSAndroid Build Coastguard Worker[26] .shstrtab            STRTAB       0000000000000000 000009e8 000000ee  0        0   0  1
241*7304104dSAndroid Build Coastguard Worker
242*7304104dSAndroid Build Coastguard WorkerEOF
243*7304104dSAndroid Build Coastguard Workerecho readelf testfile.debug
244*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/readelf -S testfile.debug <<\EOF
245*7304104dSAndroid Build Coastguard WorkerThere are 27 section headers, starting at offset 0x918:
246*7304104dSAndroid Build Coastguard Worker
247*7304104dSAndroid Build Coastguard WorkerSection Headers:
248*7304104dSAndroid Build Coastguard Worker[Nr] Name                 Type         Addr             Off      Size     ES Flags Lk Inf Al
249*7304104dSAndroid Build Coastguard Worker[ 0]                      NULL         0000000000000000 00000000 00000000  0        0   0  0
250*7304104dSAndroid Build Coastguard Worker[ 1] .note.gnu.build-id   NOTE         0000000000000190 00000190 00000024  0 A      0   0  4
251*7304104dSAndroid Build Coastguard Worker[ 2] .gnu.hash            NOBITS       00000000000001b8 000001b8 0000003c  0 A      3   0  8
252*7304104dSAndroid Build Coastguard Worker[ 3] .dynsym              NOBITS       00000000000001f8 000001b8 00000108 24 A      4   2  8
253*7304104dSAndroid Build Coastguard Worker[ 4] .dynstr              NOBITS       0000000000000300 000001b8 00000077  0 A      0   0  1
254*7304104dSAndroid Build Coastguard Worker[ 5] .gnu.version         NOBITS       0000000000000378 000001b8 00000016  2 A      3   0  2
255*7304104dSAndroid Build Coastguard Worker[ 6] .gnu.version_r       NOBITS       0000000000000390 000001b8 00000020  0 A      4   1  8
256*7304104dSAndroid Build Coastguard Worker[ 7] .rela.dyn            NOBITS       00000000000003b0 000001b8 00000060 24 A      3   0  8
257*7304104dSAndroid Build Coastguard Worker[ 8] .rela.plt            NOBITS       0000000000000410 000001b8 00000018 24 A      3  10  8
258*7304104dSAndroid Build Coastguard Worker[ 9] .init                NOBITS       0000000000000428 000001b8 00000018  0 AX     0   0  4
259*7304104dSAndroid Build Coastguard Worker[10] .plt                 NOBITS       0000000000000440 000001c0 00000020 16 AX     0   0 16
260*7304104dSAndroid Build Coastguard Worker[11] .text                NOBITS       0000000000000460 000001c0 00000128  0 AX     0   0 16
261*7304104dSAndroid Build Coastguard Worker[12] .fini                NOBITS       0000000000000588 000001c0 0000000e  0 AX     0   0  4
262*7304104dSAndroid Build Coastguard Worker[13] .eh_frame_hdr        NOBITS       0000000000000598 000001c0 00000024  0 A      0   0  4
263*7304104dSAndroid Build Coastguard Worker[14] .eh_frame            NOBITS       00000000000005c0 000001c0 00000084  0 A      0   0  8
264*7304104dSAndroid Build Coastguard Worker[15] .ctors               NOBITS       0000000000200648 000001c0 00000010  0 WA     0   0  8
265*7304104dSAndroid Build Coastguard Worker[16] .dtors               NOBITS       0000000000200658 000001c0 00000010  0 WA     0   0  8
266*7304104dSAndroid Build Coastguard Worker[17] .jcr                 NOBITS       0000000000200668 000001c0 00000008  0 WA     0   0  8
267*7304104dSAndroid Build Coastguard Worker[18] .data.rel.ro         NOBITS       0000000000200670 000001c0 00000008  0 WA     0   0  8
268*7304104dSAndroid Build Coastguard Worker[19] .dynamic             NOBITS       0000000000200678 000001c0 00000180 16 WA     4   0  8
269*7304104dSAndroid Build Coastguard Worker[20] .got                 NOBITS       00000000002007f8 000001c0 00000018  8 WA     0   0  8
270*7304104dSAndroid Build Coastguard Worker[21] .got.plt             NOBITS       0000000000200810 000001c0 00000020  8 WA     0   0  8
271*7304104dSAndroid Build Coastguard Worker[22] .bss                 NOBITS       0000000000200830 000001c0 00000010  0 WA     0   0  8
272*7304104dSAndroid Build Coastguard Worker[23] .comment             NOBITS       0000000000000000 000001c0 0000002c  1 MS     0   0  1
273*7304104dSAndroid Build Coastguard Worker[24] .shstrtab            STRTAB       0000000000000000 000001c0 000000e7  0        0   0  1
274*7304104dSAndroid Build Coastguard Worker[25] .symtab              SYMTAB       0000000000000000 000002a8 000004f8 24       26  44  8
275*7304104dSAndroid Build Coastguard Worker[26] .strtab              STRTAB       0000000000000000 000007a0 00000175  0        0   0  1
276*7304104dSAndroid Build Coastguard Worker
277*7304104dSAndroid Build Coastguard WorkerEOF
278*7304104dSAndroid Build Coastguard Worker
279*7304104dSAndroid Build Coastguard Worker# Explicitly keep .symtab (pulls in .strtab, so they will both be in elf). 64bit
280*7304104dSAndroid Build Coastguard Worker# Use --remove-comment to make sure testfile.debug isn't empty.
281*7304104dSAndroid Build Coastguard Workerecho strip --keep-section=.symtab --remove-comment testfile69.so
282*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/strip --keep-section=.symtab --remove-comment -o testfile.elf -f testfile.debug testfile69.so
283*7304104dSAndroid Build Coastguard Workerecho elflint testfile.elf
284*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elflint --gnu testfile.elf
285*7304104dSAndroid Build Coastguard Workerecho elflint testfile.debug
286*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elflint --gnu -d testfile.debug
287*7304104dSAndroid Build Coastguard Workerecho readelf testfile.elf
288*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/readelf -S testfile.elf <<\EOF
289*7304104dSAndroid Build Coastguard WorkerThere are 27 section headers, starting at offset 0xf90:
290*7304104dSAndroid Build Coastguard Worker
291*7304104dSAndroid Build Coastguard WorkerSection Headers:
292*7304104dSAndroid Build Coastguard Worker[Nr] Name                 Type         Addr             Off      Size     ES Flags Lk Inf Al
293*7304104dSAndroid Build Coastguard Worker[ 0]                      NULL         0000000000000000 00000000 00000000  0        0   0  0
294*7304104dSAndroid Build Coastguard Worker[ 1] .note.gnu.build-id   NOTE         0000000000000190 00000190 00000024  0 A      0   0  4
295*7304104dSAndroid Build Coastguard Worker[ 2] .gnu.hash            GNU_HASH     00000000000001b8 000001b8 0000003c  0 A      3   0  8
296*7304104dSAndroid Build Coastguard Worker[ 3] .dynsym              DYNSYM       00000000000001f8 000001f8 00000108 24 A      4   2  8
297*7304104dSAndroid Build Coastguard Worker[ 4] .dynstr              STRTAB       0000000000000300 00000300 00000077  0 A      0   0  1
298*7304104dSAndroid Build Coastguard Worker[ 5] .gnu.version         GNU_versym   0000000000000378 00000378 00000016  2 A      3   0  2
299*7304104dSAndroid Build Coastguard Worker[ 6] .gnu.version_r       GNU_verneed  0000000000000390 00000390 00000020  0 A      4   1  8
300*7304104dSAndroid Build Coastguard Worker[ 7] .rela.dyn            RELA         00000000000003b0 000003b0 00000060 24 A      3   0  8
301*7304104dSAndroid Build Coastguard Worker[ 8] .rela.plt            RELA         0000000000000410 00000410 00000018 24 A      3  10  8
302*7304104dSAndroid Build Coastguard Worker[ 9] .init                PROGBITS     0000000000000428 00000428 00000018  0 AX     0   0  4
303*7304104dSAndroid Build Coastguard Worker[10] .plt                 PROGBITS     0000000000000440 00000440 00000020 16 AX     0   0 16
304*7304104dSAndroid Build Coastguard Worker[11] .text                PROGBITS     0000000000000460 00000460 00000128  0 AX     0   0 16
305*7304104dSAndroid Build Coastguard Worker[12] .fini                PROGBITS     0000000000000588 00000588 0000000e  0 AX     0   0  4
306*7304104dSAndroid Build Coastguard Worker[13] .eh_frame_hdr        PROGBITS     0000000000000598 00000598 00000024  0 A      0   0  4
307*7304104dSAndroid Build Coastguard Worker[14] .eh_frame            PROGBITS     00000000000005c0 000005c0 00000084  0 A      0   0  8
308*7304104dSAndroid Build Coastguard Worker[15] .ctors               PROGBITS     0000000000200648 00000648 00000010  0 WA     0   0  8
309*7304104dSAndroid Build Coastguard Worker[16] .dtors               PROGBITS     0000000000200658 00000658 00000010  0 WA     0   0  8
310*7304104dSAndroid Build Coastguard Worker[17] .jcr                 PROGBITS     0000000000200668 00000668 00000008  0 WA     0   0  8
311*7304104dSAndroid Build Coastguard Worker[18] .data.rel.ro         PROGBITS     0000000000200670 00000670 00000008  0 WA     0   0  8
312*7304104dSAndroid Build Coastguard Worker[19] .dynamic             DYNAMIC      0000000000200678 00000678 00000180 16 WA     4   0  8
313*7304104dSAndroid Build Coastguard Worker[20] .got                 PROGBITS     00000000002007f8 000007f8 00000018  8 WA     0   0  8
314*7304104dSAndroid Build Coastguard Worker[21] .got.plt             PROGBITS     0000000000200810 00000810 00000020  8 WA     0   0  8
315*7304104dSAndroid Build Coastguard Worker[22] .bss                 NOBITS       0000000000200830 00000830 00000010  0 WA     0   0  8
316*7304104dSAndroid Build Coastguard Worker[23] .symtab              SYMTAB       0000000000000000 00000830 000004e0 24       24  43  8
317*7304104dSAndroid Build Coastguard Worker[24] .strtab              STRTAB       0000000000000000 00000d10 00000175  0        0   0  1
318*7304104dSAndroid Build Coastguard Worker[25] .gnu_debuglink       PROGBITS     0000000000000000 00000e88 00000014  0        0   0  4
319*7304104dSAndroid Build Coastguard Worker[26] .shstrtab            STRTAB       0000000000000000 00000e9c 000000ed  0        0   0  1
320*7304104dSAndroid Build Coastguard Worker
321*7304104dSAndroid Build Coastguard WorkerEOF
322*7304104dSAndroid Build Coastguard Workerecho readelf testfile.debug
323*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/readelf -S testfile.debug <<\EOF
324*7304104dSAndroid Build Coastguard WorkerThere are 27 section headers, starting at offset 0x2d8:
325*7304104dSAndroid Build Coastguard Worker
326*7304104dSAndroid Build Coastguard WorkerSection Headers:
327*7304104dSAndroid Build Coastguard Worker[Nr] Name                 Type         Addr             Off      Size     ES Flags Lk Inf Al
328*7304104dSAndroid Build Coastguard Worker[ 0]                      NULL         0000000000000000 00000000 00000000  0        0   0  0
329*7304104dSAndroid Build Coastguard Worker[ 1] .note.gnu.build-id   NOTE         0000000000000190 00000190 00000024  0 A      0   0  4
330*7304104dSAndroid Build Coastguard Worker[ 2] .gnu.hash            NOBITS       00000000000001b8 000001b8 0000003c  0 A      3   0  8
331*7304104dSAndroid Build Coastguard Worker[ 3] .dynsym              NOBITS       00000000000001f8 000001b8 00000108 24 A      4   2  8
332*7304104dSAndroid Build Coastguard Worker[ 4] .dynstr              NOBITS       0000000000000300 000001b8 00000077  0 A      0   0  1
333*7304104dSAndroid Build Coastguard Worker[ 5] .gnu.version         NOBITS       0000000000000378 000001b8 00000016  2 A      3   0  2
334*7304104dSAndroid Build Coastguard Worker[ 6] .gnu.version_r       NOBITS       0000000000000390 000001b8 00000020  0 A      4   1  8
335*7304104dSAndroid Build Coastguard Worker[ 7] .rela.dyn            NOBITS       00000000000003b0 000001b8 00000060 24 A      3   0  8
336*7304104dSAndroid Build Coastguard Worker[ 8] .rela.plt            NOBITS       0000000000000410 000001b8 00000018 24 A      3  10  8
337*7304104dSAndroid Build Coastguard Worker[ 9] .init                NOBITS       0000000000000428 000001b8 00000018  0 AX     0   0  4
338*7304104dSAndroid Build Coastguard Worker[10] .plt                 NOBITS       0000000000000440 000001c0 00000020 16 AX     0   0 16
339*7304104dSAndroid Build Coastguard Worker[11] .text                NOBITS       0000000000000460 000001c0 00000128  0 AX     0   0 16
340*7304104dSAndroid Build Coastguard Worker[12] .fini                NOBITS       0000000000000588 000001c0 0000000e  0 AX     0   0  4
341*7304104dSAndroid Build Coastguard Worker[13] .eh_frame_hdr        NOBITS       0000000000000598 000001c0 00000024  0 A      0   0  4
342*7304104dSAndroid Build Coastguard Worker[14] .eh_frame            NOBITS       00000000000005c0 000001c0 00000084  0 A      0   0  8
343*7304104dSAndroid Build Coastguard Worker[15] .ctors               NOBITS       0000000000200648 000001c0 00000010  0 WA     0   0  8
344*7304104dSAndroid Build Coastguard Worker[16] .dtors               NOBITS       0000000000200658 000001c0 00000010  0 WA     0   0  8
345*7304104dSAndroid Build Coastguard Worker[17] .jcr                 NOBITS       0000000000200668 000001c0 00000008  0 WA     0   0  8
346*7304104dSAndroid Build Coastguard Worker[18] .data.rel.ro         NOBITS       0000000000200670 000001c0 00000008  0 WA     0   0  8
347*7304104dSAndroid Build Coastguard Worker[19] .dynamic             NOBITS       0000000000200678 000001c0 00000180 16 WA     4   0  8
348*7304104dSAndroid Build Coastguard Worker[20] .got                 NOBITS       00000000002007f8 000001c0 00000018  8 WA     0   0  8
349*7304104dSAndroid Build Coastguard Worker[21] .got.plt             NOBITS       0000000000200810 000001c0 00000020  8 WA     0   0  8
350*7304104dSAndroid Build Coastguard Worker[22] .bss                 NOBITS       0000000000200830 000001c0 00000010  0 WA     0   0  8
351*7304104dSAndroid Build Coastguard Worker[23] .comment             PROGBITS     0000000000000000 000001c0 0000002c  1 MS     0   0  1
352*7304104dSAndroid Build Coastguard Worker[24] .shstrtab            STRTAB       0000000000000000 000001ec 000000e7  0        0   0  1
353*7304104dSAndroid Build Coastguard Worker[25] .symtab              NOBITS       0000000000000000 000002d8 000004f8 24       26  44  8
354*7304104dSAndroid Build Coastguard Worker[26] .strtab              NOBITS       0000000000000000 000002d8 00000175  0        0   0  1
355*7304104dSAndroid Build Coastguard Worker
356*7304104dSAndroid Build Coastguard WorkerEOF
357*7304104dSAndroid Build Coastguard Worker
358*7304104dSAndroid Build Coastguard Worker# Explicitly remove .symtab (but not .strtab, so it will be in both). 32bit
359*7304104dSAndroid Build Coastguard Workerecho strip -g --remove-section=.symtab testfile
360*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/strip -g --remove-section=.symtab -o testfile.elf -f testfile.debug testfile
361*7304104dSAndroid Build Coastguard Workerecho elflint testfile.elf
362*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elflint --gnu testfile.elf
363*7304104dSAndroid Build Coastguard Workerecho elflint testfile.debug
364*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elflint --gnu -d testfile.debug
365*7304104dSAndroid Build Coastguard Workerecho readelf testfile.elf
366*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/readelf -S testfile.elf <<\EOF
367*7304104dSAndroid Build Coastguard WorkerThere are 28 section headers, starting at offset 0xafc:
368*7304104dSAndroid Build Coastguard Worker
369*7304104dSAndroid Build Coastguard WorkerSection Headers:
370*7304104dSAndroid Build Coastguard Worker[Nr] Name                 Type         Addr     Off    Size   ES Flags Lk Inf Al
371*7304104dSAndroid Build Coastguard Worker[ 0]                      NULL         00000000 000000 000000  0        0   0  0
372*7304104dSAndroid Build Coastguard Worker[ 1] .interp              PROGBITS     080480f4 0000f4 000013  0 A      0   0  1
373*7304104dSAndroid Build Coastguard Worker[ 2] .note.ABI-tag        NOTE         08048108 000108 000020  0 A      0   0  4
374*7304104dSAndroid Build Coastguard Worker[ 3] .hash                HASH         08048128 000128 000030  4 A      4   0  4
375*7304104dSAndroid Build Coastguard Worker[ 4] .dynsym              DYNSYM       08048158 000158 000070 16 A      5   1  4
376*7304104dSAndroid Build Coastguard Worker[ 5] .dynstr              STRTAB       080481c8 0001c8 00008e  0 A      0   0  1
377*7304104dSAndroid Build Coastguard Worker[ 6] .gnu.version         GNU_versym   08048256 000256 00000e  2 A      4   0  2
378*7304104dSAndroid Build Coastguard Worker[ 7] .gnu.version_r       GNU_verneed  08048264 000264 000030  0 A      5   1  4
379*7304104dSAndroid Build Coastguard Worker[ 8] .rel.got             REL          08048294 000294 000008  8 A      4  19  4
380*7304104dSAndroid Build Coastguard Worker[ 9] .rel.plt             REL          0804829c 00029c 000020  8 A      4  11  4
381*7304104dSAndroid Build Coastguard Worker[10] .init                PROGBITS     080482bc 0002bc 000018  0 AX     0   0  4
382*7304104dSAndroid Build Coastguard Worker[11] .plt                 PROGBITS     080482d4 0002d4 000050  4 AX     0   0  4
383*7304104dSAndroid Build Coastguard Worker[12] .text                PROGBITS     08048330 000330 00018c  0 AX     0   0 16
384*7304104dSAndroid Build Coastguard Worker[13] .fini                PROGBITS     080484bc 0004bc 00001e  0 AX     0   0  4
385*7304104dSAndroid Build Coastguard Worker[14] .rodata              PROGBITS     080484dc 0004dc 000008  0 A      0   0  4
386*7304104dSAndroid Build Coastguard Worker[15] .data                PROGBITS     080494e4 0004e4 000010  0 WA     0   0  4
387*7304104dSAndroid Build Coastguard Worker[16] .eh_frame            PROGBITS     080494f4 0004f4 000004  0 WA     0   0  4
388*7304104dSAndroid Build Coastguard Worker[17] .ctors               PROGBITS     080494f8 0004f8 000008  0 WA     0   0  4
389*7304104dSAndroid Build Coastguard Worker[18] .dtors               PROGBITS     08049500 000500 000008  0 WA     0   0  4
390*7304104dSAndroid Build Coastguard Worker[19] .got                 PROGBITS     08049508 000508 000020  4 WA     0   0  4
391*7304104dSAndroid Build Coastguard Worker[20] .dynamic             DYNAMIC      08049528 000528 0000a0  8 WA     5   0  4
392*7304104dSAndroid Build Coastguard Worker[21] .sbss                PROGBITS     080495c8 0005c8 000000  0 W      0   0  1
393*7304104dSAndroid Build Coastguard Worker[22] .bss                 NOBITS       080495c8 0005c8 00001c  0 WA     0   0  4
394*7304104dSAndroid Build Coastguard Worker[23] .comment             PROGBITS     00000000 0005c8 000170  0        0   0  1
395*7304104dSAndroid Build Coastguard Worker[24] .note                NOTE         00000000 000738 0000a0  0        0   0  1
396*7304104dSAndroid Build Coastguard Worker[25] .strtab              STRTAB       00000000 0007d8 000235  0        0   0  1
397*7304104dSAndroid Build Coastguard Worker[26] .gnu_debuglink       PROGBITS     00000000 000a10 000014  0        0   0  4
398*7304104dSAndroid Build Coastguard Worker[27] .shstrtab            STRTAB       00000000 000a24 0000d7  0        0   0  1
399*7304104dSAndroid Build Coastguard Worker
400*7304104dSAndroid Build Coastguard WorkerEOF
401*7304104dSAndroid Build Coastguard Workerecho readelf testfile.debug
402*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/readelf -S testfile.debug <<\EOF
403*7304104dSAndroid Build Coastguard WorkerThere are 35 section headers, starting at offset 0x463c:
404*7304104dSAndroid Build Coastguard Worker
405*7304104dSAndroid Build Coastguard WorkerSection Headers:
406*7304104dSAndroid Build Coastguard Worker[Nr] Name                 Type         Addr     Off    Size   ES Flags Lk Inf Al
407*7304104dSAndroid Build Coastguard Worker[ 0]                      NULL         00000000 000000 000000  0        0   0  0
408*7304104dSAndroid Build Coastguard Worker[ 1] .interp              NOBITS       080480f4 0000f4 000013  0 A      0   0  1
409*7304104dSAndroid Build Coastguard Worker[ 2] .note.ABI-tag        NOTE         08048108 0000f4 000020  0 A      0   0  4
410*7304104dSAndroid Build Coastguard Worker[ 3] .hash                NOBITS       08048128 000114 000030  4 A      4   0  4
411*7304104dSAndroid Build Coastguard Worker[ 4] .dynsym              NOBITS       08048158 000114 000070 16 A      5   1  4
412*7304104dSAndroid Build Coastguard Worker[ 5] .dynstr              NOBITS       080481c8 000114 00008e  0 A      0   0  1
413*7304104dSAndroid Build Coastguard Worker[ 6] .gnu.version         NOBITS       08048256 000114 00000e  2 A      4   0  2
414*7304104dSAndroid Build Coastguard Worker[ 7] .gnu.version_r       NOBITS       08048264 000114 000030  0 A      5   1  4
415*7304104dSAndroid Build Coastguard Worker[ 8] .rel.got             NOBITS       08048294 000114 000008  8 A      4  19  4
416*7304104dSAndroid Build Coastguard Worker[ 9] .rel.plt             NOBITS       0804829c 000114 000020  8 A      4  11  4
417*7304104dSAndroid Build Coastguard Worker[10] .init                NOBITS       080482bc 000114 000018  0 AX     0   0  4
418*7304104dSAndroid Build Coastguard Worker[11] .plt                 NOBITS       080482d4 000114 000050  4 AX     0   0  4
419*7304104dSAndroid Build Coastguard Worker[12] .text                NOBITS       08048330 000120 00018c  0 AX     0   0 16
420*7304104dSAndroid Build Coastguard Worker[13] .fini                NOBITS       080484bc 000120 00001e  0 AX     0   0  4
421*7304104dSAndroid Build Coastguard Worker[14] .rodata              NOBITS       080484dc 000120 000008  0 A      0   0  4
422*7304104dSAndroid Build Coastguard Worker[15] .data                NOBITS       080494e4 000120 000010  0 WA     0   0  4
423*7304104dSAndroid Build Coastguard Worker[16] .eh_frame            NOBITS       080494f4 000120 000004  0 WA     0   0  4
424*7304104dSAndroid Build Coastguard Worker[17] .ctors               NOBITS       080494f8 000120 000008  0 WA     0   0  4
425*7304104dSAndroid Build Coastguard Worker[18] .dtors               NOBITS       08049500 000120 000008  0 WA     0   0  4
426*7304104dSAndroid Build Coastguard Worker[19] .got                 NOBITS       08049508 000120 000020  4 WA     0   0  4
427*7304104dSAndroid Build Coastguard Worker[20] .dynamic             NOBITS       08049528 000120 0000a0  8 WA     5   0  4
428*7304104dSAndroid Build Coastguard Worker[21] .sbss                NOBITS       080495c8 000120 000000  0 W      0   0  1
429*7304104dSAndroid Build Coastguard Worker[22] .bss                 NOBITS       080495c8 000120 00001c  0 WA     0   0  4
430*7304104dSAndroid Build Coastguard Worker[23] .stab                PROGBITS     00000000 000120 000720 12       24   0  4
431*7304104dSAndroid Build Coastguard Worker[24] .stabstr             STRTAB       00000000 000840 001934  0        0   0  1
432*7304104dSAndroid Build Coastguard Worker[25] .comment             NOBITS       00000000 002174 000170  0        0   0  1
433*7304104dSAndroid Build Coastguard Worker[26] .debug_aranges       PROGBITS     00000000 002174 000060  0        0   0  1
434*7304104dSAndroid Build Coastguard Worker[27] .debug_pubnames      PROGBITS     00000000 0021d4 000055  0        0   0  1
435*7304104dSAndroid Build Coastguard Worker[28] .debug_info          PROGBITS     00000000 002229 001678  0        0   0  1
436*7304104dSAndroid Build Coastguard Worker[29] .debug_abbrev        PROGBITS     00000000 0038a1 0001d2  0        0   0  1
437*7304104dSAndroid Build Coastguard Worker[30] .debug_line          PROGBITS     00000000 003a73 000223  0        0   0  1
438*7304104dSAndroid Build Coastguard Worker[31] .note                NOTE         00000000 003c96 0000a0  0        0   0  1
439*7304104dSAndroid Build Coastguard Worker[32] .shstrtab            STRTAB       00000000 003d36 00012e  0        0   0  1
440*7304104dSAndroid Build Coastguard Worker[33] .symtab              SYMTAB       00000000 003e64 0005a0 16       34  68  4
441*7304104dSAndroid Build Coastguard Worker[34] .strtab              STRTAB       00000000 004404 000235  0        0   0  1
442*7304104dSAndroid Build Coastguard Worker
443*7304104dSAndroid Build Coastguard WorkerEOF
444*7304104dSAndroid Build Coastguard Worker
445*7304104dSAndroid Build Coastguard Worker# Explicitly remove both .symtab and .strtab. Keep .stab and .stabstr 32bit
446*7304104dSAndroid Build Coastguard Workerecho strip -g --remove-section=".s[yt][mr]tab" --keep-section=".stab*" testfile
447*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/strip -g --remove-section=".s[yt][mr]tab" --keep-section=".stab*" -o testfile.elf -f testfile.debug testfile
448*7304104dSAndroid Build Coastguard Workerecho elflint testfile.elf
449*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elflint --gnu testfile.elf
450*7304104dSAndroid Build Coastguard Workerecho elflint testfile.debug
451*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elflint --gnu -d testfile.debug
452*7304104dSAndroid Build Coastguard Workerecho readelf testfile.elf
453*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/readelf -S testfile.elf <<\EOF
454*7304104dSAndroid Build Coastguard WorkerThere are 29 section headers, starting at offset 0x2920:
455*7304104dSAndroid Build Coastguard Worker
456*7304104dSAndroid Build Coastguard WorkerSection Headers:
457*7304104dSAndroid Build Coastguard Worker[Nr] Name                 Type         Addr     Off    Size   ES Flags Lk Inf Al
458*7304104dSAndroid Build Coastguard Worker[ 0]                      NULL         00000000 000000 000000  0        0   0  0
459*7304104dSAndroid Build Coastguard Worker[ 1] .interp              PROGBITS     080480f4 0000f4 000013  0 A      0   0  1
460*7304104dSAndroid Build Coastguard Worker[ 2] .note.ABI-tag        NOTE         08048108 000108 000020  0 A      0   0  4
461*7304104dSAndroid Build Coastguard Worker[ 3] .hash                HASH         08048128 000128 000030  4 A      4   0  4
462*7304104dSAndroid Build Coastguard Worker[ 4] .dynsym              DYNSYM       08048158 000158 000070 16 A      5   1  4
463*7304104dSAndroid Build Coastguard Worker[ 5] .dynstr              STRTAB       080481c8 0001c8 00008e  0 A      0   0  1
464*7304104dSAndroid Build Coastguard Worker[ 6] .gnu.version         GNU_versym   08048256 000256 00000e  2 A      4   0  2
465*7304104dSAndroid Build Coastguard Worker[ 7] .gnu.version_r       GNU_verneed  08048264 000264 000030  0 A      5   1  4
466*7304104dSAndroid Build Coastguard Worker[ 8] .rel.got             REL          08048294 000294 000008  8 A      4  19  4
467*7304104dSAndroid Build Coastguard Worker[ 9] .rel.plt             REL          0804829c 00029c 000020  8 A      4  11  4
468*7304104dSAndroid Build Coastguard Worker[10] .init                PROGBITS     080482bc 0002bc 000018  0 AX     0   0  4
469*7304104dSAndroid Build Coastguard Worker[11] .plt                 PROGBITS     080482d4 0002d4 000050  4 AX     0   0  4
470*7304104dSAndroid Build Coastguard Worker[12] .text                PROGBITS     08048330 000330 00018c  0 AX     0   0 16
471*7304104dSAndroid Build Coastguard Worker[13] .fini                PROGBITS     080484bc 0004bc 00001e  0 AX     0   0  4
472*7304104dSAndroid Build Coastguard Worker[14] .rodata              PROGBITS     080484dc 0004dc 000008  0 A      0   0  4
473*7304104dSAndroid Build Coastguard Worker[15] .data                PROGBITS     080494e4 0004e4 000010  0 WA     0   0  4
474*7304104dSAndroid Build Coastguard Worker[16] .eh_frame            PROGBITS     080494f4 0004f4 000004  0 WA     0   0  4
475*7304104dSAndroid Build Coastguard Worker[17] .ctors               PROGBITS     080494f8 0004f8 000008  0 WA     0   0  4
476*7304104dSAndroid Build Coastguard Worker[18] .dtors               PROGBITS     08049500 000500 000008  0 WA     0   0  4
477*7304104dSAndroid Build Coastguard Worker[19] .got                 PROGBITS     08049508 000508 000020  4 WA     0   0  4
478*7304104dSAndroid Build Coastguard Worker[20] .dynamic             DYNAMIC      08049528 000528 0000a0  8 WA     5   0  4
479*7304104dSAndroid Build Coastguard Worker[21] .sbss                PROGBITS     080495c8 0005c8 000000  0 W      0   0  1
480*7304104dSAndroid Build Coastguard Worker[22] .bss                 NOBITS       080495c8 0005c8 00001c  0 WA     0   0  4
481*7304104dSAndroid Build Coastguard Worker[23] .stab                PROGBITS     00000000 0005c8 000720 12       24   0  4
482*7304104dSAndroid Build Coastguard Worker[24] .stabstr             STRTAB       00000000 000ce8 001934  0        0   0  1
483*7304104dSAndroid Build Coastguard Worker[25] .comment             PROGBITS     00000000 00261c 000170  0        0   0  1
484*7304104dSAndroid Build Coastguard Worker[26] .note                NOTE         00000000 00278c 0000a0  0        0   0  1
485*7304104dSAndroid Build Coastguard Worker[27] .gnu_debuglink       PROGBITS     00000000 00282c 000014  0        0   0  4
486*7304104dSAndroid Build Coastguard Worker[28] .shstrtab            STRTAB       00000000 002840 0000de  0        0   0  1
487*7304104dSAndroid Build Coastguard Worker
488*7304104dSAndroid Build Coastguard WorkerEOF
489*7304104dSAndroid Build Coastguard Workerecho readelf testfile.debug
490*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/readelf -S testfile.debug <<\EOF
491*7304104dSAndroid Build Coastguard WorkerThere are 35 section headers, starting at offset 0x25e8:
492*7304104dSAndroid Build Coastguard Worker
493*7304104dSAndroid Build Coastguard WorkerSection Headers:
494*7304104dSAndroid Build Coastguard Worker[Nr] Name                 Type         Addr     Off    Size   ES Flags Lk Inf Al
495*7304104dSAndroid Build Coastguard Worker[ 0]                      NULL         00000000 000000 000000  0        0   0  0
496*7304104dSAndroid Build Coastguard Worker[ 1] .interp              NOBITS       080480f4 0000f4 000013  0 A      0   0  1
497*7304104dSAndroid Build Coastguard Worker[ 2] .note.ABI-tag        NOTE         08048108 0000f4 000020  0 A      0   0  4
498*7304104dSAndroid Build Coastguard Worker[ 3] .hash                NOBITS       08048128 000114 000030  4 A      4   0  4
499*7304104dSAndroid Build Coastguard Worker[ 4] .dynsym              NOBITS       08048158 000114 000070 16 A      5   1  4
500*7304104dSAndroid Build Coastguard Worker[ 5] .dynstr              NOBITS       080481c8 000114 00008e  0 A      0   0  1
501*7304104dSAndroid Build Coastguard Worker[ 6] .gnu.version         NOBITS       08048256 000114 00000e  2 A      4   0  2
502*7304104dSAndroid Build Coastguard Worker[ 7] .gnu.version_r       NOBITS       08048264 000114 000030  0 A      5   1  4
503*7304104dSAndroid Build Coastguard Worker[ 8] .rel.got             NOBITS       08048294 000114 000008  8 A      4  19  4
504*7304104dSAndroid Build Coastguard Worker[ 9] .rel.plt             NOBITS       0804829c 000114 000020  8 A      4  11  4
505*7304104dSAndroid Build Coastguard Worker[10] .init                NOBITS       080482bc 000114 000018  0 AX     0   0  4
506*7304104dSAndroid Build Coastguard Worker[11] .plt                 NOBITS       080482d4 000114 000050  4 AX     0   0  4
507*7304104dSAndroid Build Coastguard Worker[12] .text                NOBITS       08048330 000120 00018c  0 AX     0   0 16
508*7304104dSAndroid Build Coastguard Worker[13] .fini                NOBITS       080484bc 000120 00001e  0 AX     0   0  4
509*7304104dSAndroid Build Coastguard Worker[14] .rodata              NOBITS       080484dc 000120 000008  0 A      0   0  4
510*7304104dSAndroid Build Coastguard Worker[15] .data                NOBITS       080494e4 000120 000010  0 WA     0   0  4
511*7304104dSAndroid Build Coastguard Worker[16] .eh_frame            NOBITS       080494f4 000120 000004  0 WA     0   0  4
512*7304104dSAndroid Build Coastguard Worker[17] .ctors               NOBITS       080494f8 000120 000008  0 WA     0   0  4
513*7304104dSAndroid Build Coastguard Worker[18] .dtors               NOBITS       08049500 000120 000008  0 WA     0   0  4
514*7304104dSAndroid Build Coastguard Worker[19] .got                 NOBITS       08049508 000120 000020  4 WA     0   0  4
515*7304104dSAndroid Build Coastguard Worker[20] .dynamic             NOBITS       08049528 000120 0000a0  8 WA     5   0  4
516*7304104dSAndroid Build Coastguard Worker[21] .sbss                NOBITS       080495c8 000120 000000  0 W      0   0  1
517*7304104dSAndroid Build Coastguard Worker[22] .bss                 NOBITS       080495c8 000120 00001c  0 WA     0   0  4
518*7304104dSAndroid Build Coastguard Worker[23] .stab                NOBITS       00000000 000120 000720 12       24   0  4
519*7304104dSAndroid Build Coastguard Worker[24] .stabstr             NOBITS       00000000 000120 001934  0        0   0  1
520*7304104dSAndroid Build Coastguard Worker[25] .comment             NOBITS       00000000 000120 000170  0        0   0  1
521*7304104dSAndroid Build Coastguard Worker[26] .debug_aranges       PROGBITS     00000000 000120 000060  0        0   0  1
522*7304104dSAndroid Build Coastguard Worker[27] .debug_pubnames      PROGBITS     00000000 000180 000055  0        0   0  1
523*7304104dSAndroid Build Coastguard Worker[28] .debug_info          PROGBITS     00000000 0001d5 001678  0        0   0  1
524*7304104dSAndroid Build Coastguard Worker[29] .debug_abbrev        PROGBITS     00000000 00184d 0001d2  0        0   0  1
525*7304104dSAndroid Build Coastguard Worker[30] .debug_line          PROGBITS     00000000 001a1f 000223  0        0   0  1
526*7304104dSAndroid Build Coastguard Worker[31] .note                NOTE         00000000 001c42 0000a0  0        0   0  1
527*7304104dSAndroid Build Coastguard Worker[32] .shstrtab            STRTAB       00000000 001ce2 00012e  0        0   0  1
528*7304104dSAndroid Build Coastguard Worker[33] .symtab              SYMTAB       00000000 001e10 0005a0 16       34  68  4
529*7304104dSAndroid Build Coastguard Worker[34] .strtab              STRTAB       00000000 0023b0 000235  0        0   0  1
530*7304104dSAndroid Build Coastguard Worker
531*7304104dSAndroid Build Coastguard WorkerEOF
532*7304104dSAndroid Build Coastguard Worker
533*7304104dSAndroid Build Coastguard Worker# Explicitly remove .symtab (but not .strtab, so it will be in both). 64bit
534*7304104dSAndroid Build Coastguard Workerecho strip -g --remove-section=.symtab testfile69.so
535*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/strip -g --remove-section=.symtab -o testfile.elf -f testfile.debug testfile69.so
536*7304104dSAndroid Build Coastguard Workerecho elflint testfile.elf
537*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elflint --gnu testfile.elf
538*7304104dSAndroid Build Coastguard Workerecho elflint testfile.debug
539*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elflint --gnu -d testfile.debug
540*7304104dSAndroid Build Coastguard Workerecho readelf testfile.elf
541*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/readelf -S testfile.elf <<\EOF
542*7304104dSAndroid Build Coastguard WorkerThere are 27 section headers, starting at offset 0xad8:
543*7304104dSAndroid Build Coastguard Worker
544*7304104dSAndroid Build Coastguard WorkerSection Headers:
545*7304104dSAndroid Build Coastguard Worker[Nr] Name                 Type         Addr             Off      Size     ES Flags Lk Inf Al
546*7304104dSAndroid Build Coastguard Worker[ 0]                      NULL         0000000000000000 00000000 00000000  0        0   0  0
547*7304104dSAndroid Build Coastguard Worker[ 1] .note.gnu.build-id   NOTE         0000000000000190 00000190 00000024  0 A      0   0  4
548*7304104dSAndroid Build Coastguard Worker[ 2] .gnu.hash            GNU_HASH     00000000000001b8 000001b8 0000003c  0 A      3   0  8
549*7304104dSAndroid Build Coastguard Worker[ 3] .dynsym              DYNSYM       00000000000001f8 000001f8 00000108 24 A      4   2  8
550*7304104dSAndroid Build Coastguard Worker[ 4] .dynstr              STRTAB       0000000000000300 00000300 00000077  0 A      0   0  1
551*7304104dSAndroid Build Coastguard Worker[ 5] .gnu.version         GNU_versym   0000000000000378 00000378 00000016  2 A      3   0  2
552*7304104dSAndroid Build Coastguard Worker[ 6] .gnu.version_r       GNU_verneed  0000000000000390 00000390 00000020  0 A      4   1  8
553*7304104dSAndroid Build Coastguard Worker[ 7] .rela.dyn            RELA         00000000000003b0 000003b0 00000060 24 A      3   0  8
554*7304104dSAndroid Build Coastguard Worker[ 8] .rela.plt            RELA         0000000000000410 00000410 00000018 24 A      3  10  8
555*7304104dSAndroid Build Coastguard Worker[ 9] .init                PROGBITS     0000000000000428 00000428 00000018  0 AX     0   0  4
556*7304104dSAndroid Build Coastguard Worker[10] .plt                 PROGBITS     0000000000000440 00000440 00000020 16 AX     0   0 16
557*7304104dSAndroid Build Coastguard Worker[11] .text                PROGBITS     0000000000000460 00000460 00000128  0 AX     0   0 16
558*7304104dSAndroid Build Coastguard Worker[12] .fini                PROGBITS     0000000000000588 00000588 0000000e  0 AX     0   0  4
559*7304104dSAndroid Build Coastguard Worker[13] .eh_frame_hdr        PROGBITS     0000000000000598 00000598 00000024  0 A      0   0  4
560*7304104dSAndroid Build Coastguard Worker[14] .eh_frame            PROGBITS     00000000000005c0 000005c0 00000084  0 A      0   0  8
561*7304104dSAndroid Build Coastguard Worker[15] .ctors               PROGBITS     0000000000200648 00000648 00000010  0 WA     0   0  8
562*7304104dSAndroid Build Coastguard Worker[16] .dtors               PROGBITS     0000000000200658 00000658 00000010  0 WA     0   0  8
563*7304104dSAndroid Build Coastguard Worker[17] .jcr                 PROGBITS     0000000000200668 00000668 00000008  0 WA     0   0  8
564*7304104dSAndroid Build Coastguard Worker[18] .data.rel.ro         PROGBITS     0000000000200670 00000670 00000008  0 WA     0   0  8
565*7304104dSAndroid Build Coastguard Worker[19] .dynamic             DYNAMIC      0000000000200678 00000678 00000180 16 WA     4   0  8
566*7304104dSAndroid Build Coastguard Worker[20] .got                 PROGBITS     00000000002007f8 000007f8 00000018  8 WA     0   0  8
567*7304104dSAndroid Build Coastguard Worker[21] .got.plt             PROGBITS     0000000000200810 00000810 00000020  8 WA     0   0  8
568*7304104dSAndroid Build Coastguard Worker[22] .bss                 NOBITS       0000000000200830 00000830 00000010  0 WA     0   0  8
569*7304104dSAndroid Build Coastguard Worker[23] .comment             PROGBITS     0000000000000000 00000830 0000002c  1 MS     0   0  1
570*7304104dSAndroid Build Coastguard Worker[24] .strtab              STRTAB       0000000000000000 0000085c 00000175  0        0   0  1
571*7304104dSAndroid Build Coastguard Worker[25] .gnu_debuglink       PROGBITS     0000000000000000 000009d4 00000014  0        0   0  4
572*7304104dSAndroid Build Coastguard Worker[26] .shstrtab            STRTAB       0000000000000000 000009e8 000000ee  0        0   0  1
573*7304104dSAndroid Build Coastguard Worker
574*7304104dSAndroid Build Coastguard WorkerEOF
575*7304104dSAndroid Build Coastguard Workerecho readelf testfile.debug
576*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/readelf -S testfile.debug <<\EOF
577*7304104dSAndroid Build Coastguard WorkerThere are 27 section headers, starting at offset 0x918:
578*7304104dSAndroid Build Coastguard Worker
579*7304104dSAndroid Build Coastguard WorkerSection Headers:
580*7304104dSAndroid Build Coastguard Worker[Nr] Name                 Type         Addr             Off      Size     ES Flags Lk Inf Al
581*7304104dSAndroid Build Coastguard Worker[ 0]                      NULL         0000000000000000 00000000 00000000  0        0   0  0
582*7304104dSAndroid Build Coastguard Worker[ 1] .note.gnu.build-id   NOTE         0000000000000190 00000190 00000024  0 A      0   0  4
583*7304104dSAndroid Build Coastguard Worker[ 2] .gnu.hash            NOBITS       00000000000001b8 000001b8 0000003c  0 A      3   0  8
584*7304104dSAndroid Build Coastguard Worker[ 3] .dynsym              NOBITS       00000000000001f8 000001b8 00000108 24 A      4   2  8
585*7304104dSAndroid Build Coastguard Worker[ 4] .dynstr              NOBITS       0000000000000300 000001b8 00000077  0 A      0   0  1
586*7304104dSAndroid Build Coastguard Worker[ 5] .gnu.version         NOBITS       0000000000000378 000001b8 00000016  2 A      3   0  2
587*7304104dSAndroid Build Coastguard Worker[ 6] .gnu.version_r       NOBITS       0000000000000390 000001b8 00000020  0 A      4   1  8
588*7304104dSAndroid Build Coastguard Worker[ 7] .rela.dyn            NOBITS       00000000000003b0 000001b8 00000060 24 A      3   0  8
589*7304104dSAndroid Build Coastguard Worker[ 8] .rela.plt            NOBITS       0000000000000410 000001b8 00000018 24 A      3  10  8
590*7304104dSAndroid Build Coastguard Worker[ 9] .init                NOBITS       0000000000000428 000001b8 00000018  0 AX     0   0  4
591*7304104dSAndroid Build Coastguard Worker[10] .plt                 NOBITS       0000000000000440 000001c0 00000020 16 AX     0   0 16
592*7304104dSAndroid Build Coastguard Worker[11] .text                NOBITS       0000000000000460 000001c0 00000128  0 AX     0   0 16
593*7304104dSAndroid Build Coastguard Worker[12] .fini                NOBITS       0000000000000588 000001c0 0000000e  0 AX     0   0  4
594*7304104dSAndroid Build Coastguard Worker[13] .eh_frame_hdr        NOBITS       0000000000000598 000001c0 00000024  0 A      0   0  4
595*7304104dSAndroid Build Coastguard Worker[14] .eh_frame            NOBITS       00000000000005c0 000001c0 00000084  0 A      0   0  8
596*7304104dSAndroid Build Coastguard Worker[15] .ctors               NOBITS       0000000000200648 000001c0 00000010  0 WA     0   0  8
597*7304104dSAndroid Build Coastguard Worker[16] .dtors               NOBITS       0000000000200658 000001c0 00000010  0 WA     0   0  8
598*7304104dSAndroid Build Coastguard Worker[17] .jcr                 NOBITS       0000000000200668 000001c0 00000008  0 WA     0   0  8
599*7304104dSAndroid Build Coastguard Worker[18] .data.rel.ro         NOBITS       0000000000200670 000001c0 00000008  0 WA     0   0  8
600*7304104dSAndroid Build Coastguard Worker[19] .dynamic             NOBITS       0000000000200678 000001c0 00000180 16 WA     4   0  8
601*7304104dSAndroid Build Coastguard Worker[20] .got                 NOBITS       00000000002007f8 000001c0 00000018  8 WA     0   0  8
602*7304104dSAndroid Build Coastguard Worker[21] .got.plt             NOBITS       0000000000200810 000001c0 00000020  8 WA     0   0  8
603*7304104dSAndroid Build Coastguard Worker[22] .bss                 NOBITS       0000000000200830 000001c0 00000010  0 WA     0   0  8
604*7304104dSAndroid Build Coastguard Worker[23] .comment             NOBITS       0000000000000000 000001c0 0000002c  1 MS     0   0  1
605*7304104dSAndroid Build Coastguard Worker[24] .shstrtab            STRTAB       0000000000000000 000001c0 000000e7  0        0   0  1
606*7304104dSAndroid Build Coastguard Worker[25] .symtab              SYMTAB       0000000000000000 000002a8 000004f8 24       26  44  8
607*7304104dSAndroid Build Coastguard Worker[26] .strtab              STRTAB       0000000000000000 000007a0 00000175  0        0   0  1
608*7304104dSAndroid Build Coastguard Worker
609*7304104dSAndroid Build Coastguard WorkerEOF
610*7304104dSAndroid Build Coastguard Worker
611*7304104dSAndroid Build Coastguard Worker# Explicitly remove both .symtab and .strtab. Keep .comment section. 64bit
612*7304104dSAndroid Build Coastguard Workerecho strip -g --remove-section=".s[yt][mr]tab" --keep-section=.comment testfile69.so
613*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/strip -g --remove-section=".s[yt][mr]tab" --keep-section=.comment -o testfile.elf -f testfile.debug testfile69.so
614*7304104dSAndroid Build Coastguard Workerecho elflint testfile.elf
615*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elflint --gnu testfile.elf
616*7304104dSAndroid Build Coastguard Workerecho elflint testfile.debug
617*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elflint --gnu -d testfile.debug
618*7304104dSAndroid Build Coastguard Workerecho readelf testfile.elf
619*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/readelf -S testfile.elf <<\EOF
620*7304104dSAndroid Build Coastguard WorkerThere are 26 section headers, starting at offset 0x958:
621*7304104dSAndroid Build Coastguard Worker
622*7304104dSAndroid Build Coastguard WorkerSection Headers:
623*7304104dSAndroid Build Coastguard Worker[Nr] Name                 Type         Addr             Off      Size     ES Flags Lk Inf Al
624*7304104dSAndroid Build Coastguard Worker[ 0]                      NULL         0000000000000000 00000000 00000000  0        0   0  0
625*7304104dSAndroid Build Coastguard Worker[ 1] .note.gnu.build-id   NOTE         0000000000000190 00000190 00000024  0 A      0   0  4
626*7304104dSAndroid Build Coastguard Worker[ 2] .gnu.hash            GNU_HASH     00000000000001b8 000001b8 0000003c  0 A      3   0  8
627*7304104dSAndroid Build Coastguard Worker[ 3] .dynsym              DYNSYM       00000000000001f8 000001f8 00000108 24 A      4   2  8
628*7304104dSAndroid Build Coastguard Worker[ 4] .dynstr              STRTAB       0000000000000300 00000300 00000077  0 A      0   0  1
629*7304104dSAndroid Build Coastguard Worker[ 5] .gnu.version         GNU_versym   0000000000000378 00000378 00000016  2 A      3   0  2
630*7304104dSAndroid Build Coastguard Worker[ 6] .gnu.version_r       GNU_verneed  0000000000000390 00000390 00000020  0 A      4   1  8
631*7304104dSAndroid Build Coastguard Worker[ 7] .rela.dyn            RELA         00000000000003b0 000003b0 00000060 24 A      3   0  8
632*7304104dSAndroid Build Coastguard Worker[ 8] .rela.plt            RELA         0000000000000410 00000410 00000018 24 A      3  10  8
633*7304104dSAndroid Build Coastguard Worker[ 9] .init                PROGBITS     0000000000000428 00000428 00000018  0 AX     0   0  4
634*7304104dSAndroid Build Coastguard Worker[10] .plt                 PROGBITS     0000000000000440 00000440 00000020 16 AX     0   0 16
635*7304104dSAndroid Build Coastguard Worker[11] .text                PROGBITS     0000000000000460 00000460 00000128  0 AX     0   0 16
636*7304104dSAndroid Build Coastguard Worker[12] .fini                PROGBITS     0000000000000588 00000588 0000000e  0 AX     0   0  4
637*7304104dSAndroid Build Coastguard Worker[13] .eh_frame_hdr        PROGBITS     0000000000000598 00000598 00000024  0 A      0   0  4
638*7304104dSAndroid Build Coastguard Worker[14] .eh_frame            PROGBITS     00000000000005c0 000005c0 00000084  0 A      0   0  8
639*7304104dSAndroid Build Coastguard Worker[15] .ctors               PROGBITS     0000000000200648 00000648 00000010  0 WA     0   0  8
640*7304104dSAndroid Build Coastguard Worker[16] .dtors               PROGBITS     0000000000200658 00000658 00000010  0 WA     0   0  8
641*7304104dSAndroid Build Coastguard Worker[17] .jcr                 PROGBITS     0000000000200668 00000668 00000008  0 WA     0   0  8
642*7304104dSAndroid Build Coastguard Worker[18] .data.rel.ro         PROGBITS     0000000000200670 00000670 00000008  0 WA     0   0  8
643*7304104dSAndroid Build Coastguard Worker[19] .dynamic             DYNAMIC      0000000000200678 00000678 00000180 16 WA     4   0  8
644*7304104dSAndroid Build Coastguard Worker[20] .got                 PROGBITS     00000000002007f8 000007f8 00000018  8 WA     0   0  8
645*7304104dSAndroid Build Coastguard Worker[21] .got.plt             PROGBITS     0000000000200810 00000810 00000020  8 WA     0   0  8
646*7304104dSAndroid Build Coastguard Worker[22] .bss                 NOBITS       0000000000200830 00000830 00000010  0 WA     0   0  8
647*7304104dSAndroid Build Coastguard Worker[23] .comment             PROGBITS     0000000000000000 00000830 0000002c  1 MS     0   0  1
648*7304104dSAndroid Build Coastguard Worker[24] .gnu_debuglink       PROGBITS     0000000000000000 0000085c 00000014  0        0   0  4
649*7304104dSAndroid Build Coastguard Worker[25] .shstrtab            STRTAB       0000000000000000 00000870 000000e6  0        0   0  1
650*7304104dSAndroid Build Coastguard Worker
651*7304104dSAndroid Build Coastguard WorkerEOF
652*7304104dSAndroid Build Coastguard Workerecho readelf testfile.debug
653*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/readelf -S testfile.debug <<\EOF
654*7304104dSAndroid Build Coastguard WorkerThere are 27 section headers, starting at offset 0x918:
655*7304104dSAndroid Build Coastguard Worker
656*7304104dSAndroid Build Coastguard WorkerSection Headers:
657*7304104dSAndroid Build Coastguard Worker[Nr] Name                 Type         Addr             Off      Size     ES Flags Lk Inf Al
658*7304104dSAndroid Build Coastguard Worker[ 0]                      NULL         0000000000000000 00000000 00000000  0        0   0  0
659*7304104dSAndroid Build Coastguard Worker[ 1] .note.gnu.build-id   NOTE         0000000000000190 00000190 00000024  0 A      0   0  4
660*7304104dSAndroid Build Coastguard Worker[ 2] .gnu.hash            NOBITS       00000000000001b8 000001b8 0000003c  0 A      3   0  8
661*7304104dSAndroid Build Coastguard Worker[ 3] .dynsym              NOBITS       00000000000001f8 000001b8 00000108 24 A      4   2  8
662*7304104dSAndroid Build Coastguard Worker[ 4] .dynstr              NOBITS       0000000000000300 000001b8 00000077  0 A      0   0  1
663*7304104dSAndroid Build Coastguard Worker[ 5] .gnu.version         NOBITS       0000000000000378 000001b8 00000016  2 A      3   0  2
664*7304104dSAndroid Build Coastguard Worker[ 6] .gnu.version_r       NOBITS       0000000000000390 000001b8 00000020  0 A      4   1  8
665*7304104dSAndroid Build Coastguard Worker[ 7] .rela.dyn            NOBITS       00000000000003b0 000001b8 00000060 24 A      3   0  8
666*7304104dSAndroid Build Coastguard Worker[ 8] .rela.plt            NOBITS       0000000000000410 000001b8 00000018 24 A      3  10  8
667*7304104dSAndroid Build Coastguard Worker[ 9] .init                NOBITS       0000000000000428 000001b8 00000018  0 AX     0   0  4
668*7304104dSAndroid Build Coastguard Worker[10] .plt                 NOBITS       0000000000000440 000001c0 00000020 16 AX     0   0 16
669*7304104dSAndroid Build Coastguard Worker[11] .text                NOBITS       0000000000000460 000001c0 00000128  0 AX     0   0 16
670*7304104dSAndroid Build Coastguard Worker[12] .fini                NOBITS       0000000000000588 000001c0 0000000e  0 AX     0   0  4
671*7304104dSAndroid Build Coastguard Worker[13] .eh_frame_hdr        NOBITS       0000000000000598 000001c0 00000024  0 A      0   0  4
672*7304104dSAndroid Build Coastguard Worker[14] .eh_frame            NOBITS       00000000000005c0 000001c0 00000084  0 A      0   0  8
673*7304104dSAndroid Build Coastguard Worker[15] .ctors               NOBITS       0000000000200648 000001c0 00000010  0 WA     0   0  8
674*7304104dSAndroid Build Coastguard Worker[16] .dtors               NOBITS       0000000000200658 000001c0 00000010  0 WA     0   0  8
675*7304104dSAndroid Build Coastguard Worker[17] .jcr                 NOBITS       0000000000200668 000001c0 00000008  0 WA     0   0  8
676*7304104dSAndroid Build Coastguard Worker[18] .data.rel.ro         NOBITS       0000000000200670 000001c0 00000008  0 WA     0   0  8
677*7304104dSAndroid Build Coastguard Worker[19] .dynamic             NOBITS       0000000000200678 000001c0 00000180 16 WA     4   0  8
678*7304104dSAndroid Build Coastguard Worker[20] .got                 NOBITS       00000000002007f8 000001c0 00000018  8 WA     0   0  8
679*7304104dSAndroid Build Coastguard Worker[21] .got.plt             NOBITS       0000000000200810 000001c0 00000020  8 WA     0   0  8
680*7304104dSAndroid Build Coastguard Worker[22] .bss                 NOBITS       0000000000200830 000001c0 00000010  0 WA     0   0  8
681*7304104dSAndroid Build Coastguard Worker[23] .comment             NOBITS       0000000000000000 000001c0 0000002c  1 MS     0   0  1
682*7304104dSAndroid Build Coastguard Worker[24] .shstrtab            STRTAB       0000000000000000 000001c0 000000e7  0        0   0  1
683*7304104dSAndroid Build Coastguard Worker[25] .symtab              SYMTAB       0000000000000000 000002a8 000004f8 24       26  44  8
684*7304104dSAndroid Build Coastguard Worker[26] .strtab              STRTAB       0000000000000000 000007a0 00000175  0        0   0  1
685*7304104dSAndroid Build Coastguard Worker
686*7304104dSAndroid Build Coastguard WorkerEOF
687*7304104dSAndroid Build Coastguard Worker
688*7304104dSAndroid Build Coastguard Workerexit 0
689