Imported Upstream version 0.160
[platform/upstream/elfutils.git] / tests / run-dwflsyms.sh
1 #! /bin/sh
2 # Copyright (C) 2013 Red Hat, Inc.
3 # This file is part of elfutils.
4 #
5 # This file is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 3 of the License, or
8 # (at your option) any later version.
9 #
10 # elfutils is distributed in the hope that it will be useful, but
11 # WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 # GNU General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License
16 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
17
18 . $srcdir/test-subr.sh
19
20 # Tests dwfl_module_{addrsym,getsym,relocate_address}
21 # See run-readelf-s.sh for how to generate test binaries.
22 # In addition, *_pl files were created from their base file
23 # with prelink -N, and *_plr with prelink -r 0x4200000000.
24
25 testfiles testfilebaztab
26 testfiles testfilebazdbg testfilebazdbg.debug
27 testfiles testfilebazdbg_pl
28 testfiles testfilebazdbg_plr
29 testfiles testfilebazdyn
30 testfiles testfilebazmdb
31 testfiles testfilebazmin
32 testfiles testfilebazmin_pl
33 testfiles testfilebazmin_plr
34 testfiles testfilebasmin
35 testfiles testfilebaxmin
36
37 tempfiles testfile.dynsym.in testfile.symtab.in testfile.minsym.in dwflsyms.out
38 tempfiles testfile.symtab_pl.in testfile.minsym_pl.in 
39
40 cat > testfile.symtab.in <<\EOF
41    0: NOTYPE    LOCAL    (0) 0
42    1: SECTION   LOCAL    (0) 0x238
43    2: SECTION   LOCAL    (0) 0x254
44    3: SECTION   LOCAL    (0) 0x274
45    4: SECTION   LOCAL    (0) 0x298
46    5: SECTION   LOCAL    (0) 0x2d8
47    6: SECTION   LOCAL    (0) 0x428
48    7: SECTION   LOCAL    (0) 0x4f2
49    8: SECTION   LOCAL    (0) 0x510
50    9: SECTION   LOCAL    (0) 0x530
51   10: SECTION   LOCAL    (0) 0x638
52   11: SECTION   LOCAL    (0) 0x680
53   12: SECTION   LOCAL    (0) 0x6a0
54   13: SECTION   LOCAL    (0) 0x6e0
55   14: SECTION   LOCAL    (0) 0x8f4
56   15: SECTION   LOCAL    (0) 0x900
57   16: SECTION   LOCAL    (0) 0x904
58   17: SECTION   LOCAL    (0) 0x948
59   18: SECTION   LOCAL    (0) 0x200dd0
60   19: SECTION   LOCAL    (0) 0x200dd8
61   20: SECTION   LOCAL    (0) 0x200de0
62   21: SECTION   LOCAL    (0) 0x200de8
63   22: SECTION   LOCAL    (0) 0x200df0
64   23: SECTION   LOCAL    (0) 0x200fc0
65   24: SECTION   LOCAL    (0) 0x201000
66   25: SECTION   LOCAL    (0) 0x201030
67   26: SECTION   LOCAL    (0) 0x20103c
68   27: SECTION   LOCAL    (0) 0
69   28: SECTION   LOCAL    (0) 0
70   29: SECTION   LOCAL    (0) 0
71   30: SECTION   LOCAL    (0) 0
72   31: SECTION   LOCAL    (0) 0
73   32: SECTION   LOCAL    (0) 0
74   33: FILE      LOCAL   crtstuff.c (0) 0
75   34: OBJECT    LOCAL   __JCR_LIST__ (0) 0x200de0
76   35: FUNC      LOCAL   deregister_tm_clones (0) 0x710, rel: 0x710 (.text)
77   36: FUNC      LOCAL   register_tm_clones (0) 0x740, rel: 0x740 (.text)
78   37: FUNC      LOCAL   __do_global_dtors_aux (0) 0x780, rel: 0x780 (.text)
79   38: OBJECT    LOCAL   completed.6137 (1) 0x20103c
80   39: OBJECT    LOCAL   __do_global_dtors_aux_fini_array_entry (0) 0x200dd8
81   40: FUNC      LOCAL   frame_dummy (0) 0x7c0, rel: 0x7c0 (.text)
82   41: OBJECT    LOCAL   __frame_dummy_init_array_entry (0) 0x200dd0
83   42: FILE      LOCAL   foo.c (0) 0
84   43: FILE      LOCAL   bar.c (0) 0
85   44: OBJECT    LOCAL   b1 (4) 0x201034
86   45: FUNC      LOCAL   foo (20) 0x814, rel: 0x814 (.text)
87   46: FILE      LOCAL   crtstuff.c (0) 0
88   47: OBJECT    LOCAL   __FRAME_END__ (0) 0xa58
89   48: OBJECT    LOCAL   __JCR_END__ (0) 0x200de0
90   49: FILE      LOCAL    (0) 0
91   50: NOTYPE    LOCAL   __init_array_end (0) 0x200dd8
92   51: OBJECT    LOCAL   _DYNAMIC (0) 0x200df0
93   52: NOTYPE    LOCAL   __init_array_start (0) 0x200dd0
94   53: OBJECT    LOCAL   _GLOBAL_OFFSET_TABLE_ (0) 0x201000
95   54: FUNC      GLOBAL  __libc_csu_fini (2) 0x8f0, rel: 0x8f0 (.text)
96   55: NOTYPE    WEAK    _ITM_deregisterTMCloneTable (0) 0
97   56: NOTYPE    WEAK    data_start (0) 0x201030
98   57: NOTYPE    GLOBAL  _edata (0) 0x20103c
99   58: FUNC      GLOBAL  bar (44) 0x828, rel: 0x828 (.text)
100   59: FUNC      GLOBAL  _fini (0) 0x8f4, rel: 0x8f4 (.fini)
101   60: FUNC      GLOBAL  __libc_start_main@@GLIBC_2.2.5 (0) 0
102   61: NOTYPE    GLOBAL  __data_start (0) 0x201030
103   62: NOTYPE    WEAK    __gmon_start__ (0) 0
104   63: OBJECT    GLOBAL  __dso_handle (0) 0x200de8
105   64: OBJECT    GLOBAL  _IO_stdin_used (4) 0x900
106   65: OBJECT    GLOBAL  b2 (4) 0x201038
107   66: FUNC      GLOBAL  __libc_csu_init (137) 0x860, rel: 0x860 (.text)
108   67: NOTYPE    GLOBAL  _end (0) 0x201040
109   68: FUNC      GLOBAL  _start (0) 0x6e0, rel: 0x6e0 (.text)
110   69: NOTYPE    GLOBAL  __bss_start (0) 0x20103c
111   70: FUNC      GLOBAL  main (35) 0x7f0, rel: 0x7f0 (.text)
112   71: NOTYPE    WEAK    _Jv_RegisterClasses (0) 0
113   72: OBJECT    GLOBAL  __TMC_END__ (0) 0x201040
114   73: NOTYPE    WEAK    _ITM_registerTMCloneTable (0) 0
115   74: FUNC      WEAK    __cxa_finalize@@GLIBC_2.2.5 (0) 0
116   75: FUNC      GLOBAL  _init (0) 0x680, rel: 0x680 (.init)
117 EOF
118
119 cat > testfile.symtab_pl.in <<\EOF
120    0: NOTYPE    LOCAL    (0) 0
121    1: SECTION   LOCAL    (0) 0x3000000238
122    2: SECTION   LOCAL    (0) 0x3000000254
123    3: SECTION   LOCAL    (0) 0x3000000274
124    4: SECTION   LOCAL    (0) 0x3000000298
125    5: SECTION   LOCAL    (0) 0x30000002d8
126    6: SECTION   LOCAL    (0) 0x3000000428
127    7: SECTION   LOCAL    (0) 0x30000004f2
128    8: SECTION   LOCAL    (0) 0x3000000510
129    9: SECTION   LOCAL    (0) 0x3000000530
130   10: SECTION   LOCAL    (0) 0x3000000638
131   11: SECTION   LOCAL    (0) 0x3000000680
132   12: SECTION   LOCAL    (0) 0x30000006a0
133   13: SECTION   LOCAL    (0) 0x30000006e0
134   14: SECTION   LOCAL    (0) 0x30000008f4
135   15: SECTION   LOCAL    (0) 0x3000000900
136   16: SECTION   LOCAL    (0) 0x3000000904
137   17: SECTION   LOCAL    (0) 0x3000000948
138   18: SECTION   LOCAL    (0) 0x3000200dd0
139   19: SECTION   LOCAL    (0) 0x3000200dd8
140   20: SECTION   LOCAL    (0) 0x3000200de0
141   21: SECTION   LOCAL    (0) 0x3000200de8
142   22: SECTION   LOCAL    (0) 0x3000200df0
143   23: SECTION   LOCAL    (0) 0x3000200fc0
144   24: SECTION   LOCAL    (0) 0x3000201000
145   25: SECTION   LOCAL    (0) 0x3000201030
146   26: SECTION   LOCAL    (0) 0x300020103c
147   27: SECTION   LOCAL    (0) 0
148   28: SECTION   LOCAL    (0) 0
149   29: SECTION   LOCAL    (0) 0
150   30: SECTION   LOCAL    (0) 0
151   31: SECTION   LOCAL    (0) 0
152   32: SECTION   LOCAL    (0) 0
153   33: FILE      LOCAL   crtstuff.c (0) 0
154   34: OBJECT    LOCAL   __JCR_LIST__ (0) 0x3000200de0
155   35: FUNC      LOCAL   deregister_tm_clones (0) 0x3000000710, rel: 0x710 (.text)
156   36: FUNC      LOCAL   register_tm_clones (0) 0x3000000740, rel: 0x740 (.text)
157   37: FUNC      LOCAL   __do_global_dtors_aux (0) 0x3000000780, rel: 0x780 (.text)
158   38: OBJECT    LOCAL   completed.6137 (1) 0x300020103c
159   39: OBJECT    LOCAL   __do_global_dtors_aux_fini_array_entry (0) 0x3000200dd8
160   40: FUNC      LOCAL   frame_dummy (0) 0x30000007c0, rel: 0x7c0 (.text)
161   41: OBJECT    LOCAL   __frame_dummy_init_array_entry (0) 0x3000200dd0
162   42: FILE      LOCAL   foo.c (0) 0
163   43: FILE      LOCAL   bar.c (0) 0
164   44: OBJECT    LOCAL   b1 (4) 0x3000201034
165   45: FUNC      LOCAL   foo (20) 0x3000000814, rel: 0x814 (.text)
166   46: FILE      LOCAL   crtstuff.c (0) 0
167   47: OBJECT    LOCAL   __FRAME_END__ (0) 0x3000000a58
168   48: OBJECT    LOCAL   __JCR_END__ (0) 0x3000200de0
169   49: FILE      LOCAL    (0) 0
170   50: NOTYPE    LOCAL   __init_array_end (0) 0x3000200dd8
171   51: OBJECT    LOCAL   _DYNAMIC (0) 0x3000200df0
172   52: NOTYPE    LOCAL   __init_array_start (0) 0x3000200dd0
173   53: OBJECT    LOCAL   _GLOBAL_OFFSET_TABLE_ (0) 0x3000201000
174   54: FUNC      GLOBAL  __libc_csu_fini (2) 0x30000008f0, rel: 0x8f0 (.text)
175   55: NOTYPE    WEAK    _ITM_deregisterTMCloneTable (0) 0
176   56: NOTYPE    WEAK    data_start (0) 0x3000201030
177   57: NOTYPE    GLOBAL  _edata (0) 0x300020103c
178   58: FUNC      GLOBAL  bar (44) 0x3000000828, rel: 0x828 (.text)
179   59: FUNC      GLOBAL  _fini (0) 0x30000008f4, rel: 0x8f4 (.fini)
180   60: FUNC      GLOBAL  __libc_start_main@@GLIBC_2.2.5 (0) 0
181   61: NOTYPE    GLOBAL  __data_start (0) 0x3000201030
182   62: NOTYPE    WEAK    __gmon_start__ (0) 0
183   63: OBJECT    GLOBAL  __dso_handle (0) 0x3000200de8
184   64: OBJECT    GLOBAL  _IO_stdin_used (4) 0x3000000900
185   65: OBJECT    GLOBAL  b2 (4) 0x3000201038
186   66: FUNC      GLOBAL  __libc_csu_init (137) 0x3000000860, rel: 0x860 (.text)
187   67: NOTYPE    GLOBAL  _end (0) 0x3000201040
188   68: FUNC      GLOBAL  _start (0) 0x30000006e0, rel: 0x6e0 (.text)
189   69: NOTYPE    GLOBAL  __bss_start (0) 0x300020103c
190   70: FUNC      GLOBAL  main (35) 0x30000007f0, rel: 0x7f0 (.text)
191   71: NOTYPE    WEAK    _Jv_RegisterClasses (0) 0
192   72: OBJECT    GLOBAL  __TMC_END__ (0) 0x3000201040
193   73: NOTYPE    WEAK    _ITM_registerTMCloneTable (0) 0
194   74: FUNC      WEAK    __cxa_finalize@@GLIBC_2.2.5 (0) 0
195   75: FUNC      GLOBAL  _init (0) 0x3000000680, rel: 0x680 (.init)
196 EOF
197
198 cat > testfile.dynsym.in <<\EOF
199    0: NOTYPE    LOCAL    (0) 0
200    1: SECTION   LOCAL    (0) 0x238
201    2: NOTYPE    WEAK    _ITM_deregisterTMCloneTable (0) 0
202    3: FUNC      GLOBAL  __libc_start_main (0) 0
203    4: NOTYPE    WEAK    __gmon_start__ (0) 0
204    5: NOTYPE    WEAK    _Jv_RegisterClasses (0) 0
205    6: NOTYPE    WEAK    _ITM_registerTMCloneTable (0) 0
206    7: FUNC      WEAK    __cxa_finalize (0) 0
207    8: NOTYPE    GLOBAL  _edata (0) 0x20103c
208    9: NOTYPE    GLOBAL  _end (0) 0x201040
209   10: FUNC      GLOBAL  __libc_csu_init (137) 0x860, rel: 0x860 (.text)
210   11: NOTYPE    GLOBAL  __bss_start (0) 0x20103c
211   12: FUNC      GLOBAL  main (35) 0x7f0, rel: 0x7f0 (.text)
212   13: FUNC      GLOBAL  __libc_csu_fini (2) 0x8f0, rel: 0x8f0 (.text)
213 EOF
214
215 cat > testfile.minsym.in <<\EOF
216    0: NOTYPE    LOCAL    (0) 0
217    1: SECTION   LOCAL    (0) 0x238
218    2: FUNC      LOCAL   deregister_tm_clones (0) 0x710, rel: 0x710 (.text)
219    3: FUNC      LOCAL   register_tm_clones (0) 0x740, rel: 0x740 (.text)
220    4: FUNC      LOCAL   __do_global_dtors_aux (0) 0x780, rel: 0x780 (.text)
221    5: OBJECT    LOCAL   __do_global_dtors_aux_fini_array_entry (0) 0x200dd8
222    6: FUNC      LOCAL   frame_dummy (0) 0x7c0, rel: 0x7c0 (.text)
223    7: OBJECT    LOCAL   __frame_dummy_init_array_entry (0) 0x200dd0
224    8: FUNC      LOCAL   foo (20) 0x814, rel: 0x814 (.text)
225    9: NOTYPE    LOCAL   __init_array_end (0) 0x200dd8
226   10: NOTYPE    LOCAL   __init_array_start (0) 0x200dd0
227   11: SECTION   LOCAL    (0) 0x238
228   12: SECTION   LOCAL    (0) 0x254
229   13: SECTION   LOCAL    (0) 0x274
230   14: SECTION   LOCAL    (0) 0x298
231   15: SECTION   LOCAL    (0) 0x2d8
232   16: SECTION   LOCAL    (0) 0x428
233   17: SECTION   LOCAL    (0) 0x4f2
234   18: SECTION   LOCAL    (0) 0x510
235   19: SECTION   LOCAL    (0) 0x530
236   20: SECTION   LOCAL    (0) 0x638
237   21: SECTION   LOCAL    (0) 0x680
238   22: SECTION   LOCAL    (0) 0x6a0
239   23: SECTION   LOCAL    (0) 0x6e0
240   24: SECTION   LOCAL    (0) 0x8f4
241   25: SECTION   LOCAL    (0) 0x900
242   26: SECTION   LOCAL    (0) 0x904
243   27: SECTION   LOCAL    (0) 0x948
244   28: SECTION   LOCAL    (0) 0x200dd0
245   29: SECTION   LOCAL    (0) 0x200dd8
246   30: SECTION   LOCAL    (0) 0x200de0
247   31: SECTION   LOCAL    (0) 0x200de8
248   32: SECTION   LOCAL    (0) 0x200df0
249   33: SECTION   LOCAL    (0) 0x200fc0
250   34: SECTION   LOCAL    (0) 0x201000
251   35: SECTION   LOCAL    (0) 0x201030
252   36: SECTION   LOCAL    (0) 0x20103c
253   37: NOTYPE    WEAK    _ITM_deregisterTMCloneTable (0) 0
254   38: FUNC      GLOBAL  __libc_start_main (0) 0
255   39: NOTYPE    WEAK    __gmon_start__ (0) 0
256   40: NOTYPE    WEAK    _Jv_RegisterClasses (0) 0
257   41: NOTYPE    WEAK    _ITM_registerTMCloneTable (0) 0
258   42: FUNC      WEAK    __cxa_finalize (0) 0
259   43: NOTYPE    GLOBAL  _edata (0) 0x20103c
260   44: NOTYPE    GLOBAL  _end (0) 0x201040
261   45: FUNC      GLOBAL  __libc_csu_init (137) 0x860, rel: 0x860 (.text)
262   46: NOTYPE    GLOBAL  __bss_start (0) 0x20103c
263   47: FUNC      GLOBAL  main (35) 0x7f0, rel: 0x7f0 (.text)
264   48: FUNC      GLOBAL  __libc_csu_fini (2) 0x8f0, rel: 0x8f0 (.text)
265   49: FUNC      GLOBAL  bar (44) 0x828, rel: 0x828 (.text)
266   50: FUNC      GLOBAL  _fini (0) 0x8f4, rel: 0x8f4 (.fini)
267   51: FUNC      GLOBAL  _start (0) 0x6e0, rel: 0x6e0 (.text)
268   52: FUNC      GLOBAL  _init (0) 0x680, rel: 0x680 (.init)
269 EOF
270
271 cat > testfile.minsym_pl.in <<\EOF
272    0: NOTYPE    LOCAL    (0) 0
273    1: SECTION   LOCAL    (0) 0x3000000238
274    2: FUNC      LOCAL   deregister_tm_clones (0) 0x3000000710, rel: 0x710 (.text)
275    3: FUNC      LOCAL   register_tm_clones (0) 0x3000000740, rel: 0x740 (.text)
276    4: FUNC      LOCAL   __do_global_dtors_aux (0) 0x3000000780, rel: 0x780 (.text)
277    5: OBJECT    LOCAL   __do_global_dtors_aux_fini_array_entry (0) 0x3000200dd8
278    6: FUNC      LOCAL   frame_dummy (0) 0x30000007c0, rel: 0x7c0 (.text)
279    7: OBJECT    LOCAL   __frame_dummy_init_array_entry (0) 0x3000200dd0
280    8: FUNC      LOCAL   foo (20) 0x3000000814, rel: 0x814 (.text)
281    9: NOTYPE    LOCAL   __init_array_end (0) 0x3000200dd8
282   10: NOTYPE    LOCAL   __init_array_start (0) 0x3000200dd0
283   11: SECTION   LOCAL    (0) 0x3000000238
284   12: SECTION   LOCAL    (0) 0x3000000254
285   13: SECTION   LOCAL    (0) 0x3000000274
286   14: SECTION   LOCAL    (0) 0x3000000298
287   15: SECTION   LOCAL    (0) 0x30000002d8
288   16: SECTION   LOCAL    (0) 0x3000000428
289   17: SECTION   LOCAL    (0) 0x30000004f2
290   18: SECTION   LOCAL    (0) 0x3000000510
291   19: SECTION   LOCAL    (0) 0x3000000530
292   20: SECTION   LOCAL    (0) 0x3000000638
293   21: SECTION   LOCAL    (0) 0x3000000680
294   22: SECTION   LOCAL    (0) 0x30000006a0
295   23: SECTION   LOCAL    (0) 0x30000006e0
296   24: SECTION   LOCAL    (0) 0x30000008f4
297   25: SECTION   LOCAL    (0) 0x3000000900
298   26: SECTION   LOCAL    (0) 0x3000000904
299   27: SECTION   LOCAL    (0) 0x3000000948
300   28: SECTION   LOCAL    (0) 0x3000200dd0
301   29: SECTION   LOCAL    (0) 0x3000200dd8
302   30: SECTION   LOCAL    (0) 0x3000200de0
303   31: SECTION   LOCAL    (0) 0x3000200de8
304   32: SECTION   LOCAL    (0) 0x3000200df0
305   33: SECTION   LOCAL    (0) 0x3000200fc0
306   34: SECTION   LOCAL    (0) 0x3000201000
307   35: SECTION   LOCAL    (0) 0x3000201030
308   36: SECTION   LOCAL    (0) 0x300020103c
309   37: NOTYPE    WEAK    _ITM_deregisterTMCloneTable (0) 0
310   38: FUNC      GLOBAL  __libc_start_main (0) 0
311   39: NOTYPE    WEAK    __gmon_start__ (0) 0
312   40: NOTYPE    WEAK    _Jv_RegisterClasses (0) 0
313   41: NOTYPE    WEAK    _ITM_registerTMCloneTable (0) 0
314   42: FUNC      WEAK    __cxa_finalize (0) 0
315   43: NOTYPE    GLOBAL  _edata (0) 0x300020103c
316   44: NOTYPE    GLOBAL  _end (0) 0x3000201040
317   45: FUNC      GLOBAL  __libc_csu_init (137) 0x3000000860, rel: 0x860 (.text)
318   46: NOTYPE    GLOBAL  __bss_start (0) 0x300020103c
319   47: FUNC      GLOBAL  main (35) 0x30000007f0, rel: 0x7f0 (.text)
320   48: FUNC      GLOBAL  __libc_csu_fini (2) 0x30000008f0, rel: 0x8f0 (.text)
321   49: FUNC      GLOBAL  bar (44) 0x3000000828, rel: 0x828 (.text)
322   50: FUNC      GLOBAL  _fini (0) 0x30000008f4, rel: 0x8f4 (.fini)
323   51: FUNC      GLOBAL  _start (0) 0x30000006e0, rel: 0x6e0 (.text)
324   52: FUNC      GLOBAL  _init (0) 0x3000000680, rel: 0x680 (.init)
325 EOF
326
327 cat testfile.symtab.in \
328   | testrun_compare ${abs_builddir}/dwflsyms -e testfilebaztab
329
330 cat testfile.symtab.in \
331   | testrun_compare ${abs_builddir}/dwflsyms -e testfilebazdbg
332
333 cat testfile.symtab_pl.in \
334   | testrun_compare ${abs_builddir}/dwflsyms -e testfilebazdbg_pl
335
336 sed s/0x3000/0x4200/g testfile.symtab_pl.in \
337   | testrun_compare ${abs_builddir}/dwflsyms -e testfilebazdbg_plr
338
339 cat testfile.dynsym.in \
340   | testrun_compare ${abs_builddir}/dwflsyms -e testfilebazdyn
341
342 cat testfile.symtab.in \
343   | testrun_compare ${abs_builddir}/dwflsyms -e testfilebazmdb
344
345 cat testfile.minsym.in \
346   | testrun_compare ${abs_builddir}/dwflsyms -e testfilebazmin
347
348 cat testfile.minsym_pl.in \
349   | testrun_compare ${abs_builddir}/dwflsyms -e testfilebazmin_pl
350
351 sed s/0x3000/0x4200/g testfile.minsym_pl.in \
352   | testrun_compare ${abs_builddir}/dwflsyms -e testfilebazmin_plr
353
354 testrun_compare ${abs_builddir}/dwflsyms -e testfilebasmin <<\EOF
355    0: NOTYPE    LOCAL    (0) 0
356    1: FUNC      LOCAL   foo (18) 0x400168, rel: 0x400168 (.text)
357    2: SECTION   LOCAL    (0) 0x400120
358    3: SECTION   LOCAL    (0) 0x400144
359    4: SECTION   LOCAL    (0) 0x4001c0
360    5: SECTION   LOCAL    (0) 0x600258
361    6: FUNC      GLOBAL  _start (21) 0x4001a8, rel: 0x4001a8 (.text)
362    7: FUNC      GLOBAL  main (33) 0x400144, rel: 0x400144 (.text)
363    8: FUNC      GLOBAL  bar (44) 0x40017a, rel: 0x40017a (.text)
364 EOF
365
366 testrun_compare ${abs_builddir}/dwflsyms -e testfilebaxmin <<\EOF
367    0: NOTYPE    LOCAL    (0) 0
368    1: FUNC      LOCAL   deregister_tm_clones (0) 0x400430, rel: 0x400430 (.text)
369    2: FUNC      LOCAL   register_tm_clones (0) 0x400460, rel: 0x400460 (.text)
370    3: FUNC      LOCAL   __do_global_dtors_aux (0) 0x4004a0, rel: 0x4004a0 (.text)
371    4: OBJECT    LOCAL   __do_global_dtors_aux_fini_array_entry (0) 0x600e18
372    5: FUNC      LOCAL   frame_dummy (0) 0x4004c0, rel: 0x4004c0 (.text)
373    6: OBJECT    LOCAL   __frame_dummy_init_array_entry (0) 0x600e10
374    7: FUNC      LOCAL   foo (20) 0x4004f0, rel: 0x4004f0 (.text)
375    8: NOTYPE    LOCAL   __init_array_end (0) 0x600e18
376    9: NOTYPE    LOCAL   __init_array_start (0) 0x600e10
377   10: SECTION   LOCAL    (0) 0x400238
378   11: SECTION   LOCAL    (0) 0x400254
379   12: SECTION   LOCAL    (0) 0x400274
380   13: SECTION   LOCAL    (0) 0x400298
381   14: SECTION   LOCAL    (0) 0x4002b8
382   15: SECTION   LOCAL    (0) 0x400300
383   16: SECTION   LOCAL    (0) 0x400338
384   17: SECTION   LOCAL    (0) 0x400340
385   18: SECTION   LOCAL    (0) 0x400360
386   19: SECTION   LOCAL    (0) 0x400378
387   20: SECTION   LOCAL    (0) 0x4003a8
388   21: SECTION   LOCAL    (0) 0x4003d0
389   22: SECTION   LOCAL    (0) 0x400400
390   23: SECTION   LOCAL    (0) 0x4005c4
391   24: SECTION   LOCAL    (0) 0x4005d0
392   25: SECTION   LOCAL    (0) 0x4005e0
393   26: SECTION   LOCAL    (0) 0x400628
394   27: SECTION   LOCAL    (0) 0x600e10
395   28: SECTION   LOCAL    (0) 0x600e18
396   29: SECTION   LOCAL    (0) 0x600e20
397   30: SECTION   LOCAL    (0) 0x600e28
398   31: SECTION   LOCAL    (0) 0x600ff8
399   32: SECTION   LOCAL    (0) 0x601000
400   33: SECTION   LOCAL    (0) 0x601028
401   34: SECTION   LOCAL    (0) 0x601034
402   35: FUNC      GLOBAL  __libc_start_main (0) 0
403   36: NOTYPE    WEAK    __gmon_start__ (0) 0
404   37: FUNC      GLOBAL  __libc_csu_fini (2) 0x4005c0, rel: 0x4005c0 (.text)
405   38: FUNC      GLOBAL  bar (40) 0x400504, rel: 0x400504 (.text)
406   39: FUNC      GLOBAL  _fini (0) 0x4005c4, rel: 0x4005c4 (.fini)
407   40: FUNC      GLOBAL  __libc_csu_init (101) 0x400550, rel: 0x400550 (.text)
408   41: FUNC      GLOBAL  _start (0) 0x400400, rel: 0x400400 (.text)
409   42: FUNC      GLOBAL  main (35) 0x40052c, rel: 0x40052c (.text)
410   43: FUNC      GLOBAL  _init (0) 0x4003a8, rel: 0x4003a8 (.init)
411 EOF
412
413 testfiles testfile66
414 testrun_compare ${abs_builddir}/dwflsyms -e testfile66 <<\EOF
415    0: NOTYPE    LOCAL    (0) 0
416    1: SECTION   LOCAL    (0) 0x190
417    2: SECTION   LOCAL    (0) 0x1a4
418    3: SECTION   LOCAL    (0) 0x1c8
419    4: SECTION   LOCAL    (0) 0x1f8
420    5: SECTION   LOCAL    (0) 0x288
421    6: SECTION   LOCAL    (0) 0x2a8
422    7: SECTION   LOCAL    (0) 0x2d8
423    8: SECTION   LOCAL    (0) 0x102e0
424    9: SECTION   LOCAL    (0) 0x103d0
425   10: SECTION   LOCAL    (0) 0x103e8
426   11: SECTION   LOCAL    (0) 0x103e8
427   12: OBJECT    LOCAL   _DYNAMIC (0) 0x102e0
428   13: FUNC      GLOBAL  _start (4) 0x103d0, rel: 0x103d0 (.opd) [0x2d8, rel: 0 (.text)]
429   14: NOTYPE    GLOBAL  __bss_start (0) 0x103f0
430   15: NOTYPE    GLOBAL  _edata (0) 0x103f0
431   16: NOTYPE    GLOBAL  _end (0) 0x103f0
432 EOF
433
434 testfiles testfile66.core
435 testrun_compare ${abs_builddir}/dwflsyms -e testfile66 --core=testfile66.core <<\EOF
436    0: NOTYPE    LOCAL    (0) 0
437    1: SECTION   LOCAL    (0) 0xfffb1af0410
438    2: NOTYPE    GLOBAL  __kernel_datapage_offset (0) 0xfffb1af05dc
439    3: OBJECT    GLOBAL  LINUX_2.6.15 (0) 0
440    4: NOTYPE    GLOBAL  __kernel_clock_getres (64) 0xfffb1af052c
441    5: NOTYPE    GLOBAL  __kernel_get_tbfreq (24) 0xfffb1af0620
442    6: NOTYPE    GLOBAL  __kernel_gettimeofday (84) 0xfffb1af0440
443    7: NOTYPE    GLOBAL  __kernel_sync_dicache (20) 0xfffb1af06c4
444    8: NOTYPE    GLOBAL  __kernel_sync_dicache_p5 (20) 0xfffb1af06c4
445    9: NOTYPE    GLOBAL  __kernel_sigtramp_rt64 (12) 0xfffb1af0418
446   10: NOTYPE    GLOBAL  __kernel_clock_gettime (152) 0xfffb1af0494
447   11: NOTYPE    GLOBAL  __kernel_get_syscall_map (44) 0xfffb1af05f4
448 ld64.so.1: Callback returned failure
449    0: NOTYPE    LOCAL    (0) 0
450    1: SECTION   LOCAL    (0) 0x461b0190
451    2: SECTION   LOCAL    (0) 0x461b01a4
452    3: SECTION   LOCAL    (0) 0x461b01c8
453    4: SECTION   LOCAL    (0) 0x461b01f8
454    5: SECTION   LOCAL    (0) 0x461b0288
455    6: SECTION   LOCAL    (0) 0x461b02a8
456    7: SECTION   LOCAL    (0) 0x461b02d8
457    8: SECTION   LOCAL    (0) 0x461c02e0
458    9: SECTION   LOCAL    (0) 0x461c03d0
459   10: SECTION   LOCAL    (0) 0x461c03e8
460   11: SECTION   LOCAL    (0) 0x461c03e8
461   12: OBJECT    LOCAL   _DYNAMIC (0) 0x102e0
462   13: FUNC      GLOBAL  _start (4) 0x461c03d0, rel: 0x103d0 (.opd) [0x461b02d8, rel: 0 (.text)]
463   14: NOTYPE    GLOBAL  __bss_start (0) 0x103f0
464   15: NOTYPE    GLOBAL  _edata (0) 0x103f0
465   16: NOTYPE    GLOBAL  _end (0) 0x103f0
466 EOF
467
468 # Test the already present dot-prefixed names do not get duplicated.
469 testfiles hello_ppc64.ko
470 testrun_compare ${abs_builddir}/dwflsyms -e hello_ppc64.ko <<\EOF
471    0: NOTYPE    LOCAL    (0) 0
472    1: SECTION   LOCAL    (0) 0
473    2: SECTION   LOCAL    (0) 0x94
474    3: SECTION   LOCAL    (0) 0xba
475    4: SECTION   LOCAL    (0) 0xd0
476    5: SECTION   LOCAL    (0) 0x13a
477    6: SECTION   LOCAL    (0) 0x13a
478    7: SECTION   LOCAL    (0) 0x150
479    8: SECTION   LOCAL    (0) 0x170
480    9: SECTION   LOCAL    (0) 0x188
481   10: SECTION   LOCAL    (0) 0x410
482   11: SECTION   LOCAL    (0) 0x434
483   12: SECTION   LOCAL    (0) 0x438
484   13: SECTION   LOCAL    (0) 0x438
485   14: SECTION   LOCAL    (0) 0
486   15: SECTION   LOCAL    (0) 0
487   16: SECTION   LOCAL    (0) 0
488   17: SECTION   LOCAL    (0) 0
489   18: SECTION   LOCAL    (0) 0
490   19: SECTION   LOCAL    (0) 0
491   20: SECTION   LOCAL    (0) 0
492   21: SECTION   LOCAL    (0) 0
493   22: SECTION   LOCAL    (0) 0
494   23: SECTION   LOCAL    (0) 0
495   24: FILE      LOCAL   init.c (0) 0
496   25: FILE      LOCAL   exit.c (0) 0
497   26: FILE      LOCAL   hello.mod.c (0) 0
498   27: OBJECT    LOCAL   __mod_srcversion23 (35) 0xd0
499   28: OBJECT    LOCAL   __module_depends (9) 0xf8
500   29: OBJECT    LOCAL   __mod_vermagic5 (50) 0x108
501   30: OBJECT    GLOBAL  __this_module (648) 0x188
502   31: FUNC      GLOBAL  .cleanup_module (72) 0x4c, rel: 0x4c (.text)
503   32: FUNC      GLOBAL  cleanup_module (24) 0x160, rel: 0x10 (.opd)
504   33: NOTYPE    GLOBAL  .printk (0) 0
505   34: FUNC      GLOBAL  init_module (24) 0x150, rel: 0 (.opd)
506   35: NOTYPE    GLOBAL  ._mcount (0) 0
507   36: FUNC      GLOBAL  .init_module (76) 0, rel: 0 (.text)
508   37: NOTYPE    GLOBAL  _mcount (0) 0
509 EOF
510
511 # Same test files as above, but now generated on ppc64.
512 # ppc64 uses function descriptors to make things more "interesting".
513
514 testfiles testfilebaztabppc64
515 testfiles testfilebazdbgppc64 testfilebazdbgppc64.debug
516 testfiles testfilebazdbgppc64_pl
517 testfiles testfilebazdbgppc64_plr
518 testfiles testfilebazdynppc64
519 testfiles testfilebazmdbppc64
520 testfiles testfilebazminppc64
521 testfiles testfilebazminppc64_pl
522 testfiles testfilebazminppc64_plr
523
524 cat > testfile.symtab.in <<\EOF
525    0: NOTYPE    LOCAL    (0) 0
526    1: SECTION   LOCAL    (0) 0x238
527    2: SECTION   LOCAL    (0) 0x24c
528    3: SECTION   LOCAL    (0) 0x26c
529    4: SECTION   LOCAL    (0) 0x290
530    5: SECTION   LOCAL    (0) 0x2c0
531    6: SECTION   LOCAL    (0) 0x3e0
532    7: SECTION   LOCAL    (0) 0x488
533    8: SECTION   LOCAL    (0) 0x4a0
534    9: SECTION   LOCAL    (0) 0x4c0
535   10: SECTION   LOCAL    (0) 0x820
536   11: SECTION   LOCAL    (0) 0x850
537   12: SECTION   LOCAL    (0) 0x8a0
538   13: SECTION   LOCAL    (0) 0xd30
539   14: SECTION   LOCAL    (0) 0xd4c
540   15: SECTION   LOCAL    (0) 0xd50
541   16: SECTION   LOCAL    (0) 0xd70
542   17: SECTION   LOCAL    (0) 0x1fde0
543   18: SECTION   LOCAL    (0) 0x1fde8
544   19: SECTION   LOCAL    (0) 0x1fdf0
545   20: SECTION   LOCAL    (0) 0x1fdf8
546   21: SECTION   LOCAL    (0) 0x1fe20
547   22: SECTION   LOCAL    (0) 0x20000
548   23: SECTION   LOCAL    (0) 0x20010
549   24: SECTION   LOCAL    (0) 0x200d8
550   25: SECTION   LOCAL    (0) 0x20110
551   26: SECTION   LOCAL    (0) 0x20158
552   27: SECTION   LOCAL    (0) 0
553   28: SECTION   LOCAL    (0) 0
554   29: SECTION   LOCAL    (0) 0
555   30: SECTION   LOCAL    (0) 0
556   31: SECTION   LOCAL    (0) 0
557   32: SECTION   LOCAL    (0) 0
558   33: SECTION   LOCAL    (0) 0
559   34: FILE      LOCAL   crtstuff.c (0) 0
560   35: OBJECT    LOCAL   __JCR_LIST__ (0) 0x1fdf0
561   36: FUNC      LOCAL   deregister_tm_clones (0) 0x20040, rel: 0x20040 (.opd) [0x910, rel: 0x70 (.text)]
562   37: FUNC      LOCAL   register_tm_clones (0) 0x20050, rel: 0x20050 (.opd) [0x980, rel: 0xe0 (.text)]
563   38: FUNC      LOCAL   __do_global_dtors_aux (0) 0x20060, rel: 0x20060 (.opd) [0x9f0, rel: 0x150 (.text)]
564   39: OBJECT    LOCAL   completed.7711 (1) 0x20158
565   40: OBJECT    LOCAL   __do_global_dtors_aux_fini_array_entry (0) 0x1fde8
566   41: FUNC      LOCAL   frame_dummy (0) 0x20070, rel: 0x20070 (.opd) [0xa50, rel: 0x1b0 (.text)]
567   42: OBJECT    LOCAL   __frame_dummy_init_array_entry (0) 0x1fde0
568   43: FILE      LOCAL   foo.c (0) 0
569   44: FILE      LOCAL   bar.c (0) 0
570   45: OBJECT    LOCAL   b1 (4) 0x20004
571   46: FUNC      LOCAL   foo (76) 0x20090, rel: 0x20090 (.opd) [0xb34, rel: 0x294 (.text)]
572   47: FILE      LOCAL   crtstuff.c (0) 0
573   48: OBJECT    LOCAL   __FRAME_END__ (0) 0xe18
574   49: OBJECT    LOCAL   __JCR_END__ (0) 0x1fdf0
575   50: FILE      LOCAL    (0) 0
576   51: NOTYPE    LOCAL   __glink_PLTresolve (0) 0xce8
577   52: NOTYPE    LOCAL   00000011.plt_call.__libc_start_main@@GLIBC_2.3 (0) 0x8a0
578   53: NOTYPE    LOCAL   00000011.plt_call.__cxa_finalize@@GLIBC_2.3 (0) 0x8b4
579   54: NOTYPE    LOCAL   __init_array_end (0) 0x1fde8
580   55: OBJECT    LOCAL   _DYNAMIC (0) 0x1fe20
581   56: NOTYPE    LOCAL   __init_array_start (0) 0x1fde0
582   57: FUNC      GLOBAL  __libc_csu_fini (16) 0x200c0, rel: 0x200c0 (.opd) [0xcd0, rel: 0x430 (.text)]
583   58: FUNC      GLOBAL  __libc_start_main@@GLIBC_2.3 (0) 0
584   59: NOTYPE    WEAK    _ITM_deregisterTMCloneTable (0) 0
585   60: NOTYPE    WEAK    data_start (0) 0x20000
586   61: NOTYPE    GLOBAL  _edata (0) 0x20110
587   62: FUNC      GLOBAL  bar (116) 0x200a0, rel: 0x200a0 (.opd) [0xb80, rel: 0x2e0 (.text)]
588   63: FUNC      GLOBAL  _fini (0) 0x20030, rel: 0x20030 (.opd) [0xd30, rel: 0 (.fini)]
589   64: NOTYPE    GLOBAL  __data_start (0) 0x20000
590   65: NOTYPE    WEAK    __gmon_start__ (0) 0
591   66: OBJECT    GLOBAL  __dso_handle (0) 0x1fe18
592   67: OBJECT    GLOBAL  _IO_stdin_used (4) 0xd4c
593   68: OBJECT    GLOBAL  b2 (4) 0x20008
594   69: FUNC      WEAK    __cxa_finalize@@GLIBC_2.3 (0) 0
595   70: FUNC      GLOBAL  __libc_csu_init (204) 0x200b0, rel: 0x200b0 (.opd) [0xc00, rel: 0x360 (.text)]
596   71: NOTYPE    GLOBAL  _end (0) 0x20160
597   72: FUNC      GLOBAL  _start (60) 0x20010, rel: 0x20010 (.opd) [0x8c8, rel: 0x28 (.text)]
598   73: NOTYPE    GLOBAL  __bss_start (0) 0x20110
599   74: FUNC      GLOBAL  main (128) 0x20080, rel: 0x20080 (.opd) [0xab4, rel: 0x214 (.text)]
600   75: NOTYPE    WEAK    _Jv_RegisterClasses (0) 0
601   76: OBJECT    GLOBAL  __TMC_END__ (0) 0x20010
602   77: NOTYPE    WEAK    _ITM_registerTMCloneTable (0) 0
603   78: FUNC      GLOBAL  _init (0) 0x20020, rel: 0x20020 (.opd) [0x850, rel: 0 (.init)]
604 EOF
605
606 cat > testfile.symtab_pl.in <<\EOF
607    0: NOTYPE    LOCAL    (0) 0
608    1: SECTION   LOCAL    (0) 0x8001000238
609    2: SECTION   LOCAL    (0) 0x800100024c
610    3: SECTION   LOCAL    (0) 0x800100026c
611    4: SECTION   LOCAL    (0) 0x8001000290
612    5: SECTION   LOCAL    (0) 0x80010002c0
613    6: SECTION   LOCAL    (0) 0x80010003e0
614    7: SECTION   LOCAL    (0) 0x8001000488
615    8: SECTION   LOCAL    (0) 0x80010004a0
616    9: SECTION   LOCAL    (0) 0x80010004c0
617   10: SECTION   LOCAL    (0) 0x8001000820
618   11: SECTION   LOCAL    (0) 0x8001000850
619   12: SECTION   LOCAL    (0) 0x80010008a0
620   13: SECTION   LOCAL    (0) 0x8001000d30
621   14: SECTION   LOCAL    (0) 0x8001000d4c
622   15: SECTION   LOCAL    (0) 0x8001000d50
623   16: SECTION   LOCAL    (0) 0x8001000d70
624   17: SECTION   LOCAL    (0) 0x800101fde0
625   18: SECTION   LOCAL    (0) 0x800101fde8
626   19: SECTION   LOCAL    (0) 0x800101fdf0
627   20: SECTION   LOCAL    (0) 0x800101fdf8
628   21: SECTION   LOCAL    (0) 0x800101fe20
629   22: SECTION   LOCAL    (0) 0x8001020000
630   23: SECTION   LOCAL    (0) 0x8001020010
631   24: SECTION   LOCAL    (0) 0x80010200d8
632   25: SECTION   LOCAL    (0) 0x8001020110
633   26: SECTION   LOCAL    (0) 0x8001020158
634   27: SECTION   LOCAL    (0) 0
635   28: SECTION   LOCAL    (0) 0
636   29: SECTION   LOCAL    (0) 0
637   30: SECTION   LOCAL    (0) 0
638   31: SECTION   LOCAL    (0) 0
639   32: SECTION   LOCAL    (0) 0
640   33: SECTION   LOCAL    (0) 0
641   34: FILE      LOCAL   crtstuff.c (0) 0
642   35: OBJECT    LOCAL   __JCR_LIST__ (0) 0x800101fdf0
643   36: FUNC      LOCAL   deregister_tm_clones (0) 0x8001020040, rel: 0x20040 (.opd) [0x8001000910, rel: 0x70 (.text)]
644   37: FUNC      LOCAL   register_tm_clones (0) 0x8001020050, rel: 0x20050 (.opd) [0x8001000980, rel: 0xe0 (.text)]
645   38: FUNC      LOCAL   __do_global_dtors_aux (0) 0x8001020060, rel: 0x20060 (.opd) [0x80010009f0, rel: 0x150 (.text)]
646   39: OBJECT    LOCAL   completed.7711 (1) 0x8001020158
647   40: OBJECT    LOCAL   __do_global_dtors_aux_fini_array_entry (0) 0x800101fde8
648   41: FUNC      LOCAL   frame_dummy (0) 0x8001020070, rel: 0x20070 (.opd) [0x8001000a50, rel: 0x1b0 (.text)]
649   42: OBJECT    LOCAL   __frame_dummy_init_array_entry (0) 0x800101fde0
650   43: FILE      LOCAL   foo.c (0) 0
651   44: FILE      LOCAL   bar.c (0) 0
652   45: OBJECT    LOCAL   b1 (4) 0x8001020004
653   46: FUNC      LOCAL   foo (76) 0x8001020090, rel: 0x20090 (.opd) [0x8001000b34, rel: 0x294 (.text)]
654   47: FILE      LOCAL   crtstuff.c (0) 0
655   48: OBJECT    LOCAL   __FRAME_END__ (0) 0x8001000e18
656   49: OBJECT    LOCAL   __JCR_END__ (0) 0x800101fdf0
657   50: FILE      LOCAL    (0) 0
658   51: NOTYPE    LOCAL   __glink_PLTresolve (0) 0x8001000ce8
659   52: NOTYPE    LOCAL   00000011.plt_call.__libc_start_main@@GLIBC_2.3 (0) 0x80010008a0
660   53: NOTYPE    LOCAL   00000011.plt_call.__cxa_finalize@@GLIBC_2.3 (0) 0x80010008b4
661   54: NOTYPE    LOCAL   __init_array_end (0) 0x800101fde8
662   55: OBJECT    LOCAL   _DYNAMIC (0) 0x800101fe20
663   56: NOTYPE    LOCAL   __init_array_start (0) 0x800101fde0
664   57: FUNC      GLOBAL  __libc_csu_fini (16) 0x80010200c0, rel: 0x200c0 (.opd) [0x8001000cd0, rel: 0x430 (.text)]
665   58: FUNC      GLOBAL  __libc_start_main@@GLIBC_2.3 (0) 0
666   59: NOTYPE    WEAK    _ITM_deregisterTMCloneTable (0) 0
667   60: NOTYPE    WEAK    data_start (0) 0x8001020000
668   61: NOTYPE    GLOBAL  _edata (0) 0x8001020110
669   62: FUNC      GLOBAL  bar (116) 0x80010200a0, rel: 0x200a0 (.opd) [0x8001000b80, rel: 0x2e0 (.text)]
670   63: FUNC      GLOBAL  _fini (0) 0x8001020030, rel: 0x20030 (.opd) [0x8001000d30, rel: 0 (.fini)]
671   64: NOTYPE    GLOBAL  __data_start (0) 0x8001020000
672   65: NOTYPE    WEAK    __gmon_start__ (0) 0
673   66: OBJECT    GLOBAL  __dso_handle (0) 0x800101fe18
674   67: OBJECT    GLOBAL  _IO_stdin_used (4) 0x8001000d4c
675   68: OBJECT    GLOBAL  b2 (4) 0x8001020008
676   69: FUNC      WEAK    __cxa_finalize@@GLIBC_2.3 (0) 0
677   70: FUNC      GLOBAL  __libc_csu_init (204) 0x80010200b0, rel: 0x200b0 (.opd) [0x8001000c00, rel: 0x360 (.text)]
678   71: NOTYPE    GLOBAL  _end (0) 0x8001020160
679   72: FUNC      GLOBAL  _start (60) 0x8001020010, rel: 0x20010 (.opd) [0x80010008c8, rel: 0x28 (.text)]
680   73: NOTYPE    GLOBAL  __bss_start (0) 0x8001020110
681   74: FUNC      GLOBAL  main (128) 0x8001020080, rel: 0x20080 (.opd) [0x8001000ab4, rel: 0x214 (.text)]
682   75: NOTYPE    WEAK    _Jv_RegisterClasses (0) 0
683   76: OBJECT    GLOBAL  __TMC_END__ (0) 0x8001020010
684   77: NOTYPE    WEAK    _ITM_registerTMCloneTable (0) 0
685   78: FUNC      GLOBAL  _init (0) 0x8001020020, rel: 0x20020 (.opd) [0x8001000850, rel: 0 (.init)]
686 EOF
687
688 cat > testfile.dynsym.in <<\EOF
689    0: NOTYPE    LOCAL    (0) 0
690    1: SECTION   LOCAL    (0) 0x238
691    2: SECTION   LOCAL    (0) 0x1fdf0
692    3: FUNC      GLOBAL  __libc_start_main (0) 0
693    4: NOTYPE    WEAK    _ITM_deregisterTMCloneTable (0) 0
694    5: NOTYPE    WEAK    __gmon_start__ (0) 0
695    6: FUNC      WEAK    __cxa_finalize (0) 0
696    7: NOTYPE    WEAK    _Jv_RegisterClasses (0) 0
697    8: NOTYPE    WEAK    _ITM_registerTMCloneTable (0) 0
698    9: NOTYPE    GLOBAL  _edata (0) 0x20110
699   10: NOTYPE    GLOBAL  _end (0) 0x20160
700   11: NOTYPE    GLOBAL  __bss_start (0) 0x20110
701 EOF
702
703 cat > testfile.minsym.in <<\EOF
704    0: NOTYPE    LOCAL    (0) 0
705    1: SECTION   LOCAL    (0) 0x238
706    2: SECTION   LOCAL    (0) 0x1fdf0
707    3: OBJECT    LOCAL   __do_global_dtors_aux_fini_array_entry (0) 0x1fde8
708    4: OBJECT    LOCAL   __frame_dummy_init_array_entry (0) 0x1fde0
709    5: NOTYPE    LOCAL   __glink_PLTresolve (0) 0xce8
710    6: NOTYPE    LOCAL   00000011.plt_call.__libc_start_main@@GLIBC_2.3 (0) 0x8a0
711    7: NOTYPE    LOCAL   00000011.plt_call.__cxa_finalize@@GLIBC_2.3 (0) 0x8b4
712    8: NOTYPE    LOCAL   __init_array_end (0) 0x1fde8
713    9: NOTYPE    LOCAL   __init_array_start (0) 0x1fde0
714   10: SECTION   LOCAL    (0) 0x238
715   11: SECTION   LOCAL    (0) 0x24c
716   12: SECTION   LOCAL    (0) 0x26c
717   13: SECTION   LOCAL    (0) 0x290
718   14: SECTION   LOCAL    (0) 0x2c0
719   15: SECTION   LOCAL    (0) 0x3e0
720   16: SECTION   LOCAL    (0) 0x488
721   17: SECTION   LOCAL    (0) 0x4a0
722   18: SECTION   LOCAL    (0) 0x4c0
723   19: SECTION   LOCAL    (0) 0x820
724   20: SECTION   LOCAL    (0) 0x850
725   21: SECTION   LOCAL    (0) 0x8a0
726   22: SECTION   LOCAL    (0) 0xd30
727   23: SECTION   LOCAL    (0) 0xd4c
728   24: SECTION   LOCAL    (0) 0xd50
729   25: SECTION   LOCAL    (0) 0xd70
730   26: SECTION   LOCAL    (0) 0x1fde0
731   27: SECTION   LOCAL    (0) 0x1fde8
732   28: SECTION   LOCAL    (0) 0x1fdf0
733   29: SECTION   LOCAL    (0) 0x1fdf8
734   30: SECTION   LOCAL    (0) 0x1fe20
735   31: SECTION   LOCAL    (0) 0x20000
736   32: SECTION   LOCAL    (0) 0x20010
737   33: SECTION   LOCAL    (0) 0x200d8
738   34: SECTION   LOCAL    (0) 0x20110
739   35: SECTION   LOCAL    (0) 0x20158
740   36: FUNC      GLOBAL  __libc_start_main (0) 0
741   37: NOTYPE    WEAK    _ITM_deregisterTMCloneTable (0) 0
742   38: NOTYPE    WEAK    __gmon_start__ (0) 0
743   39: FUNC      WEAK    __cxa_finalize (0) 0
744   40: NOTYPE    WEAK    _Jv_RegisterClasses (0) 0
745   41: NOTYPE    WEAK    _ITM_registerTMCloneTable (0) 0
746   42: NOTYPE    GLOBAL  _edata (0) 0x20110
747   43: NOTYPE    GLOBAL  _end (0) 0x20160
748   44: NOTYPE    GLOBAL  __bss_start (0) 0x20110
749 EOF
750
751 cat > testfile.minsym_pl.in <<\EOF
752    0: NOTYPE    LOCAL    (0) 0
753    1: SECTION   LOCAL    (0) 0x8001000238
754    2: SECTION   LOCAL    (0) 0x800101fdf0
755    3: OBJECT    LOCAL   __do_global_dtors_aux_fini_array_entry (0) 0x800101fde8
756    4: OBJECT    LOCAL   __frame_dummy_init_array_entry (0) 0x800101fde0
757    5: NOTYPE    LOCAL   __glink_PLTresolve (0) 0x8001000ce8
758    6: NOTYPE    LOCAL   00000011.plt_call.__libc_start_main@@GLIBC_2.3 (0) 0x80010008a0
759    7: NOTYPE    LOCAL   00000011.plt_call.__cxa_finalize@@GLIBC_2.3 (0) 0x80010008b4
760    8: NOTYPE    LOCAL   __init_array_end (0) 0x800101fde8
761    9: NOTYPE    LOCAL   __init_array_start (0) 0x800101fde0
762   10: SECTION   LOCAL    (0) 0x8001000238
763   11: SECTION   LOCAL    (0) 0x800100024c
764   12: SECTION   LOCAL    (0) 0x800100026c
765   13: SECTION   LOCAL    (0) 0x8001000290
766   14: SECTION   LOCAL    (0) 0x80010002c0
767   15: SECTION   LOCAL    (0) 0x80010003e0
768   16: SECTION   LOCAL    (0) 0x8001000488
769   17: SECTION   LOCAL    (0) 0x80010004a0
770   18: SECTION   LOCAL    (0) 0x80010004c0
771   19: SECTION   LOCAL    (0) 0x8001000820
772   20: SECTION   LOCAL    (0) 0x8001000850
773   21: SECTION   LOCAL    (0) 0x80010008a0
774   22: SECTION   LOCAL    (0) 0x8001000d30
775   23: SECTION   LOCAL    (0) 0x8001000d4c
776   24: SECTION   LOCAL    (0) 0x8001000d50
777   25: SECTION   LOCAL    (0) 0x8001000d70
778   26: SECTION   LOCAL    (0) 0x800101fde0
779   27: SECTION   LOCAL    (0) 0x800101fde8
780   28: SECTION   LOCAL    (0) 0x800101fdf0
781   29: SECTION   LOCAL    (0) 0x800101fdf8
782   30: SECTION   LOCAL    (0) 0x800101fe20
783   31: SECTION   LOCAL    (0) 0x8001020000
784   32: SECTION   LOCAL    (0) 0x8001020010
785   33: SECTION   LOCAL    (0) 0x80010200d8
786   34: SECTION   LOCAL    (0) 0x8001020110
787   35: SECTION   LOCAL    (0) 0x8001020158
788   36: FUNC      GLOBAL  __libc_start_main (0) 0
789   37: NOTYPE    WEAK    _ITM_deregisterTMCloneTable (0) 0
790   38: NOTYPE    WEAK    __gmon_start__ (0) 0
791   39: FUNC      WEAK    __cxa_finalize (0) 0
792   40: NOTYPE    WEAK    _Jv_RegisterClasses (0) 0
793   41: NOTYPE    WEAK    _ITM_registerTMCloneTable (0) 0
794   42: NOTYPE    GLOBAL  _edata (0) 0x8001020110
795   43: NOTYPE    GLOBAL  _end (0) 0x8001020160
796   44: NOTYPE    GLOBAL  __bss_start (0) 0x8001020110
797 EOF
798
799 cat testfile.symtab.in \
800   | testrun_compare ${abs_builddir}/dwflsyms -e testfilebaztabppc64
801
802 cat testfile.symtab.in \
803   | testrun_compare ${abs_builddir}/dwflsyms -e testfilebazdbgppc64
804
805 cat testfile.symtab_pl.in \
806   | testrun_compare ${abs_builddir}/dwflsyms -e testfilebazdbgppc64_pl
807
808 sed s/0x8001/0x4200/g testfile.symtab_pl.in \
809   | testrun_compare ${abs_builddir}/dwflsyms -e testfilebazdbgppc64_plr
810
811 cat testfile.dynsym.in \
812   | testrun_compare ${abs_builddir}/dwflsyms -e testfilebazdynppc64
813
814 cat testfile.symtab.in \
815   | testrun_compare ${abs_builddir}/dwflsyms -e testfilebazmdbppc64
816
817 cat testfile.minsym.in \
818   | testrun_compare ${abs_builddir}/dwflsyms -e testfilebazminppc64
819
820 cat testfile.minsym_pl.in \
821   | testrun_compare ${abs_builddir}/dwflsyms -e testfilebazminppc64_pl
822
823 sed s/0x8001/0x4200/g testfile.minsym_pl.in \
824   | testrun_compare ${abs_builddir}/dwflsyms -e testfilebazminppc64_plr
825
826 exit 0