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