xref: /aosp_15_r20/external/elfutils/tests/run-readelf-s.sh (revision 7304104da70ce23c86437a01be71edd1a2d7f37e)
1*7304104dSAndroid Build Coastguard Worker#! /bin/sh
2*7304104dSAndroid Build Coastguard Worker# Copyright (C) 2013 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# Tests readelf -s and readelf --elf-section -s
21*7304104dSAndroid Build Coastguard Worker# See also run-dwflsyms.sh
22*7304104dSAndroid Build Coastguard Worker#
23*7304104dSAndroid Build Coastguard Worker# - bar.c
24*7304104dSAndroid Build Coastguard Worker#
25*7304104dSAndroid Build Coastguard Worker# static int b1 = 1;
26*7304104dSAndroid Build Coastguard Worker# int b2 = 1;
27*7304104dSAndroid Build Coastguard Worker#
28*7304104dSAndroid Build Coastguard Worker# static int
29*7304104dSAndroid Build Coastguard Worker# foo (int a)
30*7304104dSAndroid Build Coastguard Worker# {
31*7304104dSAndroid Build Coastguard Worker#   return a + b2;
32*7304104dSAndroid Build Coastguard Worker# }
33*7304104dSAndroid Build Coastguard Worker#
34*7304104dSAndroid Build Coastguard Worker# int bar (int b)
35*7304104dSAndroid Build Coastguard Worker# {
36*7304104dSAndroid Build Coastguard Worker#   return b - foo (b - b1);
37*7304104dSAndroid Build Coastguard Worker# }
38*7304104dSAndroid Build Coastguard Worker#
39*7304104dSAndroid Build Coastguard Worker# - foo.c
40*7304104dSAndroid Build Coastguard Worker#
41*7304104dSAndroid Build Coastguard Worker# extern int bar (int b);
42*7304104dSAndroid Build Coastguard Worker# extern int b2;
43*7304104dSAndroid Build Coastguard Worker#
44*7304104dSAndroid Build Coastguard Worker# int
45*7304104dSAndroid Build Coastguard Worker# main (int argc, char ** argv)
46*7304104dSAndroid Build Coastguard Worker# {
47*7304104dSAndroid Build Coastguard Worker#   return bar (argc + b2);
48*7304104dSAndroid Build Coastguard Worker# }
49*7304104dSAndroid Build Coastguard Worker#
50*7304104dSAndroid Build Coastguard Worker# gcc -pie -g -c foo.c
51*7304104dSAndroid Build Coastguard Worker# gcc -pie -g -c bar.c
52*7304104dSAndroid Build Coastguard Worker# gcc -pie -g -o baz foo.o bar.o
53*7304104dSAndroid Build Coastguard Worker#
54*7304104dSAndroid Build Coastguard Worker# - testfilebaztab (dynsym + symtab)
55*7304104dSAndroid Build Coastguard Worker# cp baz testfilebaztab
56*7304104dSAndroid Build Coastguard Worker#
57*7304104dSAndroid Build Coastguard Worker# - testfilebazdbg (dynsym + .debug file)
58*7304104dSAndroid Build Coastguard Worker# eu-strip --remove-comment -f testfilebazdbg.debug baz
59*7304104dSAndroid Build Coastguard Worker# cp baz testfilebazdbg
60*7304104dSAndroid Build Coastguard Worker#
61*7304104dSAndroid Build Coastguard Worker#-  testfilebazdyn (dynsym only)
62*7304104dSAndroid Build Coastguard Worker# objcopy --remove-section=.gnu_debuglink baz testfilebazdyn
63*7304104dSAndroid Build Coastguard Worker#
64*7304104dSAndroid Build Coastguard Worker# - testfilebazmdb (dynsym + gnu_debugdata + .debug)
65*7304104dSAndroid Build Coastguard Worker#   This is how rpmbuild does it:
66*7304104dSAndroid Build Coastguard Worker# nm -D baz --format=posix --defined-only | awk '{ print $1 }' | sort > dynsyms
67*7304104dSAndroid Build Coastguard Worker# nm baz.debug --format=posix --defined-only | awk '{ if ($2 == "T" || $2 == "t") print $1 }' | sort > funcsyms
68*7304104dSAndroid Build Coastguard Worker# comm -13 dynsyms funcsyms > keep_symbols
69*7304104dSAndroid Build Coastguard Worker# objcopy -S --remove-section .gdb_index --remove-section .comment --keep-symbols=keep_symbols baz.debug mini_debuginfo
70*7304104dSAndroid Build Coastguard Worker# rm -f mini_debuginfo.xz
71*7304104dSAndroid Build Coastguard Worker# xz mini_debuginfo
72*7304104dSAndroid Build Coastguard Worker# objcopy --add-section .gnu_debugdata=mini_debuginfo.xz baz
73*7304104dSAndroid Build Coastguard Worker# cp baz testfilebazmdb
74*7304104dSAndroid Build Coastguard Worker#
75*7304104dSAndroid Build Coastguard Worker# - testfilebazmin (dynsym + gnu_debugdata)
76*7304104dSAndroid Build Coastguard Worker# objcopy --remove-section=.gnu_debuglink baz testfilebazmin
77*7304104dSAndroid Build Coastguard Worker#
78*7304104dSAndroid Build Coastguard Worker#
79*7304104dSAndroid Build Coastguard Worker# Special auxiliary only, can happen with static binaries.
80*7304104dSAndroid Build Coastguard Worker# - start.c
81*7304104dSAndroid Build Coastguard Worker#
82*7304104dSAndroid Build Coastguard Worker# extern int main (int argc, char ** argv);
83*7304104dSAndroid Build Coastguard Worker# void _start (void) { for (;;) main (1, 0); }
84*7304104dSAndroid Build Coastguard Worker#
85*7304104dSAndroid Build Coastguard Worker# gcc -g -c start.c
86*7304104dSAndroid Build Coastguard Worker# gcc -static -nostdlib -o bas foo.o bar.o start.o
87*7304104dSAndroid Build Coastguard Worker#
88*7304104dSAndroid Build Coastguard Worker# eu-strip --remove-comment -f bas.debug bas
89*7304104dSAndroid Build Coastguard Worker# nm bas.debug --format=posix --defined-only | awk '{ if ($2 == "T" || $2 == "t") print $1 }' | sort > funcsyms
90*7304104dSAndroid Build Coastguard Worker# objcopy -S --remove-section .gdb_index --remove-section .comment --keep-symbols=funcsyms bas.debug mini_debuginfo
91*7304104dSAndroid Build Coastguard Worker# rm -f mini_debuginfo.xz
92*7304104dSAndroid Build Coastguard Worker# xz mini_debuginfo
93*7304104dSAndroid Build Coastguard Worker# objcopy --add-section .gnu_debugdata=mini_debuginfo.xz bas
94*7304104dSAndroid Build Coastguard Worker# rm bas.debug
95*7304104dSAndroid Build Coastguard Worker# mv bas testfilebasmin
96*7304104dSAndroid Build Coastguard Worker#
97*7304104dSAndroid Build Coastguard Worker#
98*7304104dSAndroid Build Coastguard Worker# Make sure that find_aux_sym doesn't corrupt relocations, avoiding a kernel
99*7304104dSAndroid Build Coastguard Worker# heuristic that forces ET_EXEC->ET_DYN.  NB: ld.gold doesn't seem to produce
100*7304104dSAndroid Build Coastguard Worker# the mismatched load addrs between the main file and the mini_debuginfo, so
101*7304104dSAndroid Build Coastguard Worker# this is forcing ld.bfd.
102*7304104dSAndroid Build Coastguard Worker#
103*7304104dSAndroid Build Coastguard Worker# gcc -g -o bax foo.c bar.c -fuse-ld=bfd
104*7304104dSAndroid Build Coastguard Worker# eu-strip --remove-comment -f bax.debug bax
105*7304104dSAndroid Build Coastguard Worker# nm -D bax --format=posix --defined-only | awk '{ print $1 }' | sort > dynsyms
106*7304104dSAndroid Build Coastguard Worker# nm bax.debug --format=posix --defined-only | awk '{ if ($2 == "T" || $2 == "t") print $1 }' | sort > funcsyms
107*7304104dSAndroid Build Coastguard Worker# comm -13 dynsyms funcsyms > keep_symbols
108*7304104dSAndroid Build Coastguard Worker# objcopy -S --remove-section .gdb_index --remove-section .comment --keep-symbols=keep_symbols bax.debug mini_debuginfo
109*7304104dSAndroid Build Coastguard Worker# rm -f mini_debuginfo.xz
110*7304104dSAndroid Build Coastguard Worker# xz mini_debuginfo
111*7304104dSAndroid Build Coastguard Worker# objcopy --add-section .gnu_debugdata=mini_debuginfo.xz bax
112*7304104dSAndroid Build Coastguard Worker# objcopy --remove-section=.gnu_debuglink bax testfilebaxmin
113*7304104dSAndroid Build Coastguard Worker
114*7304104dSAndroid Build Coastguard Worker
115*7304104dSAndroid Build Coastguard Workertestfiles testfilebaztab
116*7304104dSAndroid Build Coastguard Workertestfiles testfilebazdbg testfilebazdbg.debug
117*7304104dSAndroid Build Coastguard Workertestfiles testfilebazdyn
118*7304104dSAndroid Build Coastguard Workertestfiles testfilebazmdb
119*7304104dSAndroid Build Coastguard Workertestfiles testfilebazmin
120*7304104dSAndroid Build Coastguard Workertestfiles testfilebasmin
121*7304104dSAndroid Build Coastguard Workertestfiles testfilebaxmin
122*7304104dSAndroid Build Coastguard Worker
123*7304104dSAndroid Build Coastguard Workertempfiles testfile.dynsym.in testfile.symtab.in testfile.minsym.in
124*7304104dSAndroid Build Coastguard Worker
125*7304104dSAndroid Build Coastguard Workercat > testfile.dynsym.in <<\EOF
126*7304104dSAndroid Build Coastguard Worker
127*7304104dSAndroid Build Coastguard WorkerSymbol table [ 5] '.dynsym' contains 14 entries:
128*7304104dSAndroid Build Coastguard Worker 2 local symbols  String table: [ 6] '.dynstr'
129*7304104dSAndroid Build Coastguard Worker  Num:            Value   Size Type    Bind   Vis          Ndx Name
130*7304104dSAndroid Build Coastguard Worker    0: 0000000000000000      0 NOTYPE  LOCAL  DEFAULT    UNDEF
131*7304104dSAndroid Build Coastguard Worker    1: 0000000000000238      0 SECTION LOCAL  DEFAULT        1
132*7304104dSAndroid Build Coastguard Worker    2: 0000000000000000      0 NOTYPE  WEAK   DEFAULT    UNDEF _ITM_deregisterTMCloneTable
133*7304104dSAndroid Build Coastguard Worker    3: 0000000000000000      0 FUNC    GLOBAL DEFAULT    UNDEF __libc_start_main@GLIBC_2.2.5 (2)
134*7304104dSAndroid Build Coastguard Worker    4: 0000000000000000      0 NOTYPE  WEAK   DEFAULT    UNDEF __gmon_start__
135*7304104dSAndroid Build Coastguard Worker    5: 0000000000000000      0 NOTYPE  WEAK   DEFAULT    UNDEF _Jv_RegisterClasses
136*7304104dSAndroid Build Coastguard Worker    6: 0000000000000000      0 NOTYPE  WEAK   DEFAULT    UNDEF _ITM_registerTMCloneTable
137*7304104dSAndroid Build Coastguard Worker    7: 0000000000000000      0 FUNC    WEAK   DEFAULT    UNDEF __cxa_finalize@GLIBC_2.2.5 (2)
138*7304104dSAndroid Build Coastguard Worker    8: 000000000020103c      0 NOTYPE  GLOBAL DEFAULT       25 _edata
139*7304104dSAndroid Build Coastguard Worker    9: 0000000000201040      0 NOTYPE  GLOBAL DEFAULT       26 _end
140*7304104dSAndroid Build Coastguard Worker   10: 0000000000000860    137 FUNC    GLOBAL DEFAULT       13 __libc_csu_init
141*7304104dSAndroid Build Coastguard Worker   11: 000000000020103c      0 NOTYPE  GLOBAL DEFAULT       26 __bss_start
142*7304104dSAndroid Build Coastguard Worker   12: 00000000000007f0     35 FUNC    GLOBAL DEFAULT       13 main
143*7304104dSAndroid Build Coastguard Worker   13: 00000000000008f0      2 FUNC    GLOBAL DEFAULT       13 __libc_csu_fini
144*7304104dSAndroid Build Coastguard WorkerEOF
145*7304104dSAndroid Build Coastguard Worker
146*7304104dSAndroid Build Coastguard Workercat > testfile.symtab.in <<\EOF
147*7304104dSAndroid Build Coastguard Worker
148*7304104dSAndroid Build Coastguard WorkerSymbol table [34] '.symtab' contains 76 entries:
149*7304104dSAndroid Build Coastguard Worker 54 local symbols  String table: [35] '.strtab'
150*7304104dSAndroid Build Coastguard Worker  Num:            Value   Size Type    Bind   Vis          Ndx Name
151*7304104dSAndroid Build Coastguard Worker    0: 0000000000000000      0 NOTYPE  LOCAL  DEFAULT    UNDEF
152*7304104dSAndroid Build Coastguard Worker    1: 0000000000000238      0 SECTION LOCAL  DEFAULT        1
153*7304104dSAndroid Build Coastguard Worker    2: 0000000000000254      0 SECTION LOCAL  DEFAULT        2
154*7304104dSAndroid Build Coastguard Worker    3: 0000000000000274      0 SECTION LOCAL  DEFAULT        3
155*7304104dSAndroid Build Coastguard Worker    4: 0000000000000298      0 SECTION LOCAL  DEFAULT        4
156*7304104dSAndroid Build Coastguard Worker    5: 00000000000002d8      0 SECTION LOCAL  DEFAULT        5
157*7304104dSAndroid Build Coastguard Worker    6: 0000000000000428      0 SECTION LOCAL  DEFAULT        6
158*7304104dSAndroid Build Coastguard Worker    7: 00000000000004f2      0 SECTION LOCAL  DEFAULT        7
159*7304104dSAndroid Build Coastguard Worker    8: 0000000000000510      0 SECTION LOCAL  DEFAULT        8
160*7304104dSAndroid Build Coastguard Worker    9: 0000000000000530      0 SECTION LOCAL  DEFAULT        9
161*7304104dSAndroid Build Coastguard Worker   10: 0000000000000638      0 SECTION LOCAL  DEFAULT       10
162*7304104dSAndroid Build Coastguard Worker   11: 0000000000000680      0 SECTION LOCAL  DEFAULT       11
163*7304104dSAndroid Build Coastguard Worker   12: 00000000000006a0      0 SECTION LOCAL  DEFAULT       12
164*7304104dSAndroid Build Coastguard Worker   13: 00000000000006e0      0 SECTION LOCAL  DEFAULT       13
165*7304104dSAndroid Build Coastguard Worker   14: 00000000000008f4      0 SECTION LOCAL  DEFAULT       14
166*7304104dSAndroid Build Coastguard Worker   15: 0000000000000900      0 SECTION LOCAL  DEFAULT       15
167*7304104dSAndroid Build Coastguard Worker   16: 0000000000000904      0 SECTION LOCAL  DEFAULT       16
168*7304104dSAndroid Build Coastguard Worker   17: 0000000000000948      0 SECTION LOCAL  DEFAULT       17
169*7304104dSAndroid Build Coastguard Worker   18: 0000000000200dd0      0 SECTION LOCAL  DEFAULT       18
170*7304104dSAndroid Build Coastguard Worker   19: 0000000000200dd8      0 SECTION LOCAL  DEFAULT       19
171*7304104dSAndroid Build Coastguard Worker   20: 0000000000200de0      0 SECTION LOCAL  DEFAULT       20
172*7304104dSAndroid Build Coastguard Worker   21: 0000000000200de8      0 SECTION LOCAL  DEFAULT       21
173*7304104dSAndroid Build Coastguard Worker   22: 0000000000200df0      0 SECTION LOCAL  DEFAULT       22
174*7304104dSAndroid Build Coastguard Worker   23: 0000000000200fc0      0 SECTION LOCAL  DEFAULT       23
175*7304104dSAndroid Build Coastguard Worker   24: 0000000000201000      0 SECTION LOCAL  DEFAULT       24
176*7304104dSAndroid Build Coastguard Worker   25: 0000000000201030      0 SECTION LOCAL  DEFAULT       25
177*7304104dSAndroid Build Coastguard Worker   26: 000000000020103c      0 SECTION LOCAL  DEFAULT       26
178*7304104dSAndroid Build Coastguard Worker   27: 0000000000000000      0 SECTION LOCAL  DEFAULT       27
179*7304104dSAndroid Build Coastguard Worker   28: 0000000000000000      0 SECTION LOCAL  DEFAULT       28
180*7304104dSAndroid Build Coastguard Worker   29: 0000000000000000      0 SECTION LOCAL  DEFAULT       29
181*7304104dSAndroid Build Coastguard Worker   30: 0000000000000000      0 SECTION LOCAL  DEFAULT       30
182*7304104dSAndroid Build Coastguard Worker   31: 0000000000000000      0 SECTION LOCAL  DEFAULT       31
183*7304104dSAndroid Build Coastguard Worker   32: 0000000000000000      0 SECTION LOCAL  DEFAULT       32
184*7304104dSAndroid Build Coastguard Worker   33: 0000000000000000      0 FILE    LOCAL  DEFAULT      ABS crtstuff.c
185*7304104dSAndroid Build Coastguard Worker   34: 0000000000200de0      0 OBJECT  LOCAL  DEFAULT       20 __JCR_LIST__
186*7304104dSAndroid Build Coastguard Worker   35: 0000000000000710      0 FUNC    LOCAL  DEFAULT       13 deregister_tm_clones
187*7304104dSAndroid Build Coastguard Worker   36: 0000000000000740      0 FUNC    LOCAL  DEFAULT       13 register_tm_clones
188*7304104dSAndroid Build Coastguard Worker   37: 0000000000000780      0 FUNC    LOCAL  DEFAULT       13 __do_global_dtors_aux
189*7304104dSAndroid Build Coastguard Worker   38: 000000000020103c      1 OBJECT  LOCAL  DEFAULT       26 completed.6137
190*7304104dSAndroid Build Coastguard Worker   39: 0000000000200dd8      0 OBJECT  LOCAL  DEFAULT       19 __do_global_dtors_aux_fini_array_entry
191*7304104dSAndroid Build Coastguard Worker   40: 00000000000007c0      0 FUNC    LOCAL  DEFAULT       13 frame_dummy
192*7304104dSAndroid Build Coastguard Worker   41: 0000000000200dd0      0 OBJECT  LOCAL  DEFAULT       18 __frame_dummy_init_array_entry
193*7304104dSAndroid Build Coastguard Worker   42: 0000000000000000      0 FILE    LOCAL  DEFAULT      ABS foo.c
194*7304104dSAndroid Build Coastguard Worker   43: 0000000000000000      0 FILE    LOCAL  DEFAULT      ABS bar.c
195*7304104dSAndroid Build Coastguard Worker   44: 0000000000201034      4 OBJECT  LOCAL  DEFAULT       25 b1
196*7304104dSAndroid Build Coastguard Worker   45: 0000000000000814     20 FUNC    LOCAL  DEFAULT       13 foo
197*7304104dSAndroid Build Coastguard Worker   46: 0000000000000000      0 FILE    LOCAL  DEFAULT      ABS crtstuff.c
198*7304104dSAndroid Build Coastguard Worker   47: 0000000000000a58      0 OBJECT  LOCAL  DEFAULT       17 __FRAME_END__
199*7304104dSAndroid Build Coastguard Worker   48: 0000000000200de0      0 OBJECT  LOCAL  DEFAULT       20 __JCR_END__
200*7304104dSAndroid Build Coastguard Worker   49: 0000000000000000      0 FILE    LOCAL  DEFAULT      ABS
201*7304104dSAndroid Build Coastguard Worker   50: 0000000000200dd8      0 NOTYPE  LOCAL  DEFAULT       18 __init_array_end
202*7304104dSAndroid Build Coastguard Worker   51: 0000000000200df0      0 OBJECT  LOCAL  DEFAULT       22 _DYNAMIC
203*7304104dSAndroid Build Coastguard Worker   52: 0000000000200dd0      0 NOTYPE  LOCAL  DEFAULT       18 __init_array_start
204*7304104dSAndroid Build Coastguard Worker   53: 0000000000201000      0 OBJECT  LOCAL  DEFAULT       24 _GLOBAL_OFFSET_TABLE_
205*7304104dSAndroid Build Coastguard Worker   54: 00000000000008f0      2 FUNC    GLOBAL DEFAULT       13 __libc_csu_fini
206*7304104dSAndroid Build Coastguard Worker   55: 0000000000000000      0 NOTYPE  WEAK   DEFAULT    UNDEF _ITM_deregisterTMCloneTable
207*7304104dSAndroid Build Coastguard Worker   56: 0000000000201030      0 NOTYPE  WEAK   DEFAULT       25 data_start
208*7304104dSAndroid Build Coastguard Worker   57: 000000000020103c      0 NOTYPE  GLOBAL DEFAULT       25 _edata
209*7304104dSAndroid Build Coastguard Worker   58: 0000000000000828     44 FUNC    GLOBAL DEFAULT       13 bar
210*7304104dSAndroid Build Coastguard Worker   59: 00000000000008f4      0 FUNC    GLOBAL DEFAULT       14 _fini
211*7304104dSAndroid Build Coastguard Worker   60: 0000000000000000      0 FUNC    GLOBAL DEFAULT    UNDEF __libc_start_main@@GLIBC_2.2.5
212*7304104dSAndroid Build Coastguard Worker   61: 0000000000201030      0 NOTYPE  GLOBAL DEFAULT       25 __data_start
213*7304104dSAndroid Build Coastguard Worker   62: 0000000000000000      0 NOTYPE  WEAK   DEFAULT    UNDEF __gmon_start__
214*7304104dSAndroid Build Coastguard Worker   63: 0000000000200de8      0 OBJECT  GLOBAL HIDDEN        21 __dso_handle
215*7304104dSAndroid Build Coastguard Worker   64: 0000000000000900      4 OBJECT  GLOBAL DEFAULT       15 _IO_stdin_used
216*7304104dSAndroid Build Coastguard Worker   65: 0000000000201038      4 OBJECT  GLOBAL DEFAULT       25 b2
217*7304104dSAndroid Build Coastguard Worker   66: 0000000000000860    137 FUNC    GLOBAL DEFAULT       13 __libc_csu_init
218*7304104dSAndroid Build Coastguard Worker   67: 0000000000201040      0 NOTYPE  GLOBAL DEFAULT       26 _end
219*7304104dSAndroid Build Coastguard Worker   68: 00000000000006e0      0 FUNC    GLOBAL DEFAULT       13 _start
220*7304104dSAndroid Build Coastguard Worker   69: 000000000020103c      0 NOTYPE  GLOBAL DEFAULT       26 __bss_start
221*7304104dSAndroid Build Coastguard Worker   70: 00000000000007f0     35 FUNC    GLOBAL DEFAULT       13 main
222*7304104dSAndroid Build Coastguard Worker   71: 0000000000000000      0 NOTYPE  WEAK   DEFAULT    UNDEF _Jv_RegisterClasses
223*7304104dSAndroid Build Coastguard Worker   72: 0000000000201040      0 OBJECT  GLOBAL HIDDEN        25 __TMC_END__
224*7304104dSAndroid Build Coastguard Worker   73: 0000000000000000      0 NOTYPE  WEAK   DEFAULT    UNDEF _ITM_registerTMCloneTable
225*7304104dSAndroid Build Coastguard Worker   74: 0000000000000000      0 FUNC    WEAK   DEFAULT    UNDEF __cxa_finalize@@GLIBC_2.2.5
226*7304104dSAndroid Build Coastguard Worker   75: 0000000000000680      0 FUNC    GLOBAL DEFAULT       11 _init
227*7304104dSAndroid Build Coastguard WorkerEOF
228*7304104dSAndroid Build Coastguard Worker
229*7304104dSAndroid Build Coastguard Workercat > testfile.minsym.in <<\EOF
230*7304104dSAndroid Build Coastguard Worker
231*7304104dSAndroid Build Coastguard WorkerSymbol table [28] '.symtab' contains 40 entries:
232*7304104dSAndroid Build Coastguard Worker 36 local symbols  String table: [29] '.strtab'
233*7304104dSAndroid Build Coastguard Worker  Num:            Value   Size Type    Bind   Vis          Ndx Name
234*7304104dSAndroid Build Coastguard Worker    0: 0000000000000000      0 NOTYPE  LOCAL  DEFAULT    UNDEF
235*7304104dSAndroid Build Coastguard Worker    1: 0000000000000710      0 FUNC    LOCAL  DEFAULT       13 deregister_tm_clones
236*7304104dSAndroid Build Coastguard Worker    2: 0000000000000740      0 FUNC    LOCAL  DEFAULT       13 register_tm_clones
237*7304104dSAndroid Build Coastguard Worker    3: 0000000000000780      0 FUNC    LOCAL  DEFAULT       13 __do_global_dtors_aux
238*7304104dSAndroid Build Coastguard Worker    4: 0000000000200dd8      0 OBJECT  LOCAL  DEFAULT       19 __do_global_dtors_aux_fini_array_entry
239*7304104dSAndroid Build Coastguard Worker    5: 00000000000007c0      0 FUNC    LOCAL  DEFAULT       13 frame_dummy
240*7304104dSAndroid Build Coastguard Worker    6: 0000000000200dd0      0 OBJECT  LOCAL  DEFAULT       18 __frame_dummy_init_array_entry
241*7304104dSAndroid Build Coastguard Worker    7: 0000000000000814     20 FUNC    LOCAL  DEFAULT       13 foo
242*7304104dSAndroid Build Coastguard Worker    8: 0000000000200dd8      0 NOTYPE  LOCAL  DEFAULT       18 __init_array_end
243*7304104dSAndroid Build Coastguard Worker    9: 0000000000200dd0      0 NOTYPE  LOCAL  DEFAULT       18 __init_array_start
244*7304104dSAndroid Build Coastguard Worker   10: 0000000000000238      0 SECTION LOCAL  DEFAULT        1
245*7304104dSAndroid Build Coastguard Worker   11: 0000000000000254      0 SECTION LOCAL  DEFAULT        2
246*7304104dSAndroid Build Coastguard Worker   12: 0000000000000274      0 SECTION LOCAL  DEFAULT        3
247*7304104dSAndroid Build Coastguard Worker   13: 0000000000000298      0 SECTION LOCAL  DEFAULT        4
248*7304104dSAndroid Build Coastguard Worker   14: 00000000000002d8      0 SECTION LOCAL  DEFAULT        5
249*7304104dSAndroid Build Coastguard Worker   15: 0000000000000428      0 SECTION LOCAL  DEFAULT        6
250*7304104dSAndroid Build Coastguard Worker   16: 00000000000004f2      0 SECTION LOCAL  DEFAULT        7
251*7304104dSAndroid Build Coastguard Worker   17: 0000000000000510      0 SECTION LOCAL  DEFAULT        8
252*7304104dSAndroid Build Coastguard Worker   18: 0000000000000530      0 SECTION LOCAL  DEFAULT        9
253*7304104dSAndroid Build Coastguard Worker   19: 0000000000000638      0 SECTION LOCAL  DEFAULT       10
254*7304104dSAndroid Build Coastguard Worker   20: 0000000000000680      0 SECTION LOCAL  DEFAULT       11
255*7304104dSAndroid Build Coastguard Worker   21: 00000000000006a0      0 SECTION LOCAL  DEFAULT       12
256*7304104dSAndroid Build Coastguard Worker   22: 00000000000006e0      0 SECTION LOCAL  DEFAULT       13
257*7304104dSAndroid Build Coastguard Worker   23: 00000000000008f4      0 SECTION LOCAL  DEFAULT       14
258*7304104dSAndroid Build Coastguard Worker   24: 0000000000000900      0 SECTION LOCAL  DEFAULT       15
259*7304104dSAndroid Build Coastguard Worker   25: 0000000000000904      0 SECTION LOCAL  DEFAULT       16
260*7304104dSAndroid Build Coastguard Worker   26: 0000000000000948      0 SECTION LOCAL  DEFAULT       17
261*7304104dSAndroid Build Coastguard Worker   27: 0000000000200dd0      0 SECTION LOCAL  DEFAULT       18
262*7304104dSAndroid Build Coastguard Worker   28: 0000000000200dd8      0 SECTION LOCAL  DEFAULT       19
263*7304104dSAndroid Build Coastguard Worker   29: 0000000000200de0      0 SECTION LOCAL  DEFAULT       20
264*7304104dSAndroid Build Coastguard Worker   30: 0000000000200de8      0 SECTION LOCAL  DEFAULT       21
265*7304104dSAndroid Build Coastguard Worker   31: 0000000000200df0      0 SECTION LOCAL  DEFAULT       22
266*7304104dSAndroid Build Coastguard Worker   32: 0000000000200fc0      0 SECTION LOCAL  DEFAULT       23
267*7304104dSAndroid Build Coastguard Worker   33: 0000000000201000      0 SECTION LOCAL  DEFAULT       24
268*7304104dSAndroid Build Coastguard Worker   34: 0000000000201030      0 SECTION LOCAL  DEFAULT       25
269*7304104dSAndroid Build Coastguard Worker   35: 000000000020103c      0 SECTION LOCAL  DEFAULT       26
270*7304104dSAndroid Build Coastguard Worker   36: 0000000000000828     44 FUNC    GLOBAL DEFAULT       13 bar
271*7304104dSAndroid Build Coastguard Worker   37: 00000000000008f4      0 FUNC    GLOBAL DEFAULT       14 _fini
272*7304104dSAndroid Build Coastguard Worker   38: 00000000000006e0      0 FUNC    GLOBAL DEFAULT       13 _start
273*7304104dSAndroid Build Coastguard Worker   39: 0000000000000680      0 FUNC    GLOBAL DEFAULT       11 _init
274*7304104dSAndroid Build Coastguard WorkerEOF
275*7304104dSAndroid Build Coastguard Worker
276*7304104dSAndroid Build Coastguard Worker# Display all symbol tables.
277*7304104dSAndroid Build Coastguard Workercat testfile.dynsym.in testfile.symtab.in \
278*7304104dSAndroid Build Coastguard Worker  | testrun_compare ${abs_top_builddir}/src/readelf -s testfilebaztab
279*7304104dSAndroid Build Coastguard Worker
280*7304104dSAndroid Build Coastguard Workercat testfile.dynsym.in testfile.symtab.in \
281*7304104dSAndroid Build Coastguard Worker  | testrun_compare ${abs_top_builddir}/src/readelf --syms testfilebaztab
282*7304104dSAndroid Build Coastguard Worker
283*7304104dSAndroid Build Coastguard Worker# Display just .dynsym
284*7304104dSAndroid Build Coastguard Workercat testfile.dynsym.in \
285*7304104dSAndroid Build Coastguard Worker  | testrun_compare ${abs_top_builddir}/src/readelf \
286*7304104dSAndroid Build Coastguard Worker    --symbols=.dynsym testfilebaztab
287*7304104dSAndroid Build Coastguard Workercat testfile.dynsym.in \
288*7304104dSAndroid Build Coastguard Worker  | testrun_compare ${abs_top_builddir}/src/readelf \
289*7304104dSAndroid Build Coastguard Worker    --syms=.dynsym testfilebaztab
290*7304104dSAndroid Build Coastguard Workercat testfile.dynsym.in \
291*7304104dSAndroid Build Coastguard Worker  | testrun_compare ${abs_top_builddir}/src/readelf \
292*7304104dSAndroid Build Coastguard Worker    --dyn-syms testfilebaztab
293*7304104dSAndroid Build Coastguard Worker
294*7304104dSAndroid Build Coastguard Worker# Display just .symtab
295*7304104dSAndroid Build Coastguard Workercat testfile.symtab.in \
296*7304104dSAndroid Build Coastguard Worker  | testrun_compare ${abs_top_builddir}/src/readelf \
297*7304104dSAndroid Build Coastguard Worker    --symbols=.symtab testfilebaztab
298*7304104dSAndroid Build Coastguard Worker
299*7304104dSAndroid Build Coastguard Workercat testfile.dynsym.in \
300*7304104dSAndroid Build Coastguard Worker  | testrun_compare ${abs_top_builddir}/src/readelf -s testfilebazdbg
301*7304104dSAndroid Build Coastguard Worker
302*7304104dSAndroid Build Coastguard Workercat testfile.symtab.in \
303*7304104dSAndroid Build Coastguard Worker  | testrun_compare ${abs_top_builddir}/src/readelf -s testfilebazdbg.debug
304*7304104dSAndroid Build Coastguard Worker
305*7304104dSAndroid Build Coastguard Workercat testfile.dynsym.in \
306*7304104dSAndroid Build Coastguard Worker  | testrun_compare ${abs_top_builddir}/src/readelf -s testfilebazdyn
307*7304104dSAndroid Build Coastguard Worker
308*7304104dSAndroid Build Coastguard Workercat testfile.dynsym.in \
309*7304104dSAndroid Build Coastguard Worker  | testrun_compare ${abs_top_builddir}/src/readelf -s testfilebazmdb
310*7304104dSAndroid Build Coastguard Worker
311*7304104dSAndroid Build Coastguard Workercat testfile.minsym.in \
312*7304104dSAndroid Build Coastguard Worker  | testrun_compare ${abs_top_builddir}/src/readelf --elf-section -s testfilebazmdb
313*7304104dSAndroid Build Coastguard Worker
314*7304104dSAndroid Build Coastguard Workercat testfile.dynsym.in \
315*7304104dSAndroid Build Coastguard Worker  | testrun_compare ${abs_top_builddir}/src/readelf -s testfilebazmin
316*7304104dSAndroid Build Coastguard Worker
317*7304104dSAndroid Build Coastguard Workercat testfile.minsym.in \
318*7304104dSAndroid Build Coastguard Worker  | testrun_compare ${abs_top_builddir}/src/readelf --elf-section -s testfilebazmin
319*7304104dSAndroid Build Coastguard Worker
320*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/readelf -s testfilebasmin <<EOF
321*7304104dSAndroid Build Coastguard WorkerEOF
322*7304104dSAndroid Build Coastguard Worker
323*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/readelf --elf-section -s testfilebasmin <<\EOF
324*7304104dSAndroid Build Coastguard Worker
325*7304104dSAndroid Build Coastguard WorkerSymbol table [ 6] '.symtab' contains 9 entries:
326*7304104dSAndroid Build Coastguard Worker 6 local symbols  String table: [ 7] '.strtab'
327*7304104dSAndroid Build Coastguard Worker  Num:            Value   Size Type    Bind   Vis          Ndx Name
328*7304104dSAndroid Build Coastguard Worker    0: 0000000000000000      0 NOTYPE  LOCAL  DEFAULT    UNDEF
329*7304104dSAndroid Build Coastguard Worker    1: 0000000000400168     18 FUNC    LOCAL  DEFAULT        2 foo
330*7304104dSAndroid Build Coastguard Worker    2: 0000000000400120      0 SECTION LOCAL  DEFAULT        1
331*7304104dSAndroid Build Coastguard Worker    3: 0000000000400144      0 SECTION LOCAL  DEFAULT        2
332*7304104dSAndroid Build Coastguard Worker    4: 00000000004001c0      0 SECTION LOCAL  DEFAULT        3
333*7304104dSAndroid Build Coastguard Worker    5: 0000000000600258      0 SECTION LOCAL  DEFAULT        4
334*7304104dSAndroid Build Coastguard Worker    6: 00000000004001a8     21 FUNC    GLOBAL DEFAULT        2 _start
335*7304104dSAndroid Build Coastguard Worker    7: 0000000000400144     33 FUNC    GLOBAL DEFAULT        2 main
336*7304104dSAndroid Build Coastguard Worker    8: 000000000040017a     44 FUNC    GLOBAL DEFAULT        2 bar
337*7304104dSAndroid Build Coastguard WorkerEOF
338*7304104dSAndroid Build Coastguard Worker
339*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/readelf -s testfilebaxmin <<EOF
340*7304104dSAndroid Build Coastguard Worker
341*7304104dSAndroid Build Coastguard WorkerSymbol table [ 5] '.dynsym' contains 3 entries:
342*7304104dSAndroid Build Coastguard Worker 1 local symbol  String table: [ 6] '.dynstr'
343*7304104dSAndroid Build Coastguard Worker  Num:            Value   Size Type    Bind   Vis          Ndx Name
344*7304104dSAndroid Build Coastguard Worker    0: 0000000000000000      0 NOTYPE  LOCAL  DEFAULT    UNDEF 
345*7304104dSAndroid Build Coastguard Worker    1: 0000000000000000      0 FUNC    GLOBAL DEFAULT    UNDEF __libc_start_main@GLIBC_2.2.5 (2)
346*7304104dSAndroid Build Coastguard Worker    2: 0000000000000000      0 NOTYPE  WEAK   DEFAULT    UNDEF __gmon_start__
347*7304104dSAndroid Build Coastguard WorkerEOF
348*7304104dSAndroid Build Coastguard Worker
349*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/readelf --elf-section -s testfilebaxmin <<\EOF
350*7304104dSAndroid Build Coastguard Worker
351*7304104dSAndroid Build Coastguard WorkerSymbol table [27] '.symtab' contains 42 entries:
352*7304104dSAndroid Build Coastguard Worker 35 local symbols  String table: [28] '.strtab'
353*7304104dSAndroid Build Coastguard Worker  Num:            Value   Size Type    Bind   Vis          Ndx Name
354*7304104dSAndroid Build Coastguard Worker    0: 0000000000000000      0 NOTYPE  LOCAL  DEFAULT    UNDEF
355*7304104dSAndroid Build Coastguard Worker    1: 0000000000400430      0 FUNC    LOCAL  DEFAULT       13 deregister_tm_clones
356*7304104dSAndroid Build Coastguard Worker    2: 0000000000400460      0 FUNC    LOCAL  DEFAULT       13 register_tm_clones
357*7304104dSAndroid Build Coastguard Worker    3: 00000000004004a0      0 FUNC    LOCAL  DEFAULT       13 __do_global_dtors_aux
358*7304104dSAndroid Build Coastguard Worker    4: 0000000000600e18      0 OBJECT  LOCAL  DEFAULT       19 __do_global_dtors_aux_fini_array_entry
359*7304104dSAndroid Build Coastguard Worker    5: 00000000004004c0      0 FUNC    LOCAL  DEFAULT       13 frame_dummy
360*7304104dSAndroid Build Coastguard Worker    6: 0000000000600e10      0 OBJECT  LOCAL  DEFAULT       18 __frame_dummy_init_array_entry
361*7304104dSAndroid Build Coastguard Worker    7: 00000000004004f0     20 FUNC    LOCAL  DEFAULT       13 foo
362*7304104dSAndroid Build Coastguard Worker    8: 0000000000600e18      0 NOTYPE  LOCAL  DEFAULT       18 __init_array_end
363*7304104dSAndroid Build Coastguard Worker    9: 0000000000600e10      0 NOTYPE  LOCAL  DEFAULT       18 __init_array_start
364*7304104dSAndroid Build Coastguard Worker   10: 0000000000400238      0 SECTION LOCAL  DEFAULT        1
365*7304104dSAndroid Build Coastguard Worker   11: 0000000000400254      0 SECTION LOCAL  DEFAULT        2
366*7304104dSAndroid Build Coastguard Worker   12: 0000000000400274      0 SECTION LOCAL  DEFAULT        3
367*7304104dSAndroid Build Coastguard Worker   13: 0000000000400298      0 SECTION LOCAL  DEFAULT        4
368*7304104dSAndroid Build Coastguard Worker   14: 00000000004002b8      0 SECTION LOCAL  DEFAULT        5
369*7304104dSAndroid Build Coastguard Worker   15: 0000000000400300      0 SECTION LOCAL  DEFAULT        6
370*7304104dSAndroid Build Coastguard Worker   16: 0000000000400338      0 SECTION LOCAL  DEFAULT        7
371*7304104dSAndroid Build Coastguard Worker   17: 0000000000400340      0 SECTION LOCAL  DEFAULT        8
372*7304104dSAndroid Build Coastguard Worker   18: 0000000000400360      0 SECTION LOCAL  DEFAULT        9
373*7304104dSAndroid Build Coastguard Worker   19: 0000000000400378      0 SECTION LOCAL  DEFAULT       10
374*7304104dSAndroid Build Coastguard Worker   20: 00000000004003a8      0 SECTION LOCAL  DEFAULT       11
375*7304104dSAndroid Build Coastguard Worker   21: 00000000004003d0      0 SECTION LOCAL  DEFAULT       12
376*7304104dSAndroid Build Coastguard Worker   22: 0000000000400400      0 SECTION LOCAL  DEFAULT       13
377*7304104dSAndroid Build Coastguard Worker   23: 00000000004005c4      0 SECTION LOCAL  DEFAULT       14
378*7304104dSAndroid Build Coastguard Worker   24: 00000000004005d0      0 SECTION LOCAL  DEFAULT       15
379*7304104dSAndroid Build Coastguard Worker   25: 00000000004005e0      0 SECTION LOCAL  DEFAULT       16
380*7304104dSAndroid Build Coastguard Worker   26: 0000000000400628      0 SECTION LOCAL  DEFAULT       17
381*7304104dSAndroid Build Coastguard Worker   27: 0000000000600e10      0 SECTION LOCAL  DEFAULT       18
382*7304104dSAndroid Build Coastguard Worker   28: 0000000000600e18      0 SECTION LOCAL  DEFAULT       19
383*7304104dSAndroid Build Coastguard Worker   29: 0000000000600e20      0 SECTION LOCAL  DEFAULT       20
384*7304104dSAndroid Build Coastguard Worker   30: 0000000000600e28      0 SECTION LOCAL  DEFAULT       21
385*7304104dSAndroid Build Coastguard Worker   31: 0000000000600ff8      0 SECTION LOCAL  DEFAULT       22
386*7304104dSAndroid Build Coastguard Worker   32: 0000000000601000      0 SECTION LOCAL  DEFAULT       23
387*7304104dSAndroid Build Coastguard Worker   33: 0000000000601028      0 SECTION LOCAL  DEFAULT       24
388*7304104dSAndroid Build Coastguard Worker   34: 0000000000601034      0 SECTION LOCAL  DEFAULT       25
389*7304104dSAndroid Build Coastguard Worker   35: 00000000004005c0      2 FUNC    GLOBAL DEFAULT       13 __libc_csu_fini
390*7304104dSAndroid Build Coastguard Worker   36: 0000000000400504     40 FUNC    GLOBAL DEFAULT       13 bar
391*7304104dSAndroid Build Coastguard Worker   37: 00000000004005c4      0 FUNC    GLOBAL DEFAULT       14 _fini
392*7304104dSAndroid Build Coastguard Worker   38: 0000000000400550    101 FUNC    GLOBAL DEFAULT       13 __libc_csu_init
393*7304104dSAndroid Build Coastguard Worker   39: 0000000000400400      0 FUNC    GLOBAL DEFAULT       13 _start
394*7304104dSAndroid Build Coastguard Worker   40: 000000000040052c     35 FUNC    GLOBAL DEFAULT       13 main
395*7304104dSAndroid Build Coastguard Worker   41: 00000000004003a8      0 FUNC    GLOBAL DEFAULT       11 _init
396*7304104dSAndroid Build Coastguard WorkerEOF
397*7304104dSAndroid Build Coastguard Worker
398*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/readelf --elf-section -sW testfilebaxmin 2>&1 \
399*7304104dSAndroid Build Coastguard Worker  | grep "WARNING: cannot find section: 'W'" >/dev/null || exit 2
400*7304104dSAndroid Build Coastguard Worker
401*7304104dSAndroid Build Coastguard Workerexit 0
402