]> git.ipfire.org Git - thirdparty/elfutils.git/commitdiff
tests: Fix broken dwflsyms tests, extend test and add prelink tests.
authorMark Wielaard <mjw@redhat.com>
Fri, 15 Nov 2013 23:11:38 +0000 (00:11 +0100)
committerMark Wielaard <mjw@redhat.com>
Fri, 15 Nov 2013 23:25:33 +0000 (00:25 +0100)
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
tests/Makefile.am
tests/dwflsyms.c
tests/run-dwflsyms.sh
tests/run-readelf-s.sh
tests/testfilebazdbg_pl.bz2 [new file with mode: 0755]
tests/testfilebazmdb.bz2
tests/testfilebazmin.bz2
tests/testfilebazmin_pl.bz2 [new file with mode: 0755]

index 5ebc1bd457013a555637ee226247417569ce31fa..9461287a75c4b7f36b1b0f18a735d351a54b44d8 100644 (file)
@@ -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.
index bc97523b8343f9a818fca81cd5d8dd00d7f38ae0..e9cf950c1029b19183ca2dfc665d93067ac9f117 100644 (file)
@@ -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 \
index cae3fbeac0555ef092f1181bbace7bef3feaff01..55f2653c6967ab767be7807e4b6f4c34365b8ae2 100644 (file)
@@ -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;
index c440bf7384a43de4bccbaf79e424af90adcab403..a425277cf5afe120c1b729bbc96d91a458381d0b 100755 (executable)
 
 . $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
index 4373b5f000a7537284327426ed2dd92da42a6477..931516da1d255db2778dec5c2a748731bd7e3cd7 100755 (executable)
@@ -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 (executable)
index 0000000..9e06a80
Binary files /dev/null and b/tests/testfilebazdbg_pl.bz2 differ
index c486365c29897620500da97b570df091d009daf4..561eca117439a8f6a88afdbfc74c026639fc9645 100755 (executable)
Binary files a/tests/testfilebazmdb.bz2 and b/tests/testfilebazmdb.bz2 differ
index f7286d62cab8a93864e421f9994c168875940f8b..12bcc6b5f8388b71aca0b24360e24208ba23f0a6 100755 (executable)
Binary files a/tests/testfilebazmin.bz2 and b/tests/testfilebazmin.bz2 differ
diff --git a/tests/testfilebazmin_pl.bz2 b/tests/testfilebazmin_pl.bz2
new file mode 100755 (executable)
index 0000000..73cef4a
Binary files /dev/null and b/tests/testfilebazmin_pl.bz2 differ