Blame tests/run-nm-syms.sh

Packit Service 97d2fb
#! /bin/sh
Packit Service 97d2fb
# Copyright (C) 2020 Red Hat, Inc.
Packit Service 97d2fb
# This file is part of elfutils.
Packit Service 97d2fb
#
Packit Service 97d2fb
# This file is free software; you can redistribute it and/or modify
Packit Service 97d2fb
# it under the terms of the GNU General Public License as published by
Packit Service 97d2fb
# the Free Software Foundation; either version 3 of the License, or
Packit Service 97d2fb
# (at your option) any later version.
Packit Service 97d2fb
#
Packit Service 97d2fb
# elfutils is distributed in the hope that it will be useful, but
Packit Service 97d2fb
# WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 97d2fb
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service 97d2fb
# GNU General Public License for more details.
Packit Service 97d2fb
#
Packit Service 97d2fb
# You should have received a copy of the GNU General Public License
Packit Service 97d2fb
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
Packit Service 97d2fb
Packit Service 97d2fb
. $srcdir/test-subr.sh
Packit Service 97d2fb
Packit Service 97d2fb
# void *SYM1;
Packit Service 97d2fb
# void *SYM2 = 0;
Packit Service 97d2fb
# extern void *SYM3;
Packit Service 97d2fb
# static void *SYM4;
Packit Service 97d2fb
#
Packit Service 97d2fb
# void *SYM6 = &SYM3;
Packit Service 97d2fb
# static void *SYM7 = &SYM3;
Packit Service 97d2fb
#
Packit Service 97d2fb
# void *SYM8 __attribute__((__weak__));
Packit Service 97d2fb
#
Packit Service 97d2fb
# void FUN1 (void) { }
Packit Service 97d2fb
# static void FUN2 (void) { }
Packit Service 97d2fb
# extern void FUN3 (void);
Packit Service 97d2fb
#
Packit Service 97d2fb
# void *FREF = FUN3;
Packit Service 97d2fb
#
Packit Service 97d2fb
# void __attribute__((__weak__)) FUN4 (void) { };
Packit Service 97d2fb
#
Packit Service 97d2fb
# int NUM0 = 0; __asm__(".type NUM0,%gnu_unique_object");
Packit Service 97d2fb
# int __thread NUM1 = 1;
Packit Service 97d2fb
#
Packit Service 97d2fb
# gcc -m64 -c syms.c -o testfilesyms64
Packit Service 97d2fb
# gcc -m32 -c syms.c -o testfilesyms32
Packit Service 97d2fb
Packit Service 97d2fb
testfiles testfilesyms32 testfilesyms64
Packit Service 97d2fb
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/nm --format=bsd testfilesyms32 <<\EOF
Packit Service 97d2fb
00000008 D FREF
Packit Service 97d2fb
00000000 T FUN1
Packit Service 97d2fb
00000010 t FUN2
Packit Service 97d2fb
         U FUN3
Packit Service 97d2fb
00000020 W FUN4
Packit Service 97d2fb
00000008 u NUM0
Packit Service 97d2fb
00000000 D NUM1
Packit Service 97d2fb
00000004 C SYM1
Packit Service 97d2fb
00000000 B SYM2
Packit Service 97d2fb
         U SYM3
Packit Service 97d2fb
0000000c b SYM4
Packit Service 97d2fb
00000000 D SYM6
Packit Service 97d2fb
00000004 d SYM7
Packit Service 97d2fb
00000004 V SYM8
Packit Service 97d2fb
         U _GLOBAL_OFFSET_TABLE_
Packit Service 97d2fb
00000000 T __x86.get_pc_thunk.ax
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/nm --format=posix testfilesyms32 <<\EOF
Packit Service 97d2fb
FREF D 00000008 00000004
Packit Service 97d2fb
FUN1 T 00000000 00000010
Packit Service 97d2fb
FUN2 t 00000010 00000010
Packit Service 97d2fb
FUN3 U
Packit Service 97d2fb
FUN4 W 00000020 00000010
Packit Service 97d2fb
NUM0 u 00000008 00000004
Packit Service 97d2fb
NUM1 D 00000000 00000004
Packit Service 97d2fb
SYM1 C 00000004 00000004
Packit Service 97d2fb
SYM2 B 00000000 00000004
Packit Service 97d2fb
SYM3 U
Packit Service 97d2fb
SYM4 b 0000000c 00000004
Packit Service 97d2fb
SYM6 D 00000000 00000004
Packit Service 97d2fb
SYM7 d 00000004 00000004
Packit Service 97d2fb
SYM8 V 00000004 00000004
Packit Service 97d2fb
_GLOBAL_OFFSET_TABLE_ U
Packit Service 97d2fb
__x86.get_pc_thunk.ax T 00000000 00000000
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/nm --format=sysv testfilesyms32 <<\EOF
Packit Service 97d2fb
Packit Service 97d2fb
Packit Service 97d2fb
Symbols from testfilesyms32:
Packit Service 97d2fb
Packit Service 97d2fb
Name                  Value    Class  Type     Size     Line Section
Packit Service 97d2fb
Packit Service 97d2fb
FREF                 |00000008|GLOBAL|OBJECT  |00000004|    |.data.rel
Packit Service 97d2fb
FUN1                 |00000000|GLOBAL|FUNC    |00000010|    |.text
Packit Service 97d2fb
FUN2                 |00000010|LOCAL |FUNC    |00000010|    |.text
Packit Service 97d2fb
FUN3                 |        |GLOBAL|NOTYPE  |        |    |UNDEF
Packit Service 97d2fb
FUN4                 |00000020|WEAK  |FUNC    |00000010|    |.text
Packit Service 97d2fb
NUM0                 |00000008|UNIQUE|OBJECT  |00000004|    |.bss
Packit Service 97d2fb
NUM1                 |00000000|GLOBAL|TLS     |00000004|    |.tdata
Packit Service 97d2fb
SYM1                 |00000004|GLOBAL|OBJECT  |00000004|    |COMMON
Packit Service 97d2fb
SYM2                 |00000000|GLOBAL|OBJECT  |00000004|    |.bss
Packit Service 97d2fb
SYM3                 |        |GLOBAL|NOTYPE  |        |    |UNDEF
Packit Service 97d2fb
SYM4                 |0000000c|LOCAL |OBJECT  |00000004|    |.bss
Packit Service 97d2fb
SYM6                 |00000000|GLOBAL|OBJECT  |00000004|    |.data.rel
Packit Service 97d2fb
SYM7                 |00000004|LOCAL |OBJECT  |00000004|    |.data.rel
Packit Service 97d2fb
SYM8                 |00000004|WEAK  |OBJECT  |00000004|    |.bss
Packit Service 97d2fb
_GLOBAL_OFFSET_TABLE_|        |GLOBAL|NOTYPE  |        |    |UNDEF
Packit Service 97d2fb
__x86.get_pc_thunk.ax|00000000|GLOBAL|FUNC    |00000000|    |.text.__x86.get_pc_thunk.ax
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/nm --format=bsd testfilesyms64 <<\EOF
Packit Service 97d2fb
0000000000000010 D FREF
Packit Service 97d2fb
0000000000000000 T FUN1
Packit Service 97d2fb
0000000000000007 t FUN2
Packit Service 97d2fb
                 U FUN3
