summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wielaard <mjw@redhat.com>2013-11-16 00:11:38 +0100
committerMark Wielaard <mjw@redhat.com>2013-11-16 00:25:33 +0100
commit68ce4fc85bbf95441e96fedd76c8bd78f76d8da2 (patch)
tree43e289a7ae1b705e25c9fbf9ba429afb516be1cb
parente31e73969793e5e1f9ee4a9ae2d266f5e6ca435d (diff)
downloadelfutils-68ce4fc85bbf95441e96fedd76c8bd78f76d8da2.tar.gz
tests: Fix broken dwflsyms tests, extend test and add prelink tests.
The two test files that contains minisymtab tables and the expected test output were wrongly generated. Also prelink tests were missing to check that a prelinked main ELF file with separate debug or minisyms generated correctly adjusted symbol values. The dwflsyms test was also extended to check print and check the result of dwfl_module_relocate_address. Reported-by: Josh Stone <jistone@redhat.com> Signed-off-by: Mark Wielaard <mjw@redhat.com>
-rw-r--r--tests/ChangeLog12
-rw-r--r--tests/Makefile.am1
-rw-r--r--tests/dwflsyms.c7
-rwxr-xr-xtests/run-dwflsyms.sh281
-rwxr-xr-xtests/run-readelf-s.sh77
-rwxr-xr-xtests/testfilebazdbg_pl.bz2bin0 -> 2589 bytes
-rwxr-xr-xtests/testfilebazmdb.bz2bin3259 -> 3313 bytes
-rwxr-xr-xtests/testfilebazmin.bz2bin3194 -> 3323 bytes
-rwxr-xr-xtests/testfilebazmin_pl.bz2bin0 -> 3749 bytes
9 files changed, 275 insertions, 103 deletions
diff --git a/tests/ChangeLog b/tests/ChangeLog
index 5ebc1bd4..9461287a 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,15 @@
+2013-11-15 Mark Wielaard <mjw@redhat.com>
+
+ * testfilebazmdb.bz2: Regenerated.
+ * testfilebazmin.bz2: Likewise.
+ * testfilebazdbg_pl.bz2: New testfile.
+ * testfilebazmin_pl.bz2: Likewise.
+ * Makefile.am (EXTRA_DIST): Add testfilebazdbg_pl.bz2 and
+ testfilebazmin_pl.bz2.
+ * dwflsyms.c (list_syms): Call dwfl_module_relocate_address and
+ print relative address of function symbols.
+ * run-dwflsyms.sh: Add prelink tests and adjust expected output.
+
2013-11-01 Michael Forney <mforney@mforney.org>
* Makefile.am (TESTS_ENVIRONMENT): Use and export NM.
diff --git a/tests/Makefile.am b/tests/Makefile.am
index bc97523b..e9cf950c 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -189,6 +189,7 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh \
run-readelf-s.sh testfilebazdbg.bz2 testfilebazdyn.bz2 \
testfilebazmin.bz2 testfilebazdbg.debug.bz2 testfilebazmdb.bz2 \
testfilebaztab.bz2 testfilebasmin.bz2 \
+ testfilebazdbg_pl.bz2 testfilebazmin_pl.bz2 \
run-dwflsyms.sh \
run-unstrip-n.sh testcore-rtlib.bz2 testcore-rtlib-ppc.bz2 \
run-low_high_pc.sh testfile_low_high_pc.bz2 \
diff --git a/tests/dwflsyms.c b/tests/dwflsyms.c
index cae3fbea..55f2653c 100644
--- a/tests/dwflsyms.c
+++ b/tests/dwflsyms.c
@@ -83,7 +83,7 @@ list_syms (struct Dwfl_Module *mod,
GElf_Sym sym;
GElf_Word shndxp;
const char *name = dwfl_module_getsym (mod, ndx, &sym, &shndxp);
- printf("%4d: %s\t%s\t%s (%" PRIu64 ") %#" PRIx64 "\n",
+ printf("%4d: %s\t%s\t%s (%" PRIu64 ") %#" PRIx64,
ndx, gelf_type (&sym), gelf_bind (&sym), name,
sym.st_size, sym.st_value);
@@ -97,7 +97,12 @@ list_syms (struct Dwfl_Module *mod,
GElf_Word ashndxp;
const char *aname = dwfl_module_addrsym (mod, addr, &asym, &ashndxp);
assert (strcmp (name, aname) == 0);
+
+ int res = dwfl_module_relocate_address (mod, &addr);
+ assert (res != -1);
+ printf(", rel: %#" PRIx64 "", addr);
}
+ printf ("\n");
}
return DWARF_CB_OK;
diff --git a/tests/run-dwflsyms.sh b/tests/run-dwflsyms.sh
index c440bf73..a425277c 100755
--- a/tests/run-dwflsyms.sh
+++ b/tests/run-dwflsyms.sh
@@ -17,17 +17,20 @@
. $srcdir/test-subr.sh
-# Tests dwfl_module_addrsym and dwfl_module_getsym.
+# Tests dwfl_module_{addrsym,getsym,relocate_address}
# See run-readelf-s.sh for how to generate test binaries.
testfiles testfilebaztab
testfiles testfilebazdbg testfilebazdbg.debug
+testfiles testfilebazdbg_pl
testfiles testfilebazdyn
testfiles testfilebazmdb
testfiles testfilebazmin
+testfiles testfilebazmin_pl
testfiles testfilebasmin
tempfiles testfile.dynsym.in testfile.symtab.in testfile.minsym.in dwflsyms.out
+tempfiles testfile.symtab_pl.in testfile.minsym_pl.in
cat > testfile.symtab.in <<\EOF
0: NOTYPE LOCAL (0) 0
@@ -65,17 +68,17 @@ cat > testfile.symtab.in <<\EOF
32: SECTION LOCAL (0) 0
33: FILE LOCAL crtstuff.c (0) 0
34: OBJECT LOCAL __JCR_LIST__ (0) 0x200de0
- 35: FUNC LOCAL deregister_tm_clones (0) 0x710
- 36: FUNC LOCAL register_tm_clones (0) 0x740
- 37: FUNC LOCAL __do_global_dtors_aux (0) 0x780
+ 35: FUNC LOCAL deregister_tm_clones (0) 0x710, rel: 0x710
+ 36: FUNC LOCAL register_tm_clones (0) 0x740, rel: 0x740
+ 37: FUNC LOCAL __do_global_dtors_aux (0) 0x780, rel: 0x780
38: OBJECT LOCAL completed.6137 (1) 0x20103c
39: OBJECT LOCAL __do_global_dtors_aux_fini_array_entry (0) 0x200dd8
- 40: FUNC LOCAL frame_dummy (0) 0x7c0
+ 40: FUNC LOCAL frame_dummy (0) 0x7c0, rel: 0x7c0
41: OBJECT LOCAL __frame_dummy_init_array_entry (0) 0x200dd0
42: FILE LOCAL foo.c (0) 0
43: FILE LOCAL bar.c (0) 0
44: OBJECT LOCAL b1 (4) 0x201034
- 45: FUNC LOCAL foo (20) 0x814
+ 45: FUNC LOCAL foo (20) 0x814, rel: 0x814
46: FILE LOCAL crtstuff.c (0) 0
47: OBJECT LOCAL __FRAME_END__ (0) 0xa58
48: OBJECT LOCAL __JCR_END__ (0) 0x200de0
@@ -84,28 +87,107 @@ cat > testfile.symtab.in <<\EOF
51: OBJECT LOCAL _DYNAMIC (0) 0x200df0
52: NOTYPE LOCAL __init_array_start (0) 0x200dd0
53: OBJECT LOCAL _GLOBAL_OFFSET_TABLE_ (0) 0x201000
- 54: FUNC GLOBAL __libc_csu_fini (2) 0x8f0
+ 54: FUNC GLOBAL __libc_csu_fini (2) 0x8f0, rel: 0x8f0
55: NOTYPE WEAK _ITM_deregisterTMCloneTable (0) 0
56: NOTYPE WEAK data_start (0) 0x201030
57: NOTYPE GLOBAL _edata (0) 0x20103c
- 58: FUNC GLOBAL bar (44) 0x828
- 59: FUNC GLOBAL _fini (0) 0x8f4
+ 58: FUNC GLOBAL bar (44) 0x828, rel: 0x828
+ 59: FUNC GLOBAL _fini (0) 0x8f4, rel: 0x8f4
60: FUNC GLOBAL __libc_start_main@@GLIBC_2.2.5 (0) 0
61: NOTYPE GLOBAL __data_start (0) 0x201030
62: NOTYPE WEAK __gmon_start__ (0) 0
63: OBJECT GLOBAL __dso_handle (0) 0x200de8
64: OBJECT GLOBAL _IO_stdin_used (4) 0x900
65: OBJECT GLOBAL b2 (4) 0x201038
- 66: FUNC GLOBAL __libc_csu_init (137) 0x860
+ 66: FUNC GLOBAL __libc_csu_init (137) 0x860, rel: 0x860
67: NOTYPE GLOBAL _end (0) 0x201040
- 68: FUNC GLOBAL _start (0) 0x6e0
+ 68: FUNC GLOBAL _start (0) 0x6e0, rel: 0x6e0
69: NOTYPE GLOBAL __bss_start (0) 0x20103c
- 70: FUNC GLOBAL main (35) 0x7f0
+ 70: FUNC GLOBAL main (35) 0x7f0, rel: 0x7f0
71: NOTYPE WEAK _Jv_RegisterClasses (0) 0
72: OBJECT GLOBAL __TMC_END__ (0) 0x201040
73: NOTYPE WEAK _ITM_registerTMCloneTable (0) 0
74: FUNC WEAK __cxa_finalize@@GLIBC_2.2.5 (0) 0
- 75: FUNC GLOBAL _init (0) 0x680
+ 75: FUNC GLOBAL _init (0) 0x680, rel: 0x680
+EOF
+
+cat > testfile.symtab_pl.in <<\EOF
+ 0: NOTYPE LOCAL (0) 0
+ 1: SECTION LOCAL (0) 0x3000000238
+ 2: SECTION LOCAL (0) 0x3000000254
+ 3: SECTION LOCAL (0) 0x3000000274
+ 4: SECTION LOCAL (0) 0x3000000298
+ 5: SECTION LOCAL (0) 0x30000002d8
+ 6: SECTION LOCAL (0) 0x3000000428
+ 7: SECTION LOCAL (0) 0x30000004f2
+ 8: SECTION LOCAL (0) 0x3000000510
+ 9: SECTION LOCAL (0) 0x3000000530
+ 10: SECTION LOCAL (0) 0x3000000638
+ 11: SECTION LOCAL (0) 0x3000000680
+ 12: SECTION LOCAL (0) 0x30000006a0
+ 13: SECTION LOCAL (0) 0x30000006e0
+ 14: SECTION LOCAL (0) 0x30000008f4
+ 15: SECTION LOCAL (0) 0x3000000900
+ 16: SECTION LOCAL (0) 0x3000000904
+ 17: SECTION LOCAL (0) 0x3000000948
+ 18: SECTION LOCAL (0) 0x3000200dd0
+ 19: SECTION LOCAL (0) 0x3000200dd8
+ 20: SECTION LOCAL (0) 0x3000200de0
+ 21: SECTION LOCAL (0) 0x3000200de8
+ 22: SECTION LOCAL (0) 0x3000200df0
+ 23: SECTION LOCAL (0) 0x3000200fc0
+ 24: SECTION LOCAL (0) 0x3000201000
+ 25: SECTION LOCAL (0) 0x3000201030
+ 26: SECTION LOCAL (0) 0x300020103c
+ 27: SECTION LOCAL (0) 0
+ 28: SECTION LOCAL (0) 0
+ 29: SECTION LOCAL (0) 0
+ 30: SECTION LOCAL (0) 0
+ 31: SECTION LOCAL (0) 0
+ 32: SECTION LOCAL (0) 0
+ 33: FILE LOCAL crtstuff.c (0) 0
+ 34: OBJECT LOCAL __JCR_LIST__ (0) 0x3000200de0
+ 35: FUNC LOCAL deregister_tm_clones (0) 0x3000000710, rel: 0x710
+ 36: FUNC LOCAL register_tm_clones (0) 0x3000000740, rel: 0x740
+ 37: FUNC LOCAL __do_global_dtors_aux (0) 0x3000000780, rel: 0x780
+ 38: OBJECT LOCAL completed.6137 (1) 0x300020103c
+ 39: OBJECT LOCAL __do_global_dtors_aux_fini_array_entry (0) 0x3000200dd8
+ 40: FUNC LOCAL frame_dummy (0) 0x30000007c0, rel: 0x7c0
+ 41: OBJECT LOCAL __frame_dummy_init_array_entry (0) 0x3000200dd0
+ 42: FILE LOCAL foo.c (0) 0
+ 43: FILE LOCAL bar.c (0) 0
+ 44: OBJECT LOCAL b1 (4) 0x3000201034
+ 45: FUNC LOCAL foo (20) 0x3000000814, rel: 0x814
+ 46: FILE LOCAL crtstuff.c (0) 0
+ 47: OBJECT LOCAL __FRAME_END__ (0) 0x3000000a58
+ 48: OBJECT LOCAL __JCR_END__ (0) 0x3000200de0
+ 49: FILE LOCAL (0) 0
+ 50: NOTYPE LOCAL __init_array_end (0) 0x3000200dd8
+ 51: OBJECT LOCAL _DYNAMIC (0) 0x3000200df0
+ 52: NOTYPE LOCAL __init_array_start (0) 0x3000200dd0
+ 53: OBJECT LOCAL _GLOBAL_OFFSET_TABLE_ (0) 0x3000201000
+ 54: FUNC GLOBAL __libc_csu_fini (2) 0x30000008f0, rel: 0x8f0
+ 55: NOTYPE WEAK _ITM_deregisterTMCloneTable (0) 0
+ 56: NOTYPE WEAK data_start (0) 0x3000201030
+ 57: NOTYPE GLOBAL _edata (0) 0x300020103c
+ 58: FUNC GLOBAL bar (44) 0x3000000828, rel: 0x828
+ 59: FUNC GLOBAL _fini (0) 0x30000008f4, rel: 0x8f4
+ 60: FUNC GLOBAL __libc_start_main@@GLIBC_2.2.5 (0) 0
+ 61: NOTYPE GLOBAL __data_start (0) 0x3000201030
+ 62: NOTYPE WEAK __gmon_start__ (0) 0
+ 63: OBJECT GLOBAL __dso_handle (0) 0x3000200de8
+ 64: OBJECT GLOBAL _IO_stdin_used (4) 0x3000000900
+ 65: OBJECT GLOBAL b2 (4) 0x3000201038
+ 66: FUNC GLOBAL __libc_csu_init (137) 0x3000000860, rel: 0x860
+ 67: NOTYPE GLOBAL _end (0) 0x3000201040
+ 68: FUNC GLOBAL _start (0) 0x30000006e0, rel: 0x6e0
+ 69: NOTYPE GLOBAL __bss_start (0) 0x300020103c
+ 70: FUNC GLOBAL main (35) 0x30000007f0, rel: 0x7f0
+ 71: NOTYPE WEAK _Jv_RegisterClasses (0) 0
+ 72: OBJECT GLOBAL __TMC_END__ (0) 0x3000201040
+ 73: NOTYPE WEAK _ITM_registerTMCloneTable (0) 0
+ 74: FUNC WEAK __cxa_finalize@@GLIBC_2.2.5 (0) 0
+ 75: FUNC GLOBAL _init (0) 0x3000000680, rel: 0x680
EOF
cat > testfile.dynsym.in <<\EOF
@@ -119,61 +201,122 @@ cat > testfile.dynsym.in <<\EOF
7: FUNC WEAK __cxa_finalize (0) 0
8: NOTYPE GLOBAL _edata (0) 0x20103c
9: NOTYPE GLOBAL _end (0) 0x201040
- 10: FUNC GLOBAL __libc_csu_init (137) 0x860
+ 10: FUNC GLOBAL __libc_csu_init (137) 0x860, rel: 0x860
11: NOTYPE GLOBAL __bss_start (0) 0x20103c
- 12: FUNC GLOBAL main (35) 0x7f0
- 13: FUNC GLOBAL __libc_csu_fini (2) 0x8f0
+ 12: FUNC GLOBAL main (35) 0x7f0, rel: 0x7f0
+ 13: FUNC GLOBAL __libc_csu_fini (2) 0x8f0, rel: 0x8f0
EOF
cat > testfile.minsym.in <<\EOF
0: NOTYPE LOCAL (0) 0
1: SECTION LOCAL (0) 0x238
- 2: FUNC LOCAL call_gmon_start (0) 0x4003bc
- 3: FUNC LOCAL __do_global_dtors_aux (0) 0x4003e0
- 4: FUNC LOCAL frame_dummy (0) 0x400450
- 5: FUNC LOCAL __do_global_ctors_aux (0) 0x400580
- 6: FUNC LOCAL foo (18) 0x400498
- 7: SECTION LOCAL (0) 0x400200
- 8: SECTION LOCAL (0) 0x40021c
- 9: SECTION LOCAL (0) 0x40023c
- 10: SECTION LOCAL (0) 0x400260
- 11: SECTION LOCAL (0) 0x400280
- 12: SECTION LOCAL (0) 0x4002c8
- 13: SECTION LOCAL (0) 0x400300
- 14: SECTION LOCAL (0) 0x400308
- 15: SECTION LOCAL (0) 0x400328
- 16: SECTION LOCAL (0) 0x400340
- 17: SECTION LOCAL (0) 0x400358
- 18: SECTION LOCAL (0) 0x400370
- 19: SECTION LOCAL (0) 0x400390
- 20: SECTION LOCAL (0) 0x4005b8
- 21: SECTION LOCAL (0) 0x4005c8
- 22: SECTION LOCAL (0) 0x4005d8
- 23: SECTION LOCAL (0) 0x400610
- 24: SECTION LOCAL (0) 0x6006d0
- 25: SECTION LOCAL (0) 0x6006e0
- 26: SECTION LOCAL (0) 0x6006f0
- 27: SECTION LOCAL (0) 0x6006f8
- 28: SECTION LOCAL (0) 0x600888
- 29: SECTION LOCAL (0) 0x600890
- 30: SECTION LOCAL (0) 0x6008b0
- 31: SECTION LOCAL (0) 0x6008c0
- 32: NOTYPE WEAK _ITM_deregisterTMCloneTable (0) 0
- 33: FUNC GLOBAL __libc_start_main (0) 0
- 34: NOTYPE WEAK __gmon_start__ (0) 0
- 35: NOTYPE WEAK _Jv_RegisterClasses (0) 0
- 36: NOTYPE WEAK _ITM_registerTMCloneTable (0) 0
- 37: FUNC WEAK __cxa_finalize (0) 0
- 38: NOTYPE GLOBAL _edata (0) 0x20103c
- 39: NOTYPE GLOBAL _end (0) 0x201040
- 40: FUNC GLOBAL __libc_csu_init (137) 0x860
- 41: NOTYPE GLOBAL __bss_start (0) 0x20103c
- 42: FUNC GLOBAL main (35) 0x7f0
- 43: FUNC GLOBAL __libc_csu_fini (2) 0x8f0
- 44: FUNC GLOBAL _start (0) 0x400390
- 45: FUNC GLOBAL bar (44) 0x4004aa
- 46: FUNC GLOBAL _fini (0) 0x4005b8
- 47: FUNC GLOBAL _init (0) 0x400358
+ 2: FUNC LOCAL deregister_tm_clones (0) 0x710, rel: 0x710
+ 3: FUNC LOCAL register_tm_clones (0) 0x740, rel: 0x740
+ 4: FUNC LOCAL __do_global_dtors_aux (0) 0x780, rel: 0x780
+ 5: OBJECT LOCAL __do_global_dtors_aux_fini_array_entry (0) 0x200dd8
+ 6: FUNC LOCAL frame_dummy (0) 0x7c0, rel: 0x7c0
+ 7: OBJECT LOCAL __frame_dummy_init_array_entry (0) 0x200dd0
+ 8: FUNC LOCAL foo (20) 0x814, rel: 0x814
+ 9: NOTYPE LOCAL __init_array_end (0) 0x200dd8
+ 10: NOTYPE LOCAL __init_array_start (0) 0x200dd0
+ 11: SECTION LOCAL (0) 0x238
+ 12: SECTION LOCAL (0) 0x254
+ 13: SECTION LOCAL (0) 0x274
+ 14: SECTION LOCAL (0) 0x298
+ 15: SECTION LOCAL (0) 0x2d8
+ 16: SECTION LOCAL (0) 0x428
+ 17: SECTION LOCAL (0) 0x4f2
+ 18: SECTION LOCAL (0) 0x510
+ 19: SECTION LOCAL (0) 0x530
+ 20: SECTION LOCAL (0) 0x638
+ 21: SECTION LOCAL (0) 0x680
+ 22: SECTION LOCAL (0) 0x6a0
+ 23: SECTION LOCAL (0) 0x6e0
+ 24: SECTION LOCAL (0) 0x8f4
+ 25: SECTION LOCAL (0) 0x900
+ 26: SECTION LOCAL (0) 0x904
+ 27: SECTION LOCAL (0) 0x948
+ 28: SECTION LOCAL (0) 0x200dd0
+ 29: SECTION LOCAL (0) 0x200dd8
+ 30: SECTION LOCAL (0) 0x200de0
+ 31: SECTION LOCAL (0) 0x200de8
+ 32: SECTION LOCAL (0) 0x200df0
+ 33: SECTION LOCAL (0) 0x200fc0
+ 34: SECTION LOCAL (0) 0x201000
+ 35: SECTION LOCAL (0) 0x201030
+ 36: SECTION LOCAL (0) 0x20103c
+ 37: NOTYPE WEAK _ITM_deregisterTMCloneTable (0) 0
+ 38: FUNC GLOBAL __libc_start_main (0) 0
+ 39: NOTYPE WEAK __gmon_start__ (0) 0
+ 40: NOTYPE WEAK _Jv_RegisterClasses (0) 0
+ 41: NOTYPE WEAK _ITM_registerTMCloneTable (0) 0
+ 42: FUNC WEAK __cxa_finalize (0) 0
+ 43: NOTYPE GLOBAL _edata (0) 0x20103c
+ 44: NOTYPE GLOBAL _end (0) 0x201040
+ 45: FUNC GLOBAL __libc_csu_init (137) 0x860, rel: 0x860
+ 46: NOTYPE GLOBAL __bss_start (0) 0x20103c
+ 47: FUNC GLOBAL main (35) 0x7f0, rel: 0x7f0
+ 48: FUNC GLOBAL __libc_csu_fini (2) 0x8f0, rel: 0x8f0
+ 49: FUNC GLOBAL bar (44) 0x828, rel: 0x828
+ 50: FUNC GLOBAL _fini (0) 0x8f4, rel: 0x8f4
+ 51: FUNC GLOBAL _start (0) 0x6e0, rel: 0x6e0
+ 52: FUNC GLOBAL _init (0) 0x680, rel: 0x680
+EOF
+
+cat > testfile.minsym_pl.in <<\EOF
+ 0: NOTYPE LOCAL (0) 0
+ 1: SECTION LOCAL (0) 0x3000000238
+ 2: FUNC LOCAL deregister_tm_clones (0) 0x3000000710, rel: 0x710
+ 3: FUNC LOCAL register_tm_clones (0) 0x3000000740, rel: 0x740
+ 4: FUNC LOCAL __do_global_dtors_aux (0) 0x3000000780, rel: 0x780
+ 5: OBJECT LOCAL __do_global_dtors_aux_fini_array_entry (0) 0x3000200dd8
+ 6: FUNC LOCAL frame_dummy (0) 0x30000007c0, rel: 0x7c0
+ 7: OBJECT LOCAL __frame_dummy_init_array_entry (0) 0x3000200dd0
+ 8: FUNC LOCAL foo (20) 0x3000000814, rel: 0x814
+ 9: NOTYPE LOCAL __init_array_end (0) 0x3000200dd8
+ 10: NOTYPE LOCAL __init_array_start (0) 0x3000200dd0
+ 11: SECTION LOCAL (0) 0x3000000238
+ 12: SECTION LOCAL (0) 0x3000000254
+ 13: SECTION LOCAL (0) 0x3000000274
+ 14: SECTION LOCAL (0) 0x3000000298
+ 15: SECTION LOCAL (0) 0x30000002d8
+ 16: SECTION LOCAL (0) 0x3000000428
+ 17: SECTION LOCAL (0) 0x30000004f2
+ 18: SECTION LOCAL (0) 0x3000000510
+ 19: SECTION LOCAL (0) 0x3000000530
+ 20: SECTION LOCAL (0) 0x3000000638
+ 21: SECTION LOCAL (0) 0x3000000680
+ 22: SECTION LOCAL (0) 0x30000006a0
+ 23: SECTION LOCAL (0) 0x30000006e0
+ 24: SECTION LOCAL (0) 0x30000008f4
+ 25: SECTION LOCAL (0) 0x3000000900
+ 26: SECTION LOCAL (0) 0x3000000904
+ 27: SECTION LOCAL (0) 0x3000000948
+ 28: SECTION LOCAL (0) 0x3000200dd0
+ 29: SECTION LOCAL (0) 0x3000200dd8
+ 30: SECTION LOCAL (0) 0x3000200de0
+ 31: SECTION LOCAL (0) 0x3000200de8
+ 32: SECTION LOCAL (0) 0x3000200df0
+ 33: SECTION LOCAL (0) 0x3000200fc0
+ 34: SECTION LOCAL (0) 0x3000201000
+ 35: SECTION LOCAL (0) 0x3000201030
+ 36: SECTION LOCAL (0) 0x300020103c
+ 37: NOTYPE WEAK _ITM_deregisterTMCloneTable (0) 0
+ 38: FUNC GLOBAL __libc_start_main (0) 0
+ 39: NOTYPE WEAK __gmon_start__ (0) 0
+ 40: NOTYPE WEAK _Jv_RegisterClasses (0) 0
+ 41: NOTYPE WEAK _ITM_registerTMCloneTable (0) 0
+ 42: FUNC WEAK __cxa_finalize (0) 0
+ 43: NOTYPE GLOBAL _edata (0) 0x300020103c
+ 44: NOTYPE GLOBAL _end (0) 0x3000201040
+ 45: FUNC GLOBAL __libc_csu_init (137) 0x3000000860, rel: 0x860
+ 46: NOTYPE GLOBAL __bss_start (0) 0x300020103c
+ 47: FUNC GLOBAL main (35) 0x30000007f0, rel: 0x7f0
+ 48: FUNC GLOBAL __libc_csu_fini (2) 0x30000008f0, rel: 0x8f0
+ 49: FUNC GLOBAL bar (44) 0x3000000828, rel: 0x828
+ 50: FUNC GLOBAL _fini (0) 0x30000008f4, rel: 0x8f4
+ 51: FUNC GLOBAL _start (0) 0x30000006e0, rel: 0x6e0
+ 52: FUNC GLOBAL _init (0) 0x3000000680, rel: 0x680
EOF
cat testfile.symtab.in \
@@ -182,6 +325,9 @@ cat testfile.symtab.in \
cat testfile.symtab.in \
| testrun_compare ${abs_builddir}/dwflsyms -e testfilebazdbg
+cat testfile.symtab_pl.in \
+ | testrun_compare ${abs_builddir}/dwflsyms -e testfilebazdbg_pl
+
cat testfile.dynsym.in \
| testrun_compare ${abs_builddir}/dwflsyms -e testfilebazdyn
@@ -191,16 +337,19 @@ cat testfile.symtab.in \
cat testfile.minsym.in \
| testrun_compare ${abs_builddir}/dwflsyms -e testfilebazmin
+cat testfile.minsym_pl.in \
+ | testrun_compare ${abs_builddir}/dwflsyms -e testfilebazmin_pl
+
testrun_compare ${abs_builddir}/dwflsyms -e testfilebasmin <<\EOF
0: NOTYPE LOCAL (0) 0
- 1: FUNC LOCAL foo (18) 0x400168
+ 1: FUNC LOCAL foo (18) 0x400168, rel: 0x400168
2: SECTION LOCAL (0) 0x400120
3: SECTION LOCAL (0) 0x400144
4: SECTION LOCAL (0) 0x4001c0
5: SECTION LOCAL (0) 0x600258
- 6: FUNC GLOBAL _start (21) 0x4001a8
- 7: FUNC GLOBAL main (33) 0x400144
- 8: FUNC GLOBAL bar (44) 0x40017a
+ 6: FUNC GLOBAL _start (21) 0x4001a8, rel: 0x4001a8
+ 7: FUNC GLOBAL main (33) 0x400144, rel: 0x400144
+ 8: FUNC GLOBAL bar (44) 0x40017a, rel: 0x40017a
EOF
exit 0
diff --git a/tests/run-readelf-s.sh b/tests/run-readelf-s.sh
index 4373b5f0..931516da 100755
--- a/tests/run-readelf-s.sh
+++ b/tests/run-readelf-s.sh
@@ -210,44 +210,49 @@ EOF
cat > testfile.minsym.in <<\EOF
-Symbol table [27] '.symtab' contains 35 entries:
- 31 local symbols String table: [28] '.strtab'
+Symbol table [28] '.symtab' contains 40 entries:
+ 36 local symbols String table: [29] '.strtab'
Num: Value Size Type Bind Vis Ndx Name
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UNDEF
- 1: 00000000004003bc 0 FUNC LOCAL DEFAULT 13 call_gmon_start
- 2: 00000000004003e0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux
- 3: 0000000000400450 0 FUNC LOCAL DEFAULT 13 frame_dummy
- 4: 0000000000400580 0 FUNC LOCAL DEFAULT 13 __do_global_ctors_aux
- 5: 0000000000400498 18 FUNC LOCAL DEFAULT 13 foo
- 6: 0000000000400200 0 SECTION LOCAL DEFAULT 1
- 7: 000000000040021c 0 SECTION LOCAL DEFAULT 2
- 8: 000000000040023c 0 SECTION LOCAL DEFAULT 3
- 9: 0000000000400260 0 SECTION LOCAL DEFAULT 4
- 10: 0000000000400280 0 SECTION LOCAL DEFAULT 5
- 11: 00000000004002c8 0 SECTION LOCAL DEFAULT 6
- 12: 0000000000400300 0 SECTION LOCAL DEFAULT 7
- 13: 0000000000400308 0 SECTION LOCAL DEFAULT 8
- 14: 0000000000400328 0 SECTION LOCAL DEFAULT 9
- 15: 0000000000400340 0 SECTION LOCAL DEFAULT 10
- 16: 0000000000400358 0 SECTION LOCAL DEFAULT 11
- 17: 0000000000400370 0 SECTION LOCAL DEFAULT 12
- 18: 0000000000400390 0 SECTION LOCAL DEFAULT 13
- 19: 00000000004005b8 0 SECTION LOCAL DEFAULT 14
- 20: 00000000004005c8 0 SECTION LOCAL DEFAULT 15
- 21: 00000000004005d8 0 SECTION LOCAL DEFAULT 16
- 22: 0000000000400610 0 SECTION LOCAL DEFAULT 17
- 23: 00000000006006d0 0 SECTION LOCAL DEFAULT 18
- 24: 00000000006006e0 0 SECTION LOCAL DEFAULT 19
- 25: 00000000006006f0 0 SECTION LOCAL DEFAULT 20
- 26: 00000000006006f8 0 SECTION LOCAL DEFAULT 21
- 27: 0000000000600888 0 SECTION LOCAL DEFAULT 22
- 28: 0000000000600890 0 SECTION LOCAL DEFAULT 23
- 29: 00000000006008b0 0 SECTION LOCAL DEFAULT 24
- 30: 00000000006008c0 0 SECTION LOCAL DEFAULT 25
- 31: 0000000000400390 0 FUNC GLOBAL DEFAULT 13 _start
- 32: 00000000004004aa 44 FUNC GLOBAL DEFAULT 13 bar
- 33: 00000000004005b8 0 FUNC GLOBAL DEFAULT 14 _fini
- 34: 0000000000400358 0 FUNC GLOBAL DEFAULT 11 _init
+ 1: 0000000000000710 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones
+ 2: 0000000000000740 0 FUNC LOCAL DEFAULT 13 register_tm_clones
+ 3: 0000000000000780 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux
+ 4: 0000000000200dd8 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry
+ 5: 00000000000007c0 0 FUNC LOCAL DEFAULT 13 frame_dummy
+ 6: 0000000000200dd0 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry
+ 7: 0000000000000814 20 FUNC LOCAL DEFAULT 13 foo
+ 8: 0000000000200dd8 0 NOTYPE LOCAL DEFAULT 18 __init_array_end
+ 9: 0000000000200dd0 0 NOTYPE LOCAL DEFAULT 18 __init_array_start
+ 10: 0000000000000238 0 SECTION LOCAL DEFAULT 1
+ 11: 0000000000000254 0 SECTION LOCAL DEFAULT 2
+ 12: 0000000000000274 0 SECTION LOCAL DEFAULT 3
+ 13: 0000000000000298 0 SECTION LOCAL DEFAULT 4
+ 14: 00000000000002d8 0 SECTION LOCAL DEFAULT 5
+ 15: 0000000000000428 0 SECTION LOCAL DEFAULT 6
+ 16: 00000000000004f2 0 SECTION LOCAL DEFAULT 7
+ 17: 0000000000000510 0 SECTION LOCAL DEFAULT 8
+ 18: 0000000000000530 0 SECTION LOCAL DEFAULT 9
+ 19: 0000000000000638 0 SECTION LOCAL DEFAULT 10
+ 20: 0000000000000680 0 SECTION LOCAL DEFAULT 11
+ 21: 00000000000006a0 0 SECTION LOCAL DEFAULT 12
+ 22: 00000000000006e0 0 SECTION LOCAL DEFAULT 13
+ 23: 00000000000008f4 0 SECTION LOCAL DEFAULT 14
+ 24: 0000000000000900 0 SECTION LOCAL DEFAULT 15
+ 25: 0000000000000904 0 SECTION LOCAL DEFAULT 16
+ 26: 0000000000000948 0 SECTION LOCAL DEFAULT 17
+ 27: 0000000000200dd0 0 SECTION LOCAL DEFAULT 18
+ 28: 0000000000200dd8 0 SECTION LOCAL DEFAULT 19
+ 29: 0000000000200de0 0 SECTION LOCAL DEFAULT 20
+ 30: 0000000000200de8 0 SECTION LOCAL DEFAULT 21
+ 31: 0000000000200df0 0 SECTION LOCAL DEFAULT 22
+ 32: 0000000000200fc0 0 SECTION LOCAL DEFAULT 23
+ 33: 0000000000201000 0 SECTION LOCAL DEFAULT 24
+ 34: 0000000000201030 0 SECTION LOCAL DEFAULT 25
+ 35: 000000000020103c 0 SECTION LOCAL DEFAULT 26
+ 36: 0000000000000828 44 FUNC GLOBAL DEFAULT 13 bar
+ 37: 00000000000008f4 0 FUNC GLOBAL DEFAULT 14 _fini
+ 38: 00000000000006e0 0 FUNC GLOBAL DEFAULT 13 _start
+ 39: 0000000000000680 0 FUNC GLOBAL DEFAULT 11 _init
EOF
cat testfile.dynsym.in testfile.symtab.in \
diff --git a/tests/testfilebazdbg_pl.bz2 b/tests/testfilebazdbg_pl.bz2
new file mode 100755
index 00000000..9e06a806
--- /dev/null
+++ b/tests/testfilebazdbg_pl.bz2
Binary files differ
diff --git a/tests/testfilebazmdb.bz2 b/tests/testfilebazmdb.bz2
index c486365c..561eca11 100755
--- a/tests/testfilebazmdb.bz2
+++ b/tests/testfilebazmdb.bz2
Binary files differ
diff --git a/tests/testfilebazmin.bz2 b/tests/testfilebazmin.bz2
index f7286d62..12bcc6b5 100755
--- a/tests/testfilebazmin.bz2
+++ b/tests/testfilebazmin.bz2
Binary files differ
diff --git a/tests/testfilebazmin_pl.bz2 b/tests/testfilebazmin_pl.bz2
new file mode 100755
index 00000000..73cef4ae
--- /dev/null
+++ b/tests/testfilebazmin_pl.bz2
Binary files differ