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