Home | History | Annotate | Download | only in tests
      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
    827