This is the mail archive of the elfutils-devel@sourceware.org mailing list for the elfutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[COMMITTED] 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>
---
 tests/ChangeLog             |   12 ++
 tests/Makefile.am           |    1 +
 tests/dwflsyms.c            |    7 +-
 tests/run-dwflsyms.sh       |  281 +++++++++++++++++++++++++++++++++----------
 tests/run-readelf-s.sh      |   77 +++++++------
 tests/testfilebazdbg_pl.bz2 |  Bin 0 -> 2589 bytes
 tests/testfilebazmdb.bz2    |  Bin 3259 -> 3313 bytes
 tests/testfilebazmin.bz2    |  Bin 3194 -> 3323 bytes
 tests/testfilebazmin_pl.bz2 |  Bin 0 -> 3749 bytes
 9 files changed, 275 insertions(+), 103 deletions(-)
 create mode 100755 tests/testfilebazdbg_pl.bz2
 create mode 100755 tests/testfilebazmin_pl.bz2

diff --git a/tests/ChangeLog b/tests/ChangeLog
index 5ebc1bd..9461287 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 bc97523..e9cf950 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 cae3fbe..55f2653 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 c440bf7..a425277 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 4373b5f..931516d 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 0000000000000000000000000000000000000000..9e06a806be86f6f942569dd48b5834c67a7721f6
GIT binary patch
literal 2589
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
J2UmS#{|9Rol(a)b5|

literal 0
HcmV?d00001

diff --git a/tests/testfilebazmdb.bz2 b/tests/testfilebazmdb.bz2
index c486365c29897620500da97b570df091d009daf4..561eca117439a8f6a88afdbfc74c026639fc9645 100755
GIT binary patch
literal 3313
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

literal 3259
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

diff --git a/tests/testfilebazmin.bz2 b/tests/testfilebazmin.bz2
index f7286d62cab8a93864e421f9994c168875940f8b..12bcc6b5f8388b71aca0b24360e24208ba23f0a6 100755
GIT binary patch
literal 3323
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
FD(a)bjx3!(r3

literal 3194
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
YFHEmee7v9kN$r3XDOkj%4=Mou10XZjod5s;

diff --git a/tests/testfilebazmin_pl.bz2 b/tests/testfilebazmin_pl.bz2
new file mode 100755
index 0000000000000000000000000000000000000000..73cef4ae04bc9d5d2223063c50bcdd9557a619c9
GIT binary patch
literal 3749
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
PPyZKkML1B9$EUv*yQ|o7

literal 0
HcmV?d00001

-- 
1.7.1


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]