commit 948af3ae916bbfc979b879a12e5b6c9284019f5e
Author: Modestas Vainius <modestas@vainius.eu>
Date:   Sat Jun 20 01:26:15 2009 +0300

    Do not choke on empty tag specs.
    
    Signed-off-by: Modestas Vainius <modestas@vainius.eu>

diff --git a/scripts/Dpkg/Shlibs/Symbol.pm b/scripts/Dpkg/Shlibs/Symbol.pm
index 953e88a..557f46b 100644
--- a/scripts/Dpkg/Shlibs/Symbol.pm
+++ b/scripts/Dpkg/Shlibs/Symbol.pm
@@ -56,7 +56,7 @@ sub clone {
 sub parse_tagspec {
     my ($self, $tagspec) = @_;
 
-    if ($tagspec =~ /^\((.*?)\)(.*)$/) {
+    if ($tagspec =~ /^\((.*?)\)(.*)$/ && $1) {
 	# (tag1=t1 value|tag2|...|tagN=tNp)
 	# Symbols ()|= cannot appear in the tag names and values
 	my $tagspec = $1;

commit c38ecc2ed487c11e45203ae9d71263bff02d70b0
Author: Modestas Vainius <modestas@vainius.eu>
Date:   Fri Jun 19 14:41:50 2009 +0300

    Dump symbols sorted by symbol template rather than name.
    
    Whether symbol is quoted or not is now stored in its own symbol_quoted field to
    prevent quotes from influencing sort order. Sorting by symbol_templ enables
    consistent sorting across different arches if symbol name after post-processing
    depends on the arch.
    
    Signed-off-by: Modestas Vainius <modestas@vainius.eu>

diff --git a/scripts/Dpkg/Shlibs/Symbol.pm b/scripts/Dpkg/Shlibs/Symbol.pm
index 5c15188..953e88a 100644
--- a/scripts/Dpkg/Shlibs/Symbol.pm
+++ b/scripts/Dpkg/Shlibs/Symbol.pm
@@ -82,6 +82,7 @@ sub parse {
     my ($self, $symbolspec) = @_;
     my $symbol;
     my $symbol_templ;
+    my $symbol_quoted;
     my $rest;
 
     if (defined($symbol = $self->parse_tagspec($symbolspec))) {
@@ -90,7 +91,8 @@ sub parse {
 
 	# If the tag specification exists symbol name template might be quoted too
 	if ($symbol =~ /^(['"])/ && $symbol =~ /^($1)(.*?)$1(.*)$/) {
-	    $symbol_templ = $1 . $2 . $1;
+	    $symbol_quoted = $1;
+	    $symbol_templ = $2;
 	    $symbol = $2;
 	    $rest = $3;
 	} else {
@@ -113,6 +115,7 @@ sub parse {
     }
     $self->{symbol} = $symbol;
     $self->{symbol_templ} = $symbol_templ;
+    $self->{symbol_quoted} = $symbol_quoted if ($symbol_quoted);
 
     # Now parse "the rest" (minver and dep_id)
     if ($rest =~ /^\s(\S+)(?:\s(\d+))?/) {
@@ -131,8 +134,11 @@ sub process_tags {
 }
 
 sub get_symbolname {
-    my $self = shift;
-    return $self->{symbol};
+    return $_[0]->{symbol};
+}
+
+sub get_symboltempl {
+    return $_[0]->{symbol_templ} || $_[0]->{symbol};
 }
 
 sub get_wildcard_version {
@@ -221,9 +227,12 @@ sub get_symbolspec {
     my $spec = "";
     $spec .= "#MISSING: $self->{deprecated}#" if $self->{deprecated};
     $spec .= " ";
-    $spec .= $self->get_tagspec() if ($template_mode);
-    $spec .= ($template_mode && $self->{symbol_templ} && $self->has_tags()) ?
-	$self->{symbol_templ} : $self->get_symbolname();
+    if ($template_mode && $self->has_tags()) {
+	$spec .= sprintf('%s%3$s%s%3$s', $self->get_tagspec(),
+	    $self->get_symboltempl(), $self->{symbol_quoted} || "");
+    } else {
+	$spec .= $self->get_symbolname();
+    }
     $spec .= " $self->{minver}";
     $spec .= " $self->{dep_id}" if $self->{dep_id};
     return $spec;
diff --git a/scripts/Dpkg/Shlibs/SymbolFile.pm b/scripts/Dpkg/Shlibs/SymbolFile.pm
index 8fed500..51cc879 100644
--- a/scripts/Dpkg/Shlibs/SymbolFile.pm
+++ b/scripts/Dpkg/Shlibs/SymbolFile.pm
@@ -240,7 +240,9 @@ sub dump {
             $value =~ s/#PACKAGE#/$opts{package}/g if exists $opts{package};
 	    print $fh "* $field: $value\n";
         }
-	foreach my $sym (sort keys %{$self->{objects}{$soname}{syms}}) {
+	my $syms = $self->{objects}{$soname}{syms};
+	foreach my $sym (sort { $syms->{$a}->get_symboltempl() cmp $syms->{$b}->get_symboltempl() }
+	                      keys %$syms) {
 	    my $info = $self->{objects}{$soname}{syms}{$sym};
 	    next if $info->{deprecated} and not $opts{with_deprecated};
 	    # Do not dump symbols from foreign arch unless dumping a template.
diff --git a/scripts/dpkg-gensymbols.pl b/scripts/dpkg-gensymbols.pl
index 916d358..30905f1 100755
--- a/scripts/dpkg-gensymbols.pl
+++ b/scripts/dpkg-gensymbols.pl
@@ -242,7 +242,7 @@ if ($compare) {
 	    $list = "\n";
 	    my $cur_soname = "";
 	    foreach my $sym (sort { $a->{soname} cmp $b->{soname} or
-				    $a->get_symbolname() cmp $b->get_symbolname() } @syms) {
+				    $a->get_symboltempl() cmp $b->get_symboltempl() } @syms) {
 		if ($cur_soname ne $sym->{soname}) {
 		    $list .= $sym->{soname} . "\n";
 		    $cur_soname = $sym->{soname};
diff --git a/scripts/t/200_Dpkg_Shlibs.t b/scripts/t/200_Dpkg_Shlibs.t
index 08273da..99cfe09 100644
--- a/scripts/t/200_Dpkg_Shlibs.t
+++ b/scripts/t/200_Dpkg_Shlibs.t
@@ -303,8 +303,8 @@ my $symbol21 = $tags_obj_amd64->get_symbol('symbol21_amd64@Base');
 $tags_obj_i386->add_dynamic_symbol($symbol21);
 $sym_file->merge_symbols($tags_obj_i386, '100.MISSING');
 $sym = $sym_file->lookup_symbol('symbol21_amd64@Base', ['libsymboltags.so.1']);
-is_deeply($sym, Dpkg::Shlibs::Symbol->new( 'symbol' => 'symbol21_amd64@Base', 'symbol_templ' => '\'symbol21_amd64@Base\'',
-		  'minver' => '2.1', 'dep_id' => 0, 'deprecated' => 0,
+is_deeply($sym, Dpkg::Shlibs::Symbol->new( 'symbol' => 'symbol21_amd64@Base', 'symbol_templ' => 'symbol21_amd64@Base',
+		  'symbol_quoted' => "'", 'minver' => '2.1', 'dep_id' => 0, 'deprecated' => 0,
 		  'depends' => 'libsymboltags1 #MINVER#', 'soname' => 'libsymboltags.so.1' ),
 	    'symbol appears on foreign arch, arch tag should be removed');
 @tmp = map { $_->get_symbolname() } $sym_file->get_new_symbols($sym_file_dup);
@@ -324,7 +324,7 @@ is_deeply($sym, Dpkg::Shlibs::Symbol->new( 'symbol' => 'symbol22_i386@Base', 'sy
 	    'disappeared arch specific symbol gets deprecated');
 $sym = $sym_file->lookup_symbol('symbol41_i386_and_optional@Base', ['libsymboltags.so.1'], 1);
 is_deeply($sym, Dpkg::Shlibs::Symbol->new( 'symbol' => 'symbol41_i386_and_optional@Base',
-		  'symbol_templ' => '"symbol41_i386_and_optional@Base"',
+		  'symbol_templ' => 'symbol41_i386_and_optional@Base', 'symbol_quoted' => '"',
 		  'minver' => '4.1', 'dep_id' => 0, 'deprecated' => '100.MISSING',
 		  'depends' => 'libsymboltags1 #MINVER#', 'soname' => 'libsymboltags.so.1',
 		  'tags' => { 'arch' => 'i386', 'optional' => 'reason' }, 'tagorder' => [ 'arch', 'optional' ] ),
@@ -342,8 +342,8 @@ is_deeply($sym, Dpkg::Shlibs::Symbol->new( 'symbol' => 'symbol2_fake1@Base',
 	    'symbols from #included file inherits tags');
 $sym = $sym_file->lookup_symbol('symbol41_i386_and_optional@Base', ['libsymboltags.so.1']);
 is_deeply($sym, Dpkg::Shlibs::Symbol->new( 'symbol' => 'symbol41_i386_and_optional@Base',
-		  'symbol_templ' => '"symbol41_i386_and_optional@Base"', 'minver' => '4.1', 
-		  'depends' => 'libsymboltags1 #MINVER#', 'soname' => 'libsymboltags.so.1',
+		  'symbol_templ' => 'symbol41_i386_and_optional@Base', symbol_quoted => '"',
+		  'minver' => '4.1', 'depends' => 'libsymboltags1 #MINVER#', 'soname' => 'libsymboltags.so.1',
 		  'tags' => { 'optional' => 'reason', 't' => 'v', 'arch' => 'i386' },
 		  'tagorder' => [ 'optional', 't', 'arch' ] ),
 	    'symbols in #included file can override tag values');

commit 197db631319f01453548bbdca87930d6a8a78cbe
Author: Modestas Vainius <modestas@vainius.eu>
Date:   Fri Jun 19 12:26:05 2009 +0300

    Add a target to update objdumps and update objdump.tags-*
    
    The target under scripts/Makefile is named update-objdumps.
    
    Signed-off-by: Modestas Vainius <modestas@vainius.eu>

diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index 1d6e85b..1f87692 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -186,7 +186,17 @@ clean-local:
 mkdir_t_tmp:
 	$(mkdir_p) t.tmp
 
-check: $(TEST_FILES) $(wildcard $(srcdir)/t/200_Dpkg_Shlibs/ld.so.conf*) | mkdir_t_tmp
+check: $(TEST_FILES) $(wildcard $(srcdir)/t/200_Dpkg_Shlibs/ld.so.conf*) mkdir_t_tmp
 # a bit hacky...
 	cp -dRl $(srcdir)/t/200_Dpkg_Shlibs/ld.so.conf* t.tmp/
 	PATH="$(top_builddir)/src:$(top_builddir)/scripts:$(PATH)" srcdir=$(srcdir) PERL5LIB=$(srcdir) DPKG_DATADIR=$(srcdir)/.. PERL_DL_NONLAZY=1 $(PERL) -I$(srcdir) "-MExtUtils::Command::MM" "-e" "test_harness($(TEST_VERBOSE), '.')" $(TEST_FILES)
+
+objdump_lib_name = lib$(shell basename $@).so
+$(srcdir)/t/200_Dpkg_Shlibs/objdump.tags-amd64 $(srcdir)/t/200_Dpkg_Shlibs/objdump.tags-i386: $(srcdir)/t/200_Dpkg_Shlibs/symboltags.c
+	$(CC) $(CFLAGS) -shared -fPIC -Wl,-soname -Wl,libsymboltags.so.1 $< \
+	  $(if $(findstring amd64,$@),-DAMD64,) -o $(objdump_lib_name)
+	objdump -w -f -p -T -R $(objdump_lib_name) | sed 's/$(objdump_lib_name)/libsymboltags.so.1/g' > $@
+	rm -f $(objdump_lib_name)
+
+update-objdumps .PHONY: $(srcdir)/t/200_Dpkg_Shlibs/objdump.tags-amd64
+update-objdumps .PHONY: $(srcdir)/t/200_Dpkg_Shlibs/objdump.tags-i386
diff --git a/scripts/t/200_Dpkg_Shlibs/objdump.tags-amd64 b/scripts/t/200_Dpkg_Shlibs/objdump.tags-amd64
index 00f259e..8e2207d 100644
--- a/scripts/t/200_Dpkg_Shlibs/objdump.tags-amd64
+++ b/scripts/t/200_Dpkg_Shlibs/objdump.tags-amd64
@@ -2,41 +2,41 @@
 libsymboltags.so.1:     file format elf64-x86-64
 architecture: i386:x86-64, flags 0x00000150:
 HAS_SYMS, DYNAMIC, D_PAGED
-start address 0x0000000000000590
+start address 0x0000000000000500
 
 Program Header:
     LOAD off    0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**21
-         filesz 0x00000000000007f4 memsz 0x00000000000007f4 flags r-x
-    LOAD off    0x00000000000007f8 vaddr 0x00000000002007f8 paddr 0x00000000002007f8 align 2**21
+         filesz 0x0000000000000714 memsz 0x0000000000000714 flags r-x
+    LOAD off    0x0000000000000718 vaddr 0x0000000000200718 paddr 0x0000000000200718 align 2**21
          filesz 0x0000000000000208 memsz 0x0000000000000218 flags rw-
- DYNAMIC off    0x0000000000000820 vaddr 0x0000000000200820 paddr 0x0000000000200820 align 2**3
+ DYNAMIC off    0x0000000000000740 vaddr 0x0000000000200740 paddr 0x0000000000200740 align 2**3
          filesz 0x00000000000001a0 memsz 0x00000000000001a0 flags rw-
-EH_FRAME off    0x00000000000006d8 vaddr 0x00000000000006d8 paddr 0x00000000000006d8 align 2**2
-         filesz 0x000000000000003c memsz 0x000000000000003c flags r--
+EH_FRAME off    0x0000000000000668 vaddr 0x0000000000000668 paddr 0x0000000000000668 align 2**2
+         filesz 0x000000000000002c memsz 0x000000000000002c flags r--
    STACK off    0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**3
          filesz 0x0000000000000000 memsz 0x0000000000000000 flags rw-
 
 Dynamic Section:
   NEEDED               libc.so.6
   SONAME               libsymboltags.so.1
-  INIT                 0x0000000000000550
-  FINI                 0x00000000000006c8
+  INIT                 0x00000000000004c0
+  FINI                 0x0000000000000658
   HASH                 0x0000000000000158
-  GNU_HASH             0x00000000000001b0
-  STRTAB               0x0000000000000380
-  SYMTAB               0x0000000000000200
-  STRSZ                0x0000000000000112
+  GNU_HASH             0x00000000000001a8
+  STRTAB               0x0000000000000340
+  SYMTAB               0x00000000000001f0
+  STRSZ                0x00000000000000c6
   SYMENT               0x0000000000000018
-  PLTGOT               0x00000000002009d8
+  PLTGOT               0x00000000002008f8
   PLTRELSZ             0x0000000000000018
   PLTREL               0x0000000000000007
-  JMPREL               0x0000000000000538
-  RELA                 0x00000000000004d8
+  JMPREL               0x00000000000004a8
+  RELA                 0x0000000000000448
   RELASZ               0x0000000000000060
   RELAENT              0x0000000000000018
-  VERNEED              0x00000000000004b8
+  VERNEED              0x0000000000000428
   VERNEEDNUM           0x0000000000000001
-  VERSYM               0x0000000000000492
+  VERSYM               0x0000000000000406
   RELACOUNT            0x0000000000000001
 
 Version References:
@@ -44,27 +44,27 @@ Version References:
     0x09691a75 0x00 02 GLIBC_2.2.5
 
 DYNAMIC SYMBOL TABLE:
-0000000000000550 l    d  .init	0000000000000000              .init
+00000000000004c0 l    d  .init	0000000000000000              .init
 0000000000000000  w   D  *UND*	0000000000000000              __gmon_start__
 0000000000000000  w   D  *UND*	0000000000000000              _Jv_RegisterClasses
 0000000000000000  w   DF *UND*	0000000000000000  GLIBC_2.2.5 __cxa_finalize
-000000000000066a g    DF .text	0000000000000006  Base        symbol21_amd64
-000000000000067c g    DF .text	0000000000000006  Base        symbol31_randomtag
-0000000000200a10 g    D  *ABS*	0000000000000000  Base        _end
-0000000000200a00 g    D  *ABS*	0000000000000000  Base        _edata
-0000000000200a00 g    D  *ABS*	0000000000000000  Base        __bss_start
-0000000000000550 g    DF .init	0000000000000000  Base        _init
-00000000000006c8 g    DF .fini	0000000000000000  Base        _fini
-0000000000000664 g    DF .text	0000000000000006  Base        symbol11_optional
-0000000000000682 g    DF .text	0000000000000006  Base        symbol51_untagged
+00000000000005f0 g    DF .text	0000000000000002  Base        symbol21_amd64
+0000000000200930 g    D  *ABS*	0000000000000000  Base        _end
+0000000000200920 g    D  *ABS*	0000000000000000  Base        _edata
+0000000000200920 g    D  *ABS*	0000000000000000  Base        __bss_start
+00000000000004c0 g    DF .init	0000000000000000  Base        _init
+0000000000000658 g    DF .fini	0000000000000000  Base        _fini
+00000000000005e0 g    DF .text	0000000000000002  Base        symbol11_optional
+0000000000000600 g    DF .text	0000000000000002  Base        symbol31_randomtag
+0000000000000610 g    DF .text	0000000000000002  Base        symbol51_untagged
 
 
 DYNAMIC RELOCATION RECORDS
 OFFSET           TYPE              VALUE 
-00000000002009f8 R_X86_64_RELATIVE  *ABS*+0x00000000002009f8
-00000000002009c0 R_X86_64_GLOB_DAT  __gmon_start__
-00000000002009c8 R_X86_64_GLOB_DAT  _Jv_RegisterClasses
-00000000002009d0 R_X86_64_GLOB_DAT  __cxa_finalize
-00000000002009f0 R_X86_64_JUMP_SLOT  __cxa_finalize
+0000000000200918 R_X86_64_RELATIVE  *ABS*+0x0000000000200918
+00000000002008e0 R_X86_64_GLOB_DAT  __gmon_start__
+00000000002008e8 R_X86_64_GLOB_DAT  _Jv_RegisterClasses
+00000000002008f0 R_X86_64_GLOB_DAT  __cxa_finalize
+0000000000200910 R_X86_64_JUMP_SLOT  __cxa_finalize
 
 
diff --git a/scripts/t/200_Dpkg_Shlibs/objdump.tags-i386 b/scripts/t/200_Dpkg_Shlibs/objdump.tags-i386
index a23b649..5231b8e 100644
--- a/scripts/t/200_Dpkg_Shlibs/objdump.tags-i386
+++ b/scripts/t/200_Dpkg_Shlibs/objdump.tags-i386
@@ -2,41 +2,41 @@
 libsymboltags.so.1:     file format elf64-x86-64
 architecture: i386:x86-64, flags 0x00000150:
 HAS_SYMS, DYNAMIC, D_PAGED
-start address 0x00000000000005d0
+start address 0x0000000000000530
 
 Program Header:
     LOAD off    0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**21
-         filesz 0x000000000000085c memsz 0x000000000000085c flags r-x
-    LOAD off    0x0000000000000860 vaddr 0x0000000000200860 paddr 0x0000000000200860 align 2**21
+         filesz 0x0000000000000774 memsz 0x0000000000000774 flags r-x
+    LOAD off    0x0000000000000778 vaddr 0x0000000000200778 paddr 0x0000000000200778 align 2**21
          filesz 0x0000000000000208 memsz 0x0000000000000218 flags rw-
- DYNAMIC off    0x0000000000000888 vaddr 0x0000000000200888 paddr 0x0000000000200888 align 2**3
+ DYNAMIC off    0x00000000000007a0 vaddr 0x00000000002007a0 paddr 0x00000000002007a0 align 2**3
          filesz 0x00000000000001a0 memsz 0x00000000000001a0 flags rw-
-EH_FRAME off    0x0000000000000718 vaddr 0x0000000000000718 paddr 0x0000000000000718 align 2**2
-         filesz 0x0000000000000044 memsz 0x0000000000000044 flags r--
+EH_FRAME off    0x00000000000006a8 vaddr 0x00000000000006a8 paddr 0x00000000000006a8 align 2**2
+         filesz 0x0000000000000034 memsz 0x0000000000000034 flags r--
    STACK off    0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**3
          filesz 0x0000000000000000 memsz 0x0000000000000000 flags rw-
 
 Dynamic Section:
   NEEDED               libc.so.6
   SONAME               libsymboltags.so.1
-  INIT                 0x0000000000000590
-  FINI                 0x0000000000000708
+  INIT                 0x00000000000004f8
+  FINI                 0x0000000000000698
   HASH                 0x0000000000000158
-  GNU_HASH             0x00000000000001b0
-  STRTAB               0x00000000000003a8
-  SYMTAB               0x0000000000000210
-  STRSZ                0x000000000000012a
+  GNU_HASH             0x00000000000001a8
+  STRTAB               0x0000000000000360
+  SYMTAB               0x00000000000001f8
+  STRSZ                0x00000000000000e0
   SYMENT               0x0000000000000018
-  PLTGOT               0x0000000000200a40
+  PLTGOT               0x0000000000200958
   PLTRELSZ             0x0000000000000018
   PLTREL               0x0000000000000007
-  JMPREL               0x0000000000000578
-  RELA                 0x0000000000000518
+  JMPREL               0x00000000000004e0
+  RELA                 0x0000000000000480
   RELASZ               0x0000000000000060
   RELAENT              0x0000000000000018
-  VERNEED              0x00000000000004f8
+  VERNEED              0x0000000000000460
   VERNEEDNUM           0x0000000000000001
-  VERSYM               0x00000000000004d2
+  VERSYM               0x0000000000000440
   RELACOUNT            0x0000000000000001
 
 Version References:
@@ -44,28 +44,28 @@ Version References:
     0x09691a75 0x00 02 GLIBC_2.2.5
 
 DYNAMIC SYMBOL TABLE:
-0000000000000590 l    d  .init	0000000000000000              .init
+00000000000004f8 l    d  .init	0000000000000000              .init
 0000000000000000  w   D  *UND*	0000000000000000              __gmon_start__
 0000000000000000  w   D  *UND*	0000000000000000              _Jv_RegisterClasses
 0000000000000000  w   DF *UND*	0000000000000000  GLIBC_2.2.5 __cxa_finalize
-00000000000006bc g    DF .text	0000000000000006  Base        symbol31_randomtag
-0000000000200a78 g    D  *ABS*	0000000000000000  Base        _end
-0000000000200a68 g    D  *ABS*	0000000000000000  Base        _edata
-00000000000006aa g    DF .text	0000000000000006  Base        symbol22_i386
-0000000000200a68 g    D  *ABS*	0000000000000000  Base        __bss_start
-00000000000006c2 g    DF .text	0000000000000006  Base        symbol41_i386_and_optional
-0000000000000590 g    DF .init	0000000000000000  Base        _init
-0000000000000708 g    DF .fini	0000000000000000  Base        _fini
-00000000000006a4 g    DF .text	0000000000000006  Base        symbol11_optional
-00000000000006c8 g    DF .text	0000000000000006  Base        symbol51_untagged
+0000000000000640 g    DF .text	0000000000000002  Base        symbol41_i386_and_optional
+0000000000200990 g    D  *ABS*	0000000000000000  Base        _end
+0000000000200980 g    D  *ABS*	0000000000000000  Base        _edata
+0000000000000620 g    DF .text	0000000000000002  Base        symbol22_i386
+0000000000200980 g    D  *ABS*	0000000000000000  Base        __bss_start
+00000000000004f8 g    DF .init	0000000000000000  Base        _init
+0000000000000698 g    DF .fini	0000000000000000  Base        _fini
+0000000000000610 g    DF .text	0000000000000002  Base        symbol11_optional
+0000000000000630 g    DF .text	0000000000000002  Base        symbol31_randomtag
+0000000000000650 g    DF .text	0000000000000002  Base        symbol51_untagged
 
 
 DYNAMIC RELOCATION RECORDS
 OFFSET           TYPE              VALUE 
-0000000000200a60 R_X86_64_RELATIVE  *ABS*+0x0000000000200a60
-0000000000200a28 R_X86_64_GLOB_DAT  __gmon_start__
-0000000000200a30 R_X86_64_GLOB_DAT  _Jv_RegisterClasses
-0000000000200a38 R_X86_64_GLOB_DAT  __cxa_finalize
-0000000000200a58 R_X86_64_JUMP_SLOT  __cxa_finalize
+0000000000200978 R_X86_64_RELATIVE  *ABS*+0x0000000000200978
+0000000000200940 R_X86_64_GLOB_DAT  __gmon_start__
+0000000000200948 R_X86_64_GLOB_DAT  _Jv_RegisterClasses
+0000000000200950 R_X86_64_GLOB_DAT  __cxa_finalize
+0000000000200970 R_X86_64_JUMP_SLOT  __cxa_finalize
 
 