Packit Service 97d2fb
000000000000000e W FUN4
Packit Service 97d2fb
0000000000000010 u NUM0
Packit Service 97d2fb
0000000000000000 D NUM1
Packit Service 97d2fb
0000000000000008 C SYM1
Packit Service 97d2fb
0000000000000000 B SYM2
Packit Service 97d2fb
                 U SYM3
Packit Service 97d2fb
0000000000000018 b SYM4
Packit Service 97d2fb
0000000000000000 D SYM6
Packit Service 97d2fb
0000000000000008 d SYM7
Packit Service 97d2fb
0000000000000008 V SYM8
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/nm --format=posix testfilesyms64 <<\EOF
Packit Service 97d2fb
FREF D 0000000000000010 0000000000000008
Packit Service 97d2fb
FUN1 T 0000000000000000 0000000000000007
Packit Service 97d2fb
FUN2 t 0000000000000007 0000000000000007
Packit Service 97d2fb
FUN3 U
Packit Service 97d2fb
FUN4 W 000000000000000e 0000000000000007
Packit Service 97d2fb
NUM0 u 0000000000000010 0000000000000004
Packit Service 97d2fb
NUM1 D 0000000000000000 0000000000000004
Packit Service 97d2fb
SYM1 C 0000000000000008 0000000000000008
Packit Service 97d2fb
SYM2 B 0000000000000000 0000000000000008
Packit Service 97d2fb
SYM3 U
Packit Service 97d2fb
SYM4 b 0000000000000018 0000000000000008
Packit Service 97d2fb
SYM6 D 0000000000000000 0000000000000008
Packit Service 97d2fb
SYM7 d 0000000000000008 0000000000000008
Packit Service 97d2fb
SYM8 V 0000000000000008 0000000000000008
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/nm --format=sysv testfilesyms64 <<\EOF
Packit Service 97d2fb
Packit Service 97d2fb
Packit Service 97d2fb
Symbols from testfilesyms64:
Packit Service 97d2fb
Packit Service 97d2fb
Name   Value            Class  Type     Size             Line Section
Packit Service 97d2fb
Packit Service 97d2fb
FREF  |0000000000000010|GLOBAL|OBJECT  |0000000000000008|    |.data.rel
Packit Service 97d2fb
FUN1  |0000000000000000|GLOBAL|FUNC    |0000000000000007|    |.text
Packit Service 97d2fb
FUN2  |0000000000000007|LOCAL |FUNC    |0000000000000007|    |.text
Packit Service 97d2fb
FUN3  |                |GLOBAL|NOTYPE  |                |    |UNDEF
Packit Service 97d2fb
FUN4  |000000000000000e|WEAK  |FUNC    |0000000000000007|    |.text
Packit Service 97d2fb
NUM0  |0000000000000010|UNIQUE|OBJECT  |0000000000000004|    |.bss
Packit Service 97d2fb
NUM1  |0000000000000000|GLOBAL|TLS     |0000000000000004|    |.tdata
Packit Service 97d2fb
SYM1  |0000000000000008|GLOBAL|OBJECT  |0000000000000008|    |COMMON
Packit Service 97d2fb
SYM2  |0000000000000000|GLOBAL|OBJECT  |0000000000000008|    |.bss
Packit Service 97d2fb
SYM3  |                |GLOBAL|NOTYPE  |                |    |UNDEF
Packit Service 97d2fb
SYM4  |0000000000000018|LOCAL |OBJECT  |0000000000000008|    |.bss
Packit Service 97d2fb
SYM6  |0000000000000000|GLOBAL|OBJECT  |0000000000000008|    |.data.rel
Packit Service 97d2fb
SYM7  |0000000000000008|LOCAL |OBJECT  |0000000000000008|    |.data.rel
Packit Service 97d2fb
SYM8  |0000000000000008|WEAK  |OBJECT  |0000000000000008|    |.bss
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
exit 0