Explorar o código

Fixed parsing of objdump's output on ia64

ia64 libraries tend to have more entries listed by objdump
with visibility attributes and no versions. This was unexpected
and ended up with the visibility being mistakenly used as symbol
version. This fixes that case and adds a corresponding
non-regression test.
Raphael Hertzog %!s(int64=19) %!d(string=hai) anos
pai
achega
90dfbd7eb3

+ 8 - 2
scripts/Dpkg/Shlibs/Objdump.pm

@@ -204,6 +204,7 @@ sub _parse {
 # 00069960  w   DF .text  0000001e  GLIBC_2.0   bcmp
 # 00000000  w   D  *UND*  00000000              _pthread_cleanup_pop_restore
 # 0000b788 g    DF .text  0000008e  Base        .protected xine_close
+# 0000b788 g    DF .text  0000008e              .hidden IA__g_free
 # |        ||||||| |      |         |           |
 # |        ||||||| |      |         Version str (.visibility) + Symbol name
 # |        ||||||| |      Alignment
@@ -223,10 +224,15 @@ sub _parse {
 
 sub parse_dynamic_symbol {
     my ($self, $line) = @_;
-    my $vis = '(?:\s+(?:\.protected|\.hidden|\.internal|0x\S+))?';
-    if ($line =~ /^[0-9a-f]+ (.{7})\s+(\S+)\s+[0-9a-f]+\s+(\S+)?(?:$vis\s+(\S+))/) {
+    my $vis = '(?:\.protected|\.hidden|\.internal|0x\S+)';
+    if ($line =~ /^[0-9a-f]+ (.{7})\s+(\S+)\s+[0-9a-f]+\s+(\S+)?(?:(?:\s+$vis)?\s+(\S+))/) {
 
 	my ($flags, $sect, $ver, $name) = ($1, $2, $3, $4);
+
+	# Special case if version is missing but extra visibility
+	# attribute replaces it in the match
+	$ver = '' if defined($ver) and $ver =~ /^$vis$/; 
+
 	my $symbol = {
 		name => $name,
 		version => defined($ver) ? $ver : '',

+ 17 - 1
scripts/t/200_Dpkg_Shlibs.t

@@ -1,6 +1,6 @@
 # -*- mode: cperl;-*-
 
-use Test::More tests => 24;
+use Test::More tests => 25;
 
 use strict;
 use warnings;
@@ -119,3 +119,19 @@ is_deeply($sym, { 'minver' => '1.0', 'dep_id' => 1, 'deprecated' => 0,
 		  'depends' => 'libvirtualfake', 'soname' => 'libfake.so.1' }, 
 	    'overrides order with circular #include');
 
+# Check parsing of objdump output on ia64 (local symbols
+# without versions and with visibility attribute)
+$obj = Dpkg::Shlibs::Objdump::Object->new;
+
+open $objdump, '<', "t/200_Dpkg_Shlibs/objdump.glib-ia64"
+  or die "t/200_Dpkg_Shlibs/objdump.glib-ia64: $!";
+$obj->_parse($objdump);
+close $objdump;
+
+$sym = $obj->get_symbol('IA__g_free');
+is_deeply( $sym, { name => 'IA__g_free', version => '',
+		   soname => 'libglib-2.0.so.0', section => '.text', dynamic => 1,
+		   debug => '', type => 'F', weak => '',
+		   hidden => '', defined => 1 }, 
+		   'symbol with visibility without version' );
+

+ 347 - 0
scripts/t/200_Dpkg_Shlibs/objdump.glib-ia64

@@ -0,0 +1,347 @@
+
+/usr/lib/libglib-2.0.so.0:     file format elf64-little
+
+Program Header:
+    LOAD off    0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**16
+         filesz 0x0000000000158820 memsz 0x0000000000158820 flags r-x
+    LOAD off    0x0000000000158820 vaddr 0x0000000000168820 paddr 0x0000000000168820 align 2**16
+         filesz 0x0000000000001498 memsz 0x0000000000001a90 flags rw-
+ DYNAMIC off    0x0000000000158948 vaddr 0x0000000000168948 paddr 0x0000000000168948 align 2**3
+         filesz 0x00000000000001f0 memsz 0x00000000000001f0 flags rw-
+   STACK off    0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**3
+         filesz 0x0000000000000000 memsz 0x0000000000000000 flags rw-
+0x70000001 off    0x0000000000150e28 vaddr 0x0000000000150e28 paddr 0x0000000000150e28 align 2**3
+         filesz 0x00000000000079f8 memsz 0x00000000000079f8 flags r--
+
+Dynamic Section:
+  NEEDED      libc.so.6.1
+  SONAME      libglib-2.0.so.0
+  INIT        0x15070
+  FINI        0x106360
+  INIT_ARRAY  0x168820
+  INIT_ARRAYSZ 0x18
+  FINI_ARRAY  0x168838
+  FINI_ARRAYSZ 0x8
+  HASH        0x158
+  GNU_HASH    0x25c8
+  STRTAB      0xc4c0
+  SYMTAB      0x4a38
+  STRSZ       0x5deb
+  SYMENT      0x18
+  0x70000000  0x168dd8
+  PLTGOT      0x168dd8
+  PLTRELSZ    0xcd8
+  PLTREL      0x7
+  JMPREL      0x14398
+  RELA        0x12d18
+  RELASZ      0x1680
+  RELAENT     0x18
+  VERNEED     0x12ce8
+  VERNEEDNUM  0x1
+  VERSYM      0x122ac
+  RELACOUNT   0x60
+
+Version References:
+  required from libc.so.6.1:
+    0x0d696913 0x00 03 GLIBC_2.3
+    0x0d696912 0x00 02 GLIBC_2.2
+
+DYNAMIC SYMBOL TABLE:
+00000000000bbaa0 l    DF .text	00000000000006b0              .hidden IA__g_thread_pool_new
+000000000007b730 l    DF .text	0000000000000200              .hidden IA__g_option_group_free
+00000000000b2f30 l    DF .text	0000000000000060              .hidden IA__g_str_equal
+00000000000cd0c0 l    DF .text	0000000000000010              .hidden IA__g_direct_hash
+0000000000095660 l    DF .text	00000000000001d0              .hidden IA__g_scanner_warn
+00000000001062e0 l    DF .text	0000000000000080              .hidden __do_global_ctors_aux
+0000000000071fe0 l    DF .text	00000000000000f0              .hidden IA__g_free
+0000000000074a30 l    DF .text	0000000000000370              .hidden _g_log_fallback_handler
+0000000000077080 l    DF .text	0000000000000a20              .hidden IA__g_log_default_handler
+00000000000afc90 l    DF .text	0000000000000090              .hidden IA__g_str_hash
+0000000000095830 l    DF .text	00000000000001f0              .hidden IA__g_scanner_error
+00000000000d4d60 l    DF .text	0000000000000290              g_io_unix_get_flags
+00000000000d4a60 l    DF .text	0000000000000120              g_io_unix_set_flags
+00000000000d4b80 l    DF .text	0000000000000020              g_io_unix_free
+00000000000d4ba0 l    DF .text	00000000000000c0              g_io_unix_create_watch
+00000000000d4c60 l    DF .text	0000000000000100              g_io_unix_close
+00000000000d4ff0 l    DF .text	00000000000001f0              g_io_unix_seek
+00000000000d51e0 l    DF .text	0000000000000150              g_io_unix_write
+00000000000d5330 l    DF .text	0000000000000180              g_io_unix_read
+00000000000d4820 l    DF .text	0000000000000030              g_io_unix_finalize
+00000000000d4950 l    DF .text	0000000000000110              g_io_unix_dispatch
+00000000000d4850 l    DF .text	0000000000000080              g_io_unix_check
+00000000000d48d0 l    DF .text	0000000000000080              g_io_unix_prepare
+00000000000cd720 l    DF .text	0000000000000090              language_names_cache_free
+00000000000c89f0 l    DF .text	0000000000000090              charset_cache_free
+00000000000c20f0 l    DF .text	0000000000000050              interval_compare
+00000000000bb270 l    DF .text	0000000000000830              g_thread_pool_thread_proxy
+00000000000b3360 l    DF .text	0000000000000050              g_thread_fail
+00000000000b33b0 l    DF .text	00000000000000c0              gettime
+00000000000b8c70 l    DF .text	00000000000004a0              g_thread_cleanup
+00000000000b6790 l    DF .text	00000000000003b0              g_thread_create_proxy
+00000000000a37a0 l    DF .text	0000000000000320              private_thread_memory_cleanup
+000000000009a7d0 l    DF .text	00000000000000e0              iter_compare
+0000000000094c10 l    DF .text	0000000000000060              g_scanner_destroy_symbol_table_entry
+0000000000095f50 l    DF .text	00000000000001b0              g_scanner_msg_handler
+0000000000096100 l    DF .text	00000000000000a0              g_scanner_key_equal
+0000000000093210 l    DF .text	0000000000000080              g_scanner_key_hash
+0000000000093290 l    DF .text	00000000000000c0              g_scanner_foreach_internal
+0000000000092510 l    DF .text	00000000000004a0              interpolate_replacement
+000000000008cd60 l    DF .text	0000000000000050              literal_replacement
+000000000008cd00 l    DF .text	0000000000000060              free_interpolation_data
+0000000000089190 l    DF .text	0000000000000040              relation_delete_value_tuple
+0000000000089c20 l    DF .text	0000000000000030              g_relation_free_array
+0000000000089690 l    DF .text	0000000000000210              g_relation_delete_tuple
+00000000000895a0 l    DF .text	00000000000000f0              g_relation_select_tuple
+0000000000088c30 l    DF .text	00000000000000a0              g_relation_print_index
+0000000000088cd0 l    DF .text	0000000000000170              g_relation_print_one
+00000000000889a0 l    DF .text	0000000000000020              tuple_hash_2
+0000000000088940 l    DF .text	0000000000000060              tuple_equal_2
+000000000007bc50 l    DF .text	0000000000000050              dgettext_swapped
+00000000000787b0 l    DF .text	0000000000000040              g_node_find_func
+0000000000071570 l    DF .text	0000000000000200              profiler_try_realloc
+0000000000071770 l    DF .text	0000000000000150              profiler_try_malloc
+0000000000073410 l    DF .text	0000000000000190              profiler_calloc
+00000000000718c0 l    DF .text	00000000000001c0              profiler_free
+0000000000073380 l    DF .text	0000000000000090              profiler_realloc
+00000000000735a0 l    DF .text	0000000000000090              profiler_malloc
+0000000000071a80 l    DF .text	00000000000000d0              fallback_calloc
+000000000005a2b0 l    DF .text	0000000000000040              g_source_callback_get
+000000000005d650 l    DF .text	00000000000000e0              g_source_callback_unref
+000000000005a290 l    DF .text	0000000000000020              g_source_callback_ref
+000000000005a340 l    DF .text	00000000000000c0              g_idle_dispatch
+000000000005a330 l    DF .text	0000000000000010              g_idle_check
+000000000005a310 l    DF .text	0000000000000020              g_idle_prepare
+000000000005a400 l    DF .text	00000000000000c0              g_child_watch_dispatch
+000000000005a5c0 l    DF .text	0000000000000020              g_child_watch_check
+000000000005a5e0 l    DF .text	0000000000000030              g_child_watch_prepare
+0000000000060390 l    DF .text	0000000000000160              g_timeout_dispatch
+00000000000604f0 l    DF .text	00000000000000f0              g_timeout_check
+00000000000605e0 l    DF .text	0000000000000310              g_timeout_prepare
+000000000005cc20 l    DF .text	0000000000000030              g_main_dispatch_free
+000000000005b130 l    DF .text	00000000000000b0              g_child_watch_signal_handler
+00000000000619f0 l    DF .text	00000000000002e0              child_watch_helper_thread
+000000000004d830 l    DF .text	00000000000000b0              g_key_file_key_value_pair_free
+0000000000041860 l    DF .text	0000000000000090              default_finalize_hook
+000000000002b370 l    DF .text	0000000000000090              filename_charset_cache_free
+000000000001fe80 l    DF .text	0000000000000440              text_raw_cb
+0000000000020660 l    DF .text	0000000000000480              end_element_raw_cb
+0000000000026110 l    DF .text	0000000000001cf0              start_element_raw_cb
+000000000001e790 l    DF .text	0000000000000060              parse_data_free
+000000000001e6e0 l    DF .text	00000000000000b0              bookmark_app_info_free
+000000000001e960 l    DF .text	0000000000000260              bookmark_item_free
+000000000001c300 l    DF .text	0000000000000020              stack_trace_sigchld
+0000000000019a00 l    DF .text	0000000000000070              g_async_queue_invert_compare
+0000000000016be0 l    DF .text	0000000000000080              __do_jv_register_classes
+0000000000016b20 l    DF .text	00000000000000b0              __do_global_dtors_aux
+0000000000016aa0 l    DF .text	0000000000000070              gmon_initializer
+0000000000000000      DF *UND*	0000000000000370  GLIBC_2.2   getpwuid
+0000000000000000      DF *UND*	0000000000000550  GLIBC_2.2   freopen
+0000000000000000      DF *UND*	0000000000000050  GLIBC_2.2   __strtod_internal
+0000000000000000      DF *UND*	0000000000000240  GLIBC_2.2   feof
+0000000000000000      DF *UND*	0000000000000450  GLIBC_2.2   localeconv
+0000000000000000      DF *UND*	00000000000001e0  GLIBC_2.2   strcpy
+0000000000000000      DF *UND*	0000000000000200  GLIBC_2.2   raise
+0000000000000000      DO *UND*	0000000000000008  GLIBC_2.2   environ
+0000000000000000      DF *UND*	0000000000000030  GLIBC_2.2   getuid
+0000000000000000      DF *UND*	0000000000000180  GLIBC_2.2   waitpid
+0000000000000000      DF *UND*	0000000000000100  GLIBC_2.2   strcasecmp
+0000000000000000      DF *UND*	0000000000000060  GLIBC_2.2   select
+0000000000000000      DF *UND*	0000000000000110  GLIBC_2.2   closedir
+0000000000000000      DF *UND*	0000000000000440  GLIBC_2.2   fwrite
+0000000000000000      DF *UND*	00000000000001d0  GLIBC_2.2   rewinddir
+0000000000000000      DF *UND*	0000000000000060  GLIBC_2.2   close
+0000000000000000      DF *UND*	0000000000000280  GLIBC_2.2   strstr
+0000000000000000      DF *UND*	0000000000000080  GLIBC_2.2   time
+0000000000000000      DF *UND*	0000000000000520  GLIBC_2.2   fdopen
+0000000000000000  w   D  *UND*	0000000000000000              __gmon_start__
+0000000000000000  w   D  *UND*	0000000000000000              _Jv_RegisterClasses
+0000000000000000      DF *UND*	0000000000000050  GLIBC_2.2   wcsxfrm
+0000000000000000      DF *UND*	00000000000000c0  GLIBC_2.2   strncasecmp
+0000000000000000      DF *UND*	00000000000000d0  GLIBC_2.2   remove
+0000000000000000      DF *UND*	00000000000004f0  GLIBC_2.2   malloc
+0000000000000000      DF *UND*	0000000000000080  GLIBC_2.2   execve
+0000000000000000      DF *UND*	00000000000000b0  GLIBC_2.2   fprintf
+0000000000000000      DF *UND*	0000000000000200  GLIBC_2.2   setpwent
+0000000000000000      DF *UND*	0000000000000100  GLIBC_2.2   nl_langinfo
+0000000000000000      DF *UND*	0000000000000040  GLIBC_2.2   chdir
+0000000000000000      DF *UND*	0000000000000100  GLIBC_2.2   gethostname
+0000000000000000  w   DO *UND*	0000000000000008  GLIBC_2.2   _environ
+0000000000000000      DF *UND*	0000000000000040  GLIBC_2.2   rmdir
+0000000000000000      DF *UND*	0000000000000390  GLIBC_2.2   fputc
+0000000000000000      DF *UND*	0000000000000170  GLIBC_2.2   poll
+0000000000000000      DF *UND*	00000000000003e0  GLIBC_2.2   getcwd
+0000000000000000      DO *UND*	0000000000000008  GLIBC_2.2   stdin
+0000000000000000      DF *UND*	00000000000004f0  GLIBC_2.2   getpwnam_r
+0000000000000000      DF *UND*	0000000000000520  GLIBC_2.2   memmove
+0000000000000000      DF *UND*	0000000000000050  GLIBC_2.2   __strtoul_internal
+0000000000000000      DO *UND*	0000000000000008  GLIBC_2.2   stdout
+0000000000000000      DF *UND*	0000000000000050  GLIBC_2.2   strncmp
+0000000000000000      DF *UND*	0000000000000320  GLIBC_2.2   vasprintf
+0000000000000000      DF *UND*	0000000000000210  GLIBC_2.2   endpwent
+0000000000000000      DF *UND*	00000000000001f0  GLIBC_2.2   fcntl
+0000000000000000      DF *UND*	0000000000000040  GLIBC_2.2   dup2
+0000000000000000      DF *UND*	00000000000007e0  GLIBC_2.2   fork
+0000000000000000      DF *UND*	0000000000000050  GLIBC_2.2   gmtime
+0000000000000000      DF *UND*	0000000000000040  GLIBC_2.2   readlink
+0000000000000000      DF *UND*	0000000000000080  GLIBC_2.3   __ctype_toupper_loc
+0000000000000000      DF *UND*	0000000000000060  GLIBC_2.2   lseek
+0000000000000000      DF *UND*	00000000000000c0  GLIBC_2.2   __fxstat
+0000000000000000      DF *UND*	00000000000000b0  GLIBC_2.2   fscanf
+0000000000000000      DO *UND*	0000000000000008  GLIBC_2.2   __environ
+0000000000000000      DF *UND*	0000000000000040  GLIBC_2.2   munmap
+0000000000000000      DF *UND*	0000000000000050  GLIBC_2.2   strftime
+0000000000000000      DF *UND*	00000000000003a0  GLIBC_2.2   fread
+0000000000000000      DF *UND*	0000000000007090  GLIBC_2.2   vfprintf
+0000000000000000      DF *UND*	00000000000000b0  GLIBC_2.2   snprintf
+0000000000000000      DF *UND*	0000000000000330  GLIBC_2.2   iconv_open
+0000000000000000      DF *UND*	0000000000000080  GLIBC_2.3   __ctype_b_loc
+0000000000000000      DF *UND*	0000000000000060  GLIBC_2.2   nanosleep
+0000000000000000      DF *UND*	0000000000000050  GLIBC_2.2   pipe
+0000000000000000      DF *UND*	0000000000000090  GLIBC_2.2   strpbrk
+0000000000000000      DF *UND*	0000000000000640  GLIBC_2.2   realloc
+0000000000000000      DF *UND*	0000000000000240  GLIBC_2.2   ferror
+0000000000000000      DF *UND*	00000000000004f0  GLIBC_2.2   getpwuid_r
+0000000000000000      DF *UND*	0000000000000030  GLIBC_2.2   strcmp
+0000000000000000      DF *UND*	00000000000000e0  GLIBC_2.2   setenv
+0000000000000000      DF *UND*	0000000000000650  GLIBC_2.2   fclose
+0000000000000000  w   DF *UND*	0000000000000220  GLIBC_2.2   __cxa_finalize
+0000000000000000      DF *UND*	0000000000000020  GLIBC_2.2   __errno_location
+0000000000000000      DF *UND*	00000000000002c0  GLIBC_2.2   exit
+0000000000000000      DF *UND*	0000000000000060  GLIBC_2.2   open
+0000000000000000      DF *UND*	0000000000000590  GLIBC_2.2   abort
+0000000000000000      DF *UND*	0000000000000400  GLIBC_2.2   fputs
+0000000000000000      DF *UND*	00000000000000a0  GLIBC_2.2   sigemptyset
+0000000000000000      DF *UND*	0000000000000050  GLIBC_2.2   localtime_r
+0000000000000000      DF *UND*	00000000000000b0  GLIBC_2.2   sprintf
+0000000000000000      DF *UND*	00000000000002c0  GLIBC_2.2   unsetenv
+0000000000000000      DF *UND*	0000000000000040  GLIBC_2.2   mmap
+0000000000000000      DF *UND*	0000000000000040  GLIBC_2.2   mkdir
+0000000000000000      DF *UND*	0000000000000060  GLIBC_2.2   creat
+0000000000000000      DF *UND*	00000000000000d0  GLIBC_2.2   getpid
+0000000000000000      DF *UND*	0000000000000170  GLIBC_2.2   strerror
+0000000000000000      DF *UND*	0000000000000220  GLIBC_2.2   memcmp
+0000000000000000      DF *UND*	0000000000000320  GLIBC_2.2   qsort
+0000000000000000      DF *UND*	0000000000000c70  GLIBC_2.2   sysconf
+0000000000000000      DF *UND*	0000000000000190  GLIBC_2.2   bsearch
+0000000000000000      DF *UND*	00000000000001b0  GLIBC_2.2   signal
+0000000000000000      DF *UND*	00000000000000c0  GLIBC_2.2   __xstat
+0000000000000000      DF *UND*	00000000000000c0  GLIBC_2.2   __lxstat
+0000000000000000      DF *UND*	0000000000000050  GLIBC_2.2   wcscoll
+0000000000000000      DF *UND*	0000000000000160  GLIBC_2.2   vsprintf
+0000000000000000      DF *UND*	0000000000000130  GLIBC_2.2   vsnprintf
+0000000000000000      DF *UND*	00000000000003e0  GLIBC_2.2   strncpy
+0000000000000000      DF *UND*	00000000000002e0  GLIBC_2.2   getenv
+0000000000000000      DF *UND*	0000000000000120  GLIBC_2.2   strchr
+0000000000000000      DF *UND*	00000000000008c0  GLIBC_2.2   calloc
+0000000000000000      DF *UND*	00000000000000a0  GLIBC_2.2   __cxa_atexit
+0000000000000000      DF *UND*	0000000000000060  GLIBC_2.2   write
+0000000000000000      DF *UND*	0000000000000040  GLIBC_2.2   stpcpy
+0000000000000000      DF *UND*	0000000000000450  GLIBC_2.2   fgets
+0000000000000000      DF *UND*	0000000000000040  GLIBC_2.2   rename
+0000000000000000      DF *UND*	0000000000000310  GLIBC_2.2   __uflow
+0000000000000000      DF *UND*	0000000000000410  GLIBC_2.2   memset
+0000000000000000      DF *UND*	0000000000000050  GLIBC_2.2   fopen
+0000000000000000      DF *UND*	0000000000000050  GLIBC_2.2   __strtol_internal
+0000000000000000      DF *UND*	0000000000000040  GLIBC_2.2   unlink
+0000000000000000      DF *UND*	0000000000000430  GLIBC_2.2   iconv
+0000000000000000      DF *UND*	00000000000001b0  GLIBC_2.2   perror
+0000000000000000      DF *UND*	0000000000000880  GLIBC_2.2   execvp
+0000000000000000      DF *UND*	0000000000000330  GLIBC_2.2   ungetc
+0000000000000000      DF *UND*	0000000000000140  GLIBC_2.2   _exit
+0000000000000000      DF *UND*	0000000000000080  GLIBC_2.3   __ctype_tolower_loc
+0000000000000000      DF *UND*	0000000000000070  GLIBC_2.2   bindtextdomain
+0000000000000000      DF *UND*	0000000000000040  GLIBC_2.2   chmod
+0000000000000000      DF *UND*	0000000000000060  GLIBC_2.2   timegm
+0000000000000000      DF *UND*	0000000000000060  GLIBC_2.2   read
+0000000000000000      DF *UND*	0000000000000300  GLIBC_2.2   readdir
+0000000000000000      DF *UND*	0000000000000300  GLIBC_2.2   free
+0000000000000000      DF *UND*	0000000000000060  GLIBC_2.2   dcgettext
+0000000000000000      DF *UND*	00000000000000e0  GLIBC_2.2   strrchr
+0000000000000000      DF *UND*	0000000000000040  GLIBC_2.2   access
+0000000000000000      DF *UND*	0000000000000390  GLIBC_2.2   fflush
+0000000000000000      DF *UND*	0000000000000070  GLIBC_2.2   bind_textdomain_codeset
+0000000000000000      DF *UND*	00000000000001c0  GLIBC_2.2   opendir
+0000000000000000      DF *UND*	0000000000000530  GLIBC_2.2   strsignal
+0000000000000000      DF *UND*	0000000000000070  GLIBC_2.2   isatty
+0000000000000000      DF *UND*	0000000000000130  GLIBC_2.2   posix_memalign
+0000000000000000      DF *UND*	0000000000000040  GLIBC_2.2   gettimeofday
+0000000000000000      DF *UND*	00000000000000a0  GLIBC_2.2   iconv_close
+0000000000000000      DF *UND*	0000000000000040  GLIBC_2.2   dup
+0000000000000000      DF *UND*	0000000000000540  GLIBC_2.2   memcpy
+0000000000000000      DO *UND*	0000000000000008  GLIBC_2.2   stderr
+0000000000000000      DF *UND*	0000000000000030  GLIBC_2.2   getppid
+0000000000000000      DF *UND*	0000000000000100  GLIBC_2.2   strlen
+0000000000000000      DF *UND*	0000000000000060  GLIBC_2.2   execv
+0000000000000000      DF *UND*	0000000000000f50  GLIBC_2.2   setlocale
+0000000000000000      DF *UND*	0000000000000060  GLIBC_2.2   sigaction
+00000000000909e0 g    DF .text	0000000000000310  Base        g_regex_match_full
+0000000000038400 g    DF .text	0000000000000660  Base        g_date_strftime
+0000000000017530 g    DF .text	00000000000000f0  Base        g_ptr_array_add
+00000000000c6930 g    DF .text	00000000000001e0  Base        g_utf8_strreverse
+0000000000039650 g    DF .text	0000000000000030  Base        g_date_set_time
+00000000000cab10 g    DF .text	0000000000000710  Base        g_utf8_collate_key_for_filename
+00000000000c26f0 g    DF .text	0000000000000160  Base        g_unichar_type
+000000000002a930 g    DF .text	0000000000000430  Base        g_uri_list_extract_uris
+00000000000cf850 g    DF .text	0000000000000350  Base        g_get_system_data_dirs
+000000000008b450 g    DF .text	0000000000000070  Base        g_rand_new_with_seed_array
+00000000000a7410 g    DF .text	0000000000000080  Base        g_slist_concat
+0000000000033c50 g    DF .text	0000000000000020  Base        g_date_valid_weekday
+000000000003f090 g    DF .text	0000000000000190  Base        g_hash_table_get_values
+0000000000058710 g    DF .text	0000000000000010  Base        g_list_pop_allocator
+000000000008c9a0 g    DF .text	00000000000000b0  Base        g_match_info_is_partial_match
+00000000000d3620 g    DF .text	0000000000000290  Base        g_get_user_name
+00000000000a84d0 g    DF .text	0000000000000030  Base        g_slist_free_1
+00000000000cccc0 g    DF .text	00000000000002b0  Base        g_unicode_canonical_decomposition
+00000000000656e0 g    DF .text	0000000000000550  Base        g_main_context_unref
+00000000000d42b0 g    DF .text	0000000000000100  Base        g_vsprintf
+0000000000079f90 g    DF .text	00000000000000e0  Base        g_node_get_root
+0000000000016df0 g    DF .text	0000000000000130  Base        g_ptr_array_remove_index_fast
+000000000007b3b0 g    DF .text	0000000000000080  Base        g_option_group_set_parse_hooks
+00000000000b2c80 g    DF .text	0000000000000170  Base        g_string_chunk_clear
+0000000000021620 g    DF .text	0000000000000040  Base        g_bookmark_file_error_quark
+0000000000088490 g    DF .text	0000000000000110  Base        g_queue_sort
+00000000000c7c00 g    DF .text	0000000000000530  Base        g_utf16_to_utf8
+00000000000197e0 g    DF .text	0000000000000050  Base        g_byte_array_prepend
+0000000000053510 g    DF .text	0000000000000580  Base        g_key_file_get_string_list
+0000000000169a40 g    DO .sdata	0000000000000008  Base        glib_mem_profiler_table
+00000000000a8760 g    DF .text	00000000000000d0  Base        g_slist_remove_link
+00000000000a8130 g    DF .text	0000000000000060  Base        g_slist_prepend
+0000000000063bf0 g    DF .text	0000000000000390  Base        g_main_context_find_source_by_user_data
+000000000005c540 g    DF .text	00000000000000d0  Base        g_main_loop_is_running
+000000000003c5e0 g    DF .text	0000000000000030  Base        g_mkstemp
+00000000000b0440 g    DF .text	0000000000000140  Base        g_string_set_size
+0000000000088160 g    DF .text	0000000000000110  Base        g_queue_insert_after
+00000000000738a0 g    DF .text	0000000000000150  Base        g_log_set_default_handler
+0000000000059c30 g    DF .text	00000000000000b0  Base        g_list_delete_link
+0000000000058a10 g    DF .text	0000000000000090  Base        g_list_position
+0000000000059110 g    DF .text	0000000000000100  Base        g_list_find_custom
+00000000000b0990 g    DF .text	00000000000000f0  Base        g_string_ascii_down
+00000000000629a0 g    DF .text	0000000000000130  Base        g_main_loop_new
+000000000005acb0 g    DF .text	00000000000000b0  Base        g_source_get_context
+0000000000033c00 g    DF .text	0000000000000020  Base        g_date_valid_year
+00000000000a7d90 g    DF .text	0000000000000030  Base        g_slist_insert_sorted
+000000000009f6a0 g    DF .text	0000000000000f20  Base        g_shell_parse_argv
+00000000000bca30 g    DF .text	00000000000000f0  Base        g_timer_stop
+0000000000099ec0 g    DF .text	0000000000000120  Base        g_scanner_peek_next_token
+000000000002d5a0 g    DF .text	00000000000000f0  Base        g_filename_display_basename
+00000000000305c0 g    DF .text	0000000000000580  Base        g_dataset_id_get_data
+0000000000064a50 g    DF .text	0000000000000480  Base        g_source_attach
+000000000003e5d0 g    DF .text	0000000000000360  Base        g_mkdir_with_parents
+000000000001de50 g    DF .text	0000000000000110  Base        g_bookmark_file_has_item
+0000000000065050 g    DF .text	00000000000001c0  Base        g_child_watch_add_full
+00000000000a8830 g    DF .text	0000000000000050  Base        g_freopen
+00000000000a8730 g    DF .text	0000000000000030  Base        g_slist_alloc
+0000000000054a60 g    DF .text	0000000000000480  Base        g_key_file_get_locale_string
+0000000000094fd0 g    DF .text	00000000000001b0  Base        g_scanner_input_file
+0000000000093660 g    DF .text	00000000000000a0  Base        g_scanner_set_scope
+0000000000022780 g    DF .text	0000000000000180  Base        g_bookmark_file_get_visited
+000000000002f280 g    DF .text	00000000000003a0  Base        g_datalist_id_get_data
+0000000000040000 g    DF .text	00000000000000e0  Base        g_hash_table_new_full
+00000000000d2f40 g    DF .text	0000000000000260  Base        g_get_user_config_dir
+0000000000059700 g    DF .text	0000000000000280  Base        g_list_insert_before
+0000000000079270 g    DF .text	00000000000000f0  Base        g_node_n_children
+00000000000d0680 g    DF .text	0000000000000460  Base        g_get_user_cache_dir
+000000000006a5a0 g    DF .text	00000000000000d0  Base        g_markup_parse_context_get_element
+00000000000aefe0 g    DF .text	00000000000000a0  Base        g_strndup
+
+