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