[ELDK] ELDK v4.1 - ld-2.3.5.so missing symbols

Jonathan Moore Jonathan.Moore at ubidyne.com
Wed Mar 12 10:45:27 CET 2008


Hi,
 
I've been playing with Valgrind (version 3.3.0) cross compiled for a
PPC32_LINUX target.
 
I'm hitting an interesting bug when trying to execute Valgrind. I'm
using the following debug flags to find out what is going on. valgrind
-d --trace-redir=yes --trace-symtab=yes .......
 
It seems that I'm missing a symbol from ld-2.3.5.so, which is provided
by the ELDK library (version 4.1). I don't know if the ELDK library has
its symbols stripped off, but I don't think so, otherwise I assume it
wouldn't see any symbols at all.
 
Has anyone else come across a symbol problem like this ? Any solution
suggests would be welcome, where I can find my missing symbols ? Or
should the strlen symbol be even expected to be here ? Is this really an
ELDK issue ?
 
I've looked at the installation pages of ELDK, but not seen any method
mentioning symbols. Below is a debug print out from Valgrind.
 
--733:1:debuglog DebugLog system started by Stage 1, level 1 logging
requested
--733:1:launcher tool 'memcheck' requested
--733:1:launcher selected platform 'ppc32-linux'
--733:1:launcher launching
/data/valgrind-3.0.0/lib/valgrind/ppc32-linux/memcheck
--733:1:debuglog DebugLog system started by Stage 2 (main), level 1
logging requested
--733:1:main     Welcome to Valgrind version 3.3.0 debug logging
--733:1:main     Checking current stack is plausible
--733:1:main     Checking initial stack was noted
--733:1:main     Starting the address space manager
--733:1:main     Address space manager is running
--733:1:main     Starting the dynamic memory manager
--733:1:mallocfr newSuperblock at 0x41C4D000 (pszB 4194288) owner
VALGRIND/tool
--733:1:main     Dynamic memory manager is running
--733:1:main     Getting stage1's name
--733:1:main     Get hardware capabilities ...
--733:1:main     ... arch = PPC32, hwcaps = ppc32-int-flt-GX
--733:1:main     Getting the working directory at startup
--733:1:main     ... /opt/ubd
--733:1:main     Split up command line
--733:1:main     Preprocess command line opts
--733:1:main     Create initial image
--733:1:initimg  Loading client
--733:1:initimg  Setup client env
--733:1:initimg  Setup client stack
--733:1:initimg  Setup client data (brk) segment
--733:1:main     Setup file descriptors
--733:1:main     Create fake /proc/<pid>/cmdline
--733:1:main     Initialise the tool part 1 (pre_clo_init)
--733:1:main     Print help and quit, if requested
--733:1:main     Process Valgrind's command line options, setup logging
--733:1:mallocfr newSuperblock at 0x4204D000 (pszB 1048560) owner
VALGRIND/core
--733:1:main     Print the preamble...
==733== Memcheck, a memory error detector.
==733== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al.
==733== Using LibVEX rev 1804, a library for dynamic binary translation.
==733== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP.
==733== Using valgrind-3.3.0, a dynamic binary instrumentation
framework.
==733== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al.
==733== For more details, rerun with: -v
==733==
--733:1:main     ...finished the preamble
--733:1:main     Initialise the tool part 2 (post_clo_init)
--733:1:main     Initialise TT/TC
--733:1:main     Initialise redirects
--733:1:mallocfr newSuperblock at 0x421C8000 (pszB 1048560) owner
VALGRIND/symtab
--733-- <<
--733--    ------ REDIR STATE after VG_(redir_initialise) ------
--733--    TOPSPECS of soname (hardwired)
--733--      ld.so.1                   index
R-> 0x380320d0
--733--      ld.so.1                   strcmp
R-> 0x3803205c
--733--      ld.so.1                   strlen
R-> 0x38032034
--733--    ------ ACTIVE ------
--733-- >>
--733:1:main     Load initial debug info
--733-- Reading syms from /lib/ld-2.3.5.so (0x4000000)
soname=ld.so.1
--733--    svma 0x0000000000, avma 0x0004000000
shoff = 98036,  shnum = 21,  size = 40,  n_vg_oimage = 98876
.dynsym           : filea 0x40281D0 .. 0x402840F, vma 0x40001D0 ..
0x400040F
.dynstr           : filea 0x4028410 .. 0x402858E, vma 0x4000410 ..
0x400058E
.eh_frame         : filea 0x403EA98 .. 0x403EBF7, vma 0x4016A98 ..
0x4016BF7
.got              : filea 0x403F2E0 .. 0x403FA17, vma 0x40272E0 ..
0x4027A17
.plt              : filea 0x403FE48 .. 0x403FECB, vma 0x4027EB8 ..
0x4027F3B
 
Reading (ELF, standard) dynamic symbol table (36 entries)
raw symbol [   1]: LOC SEC : val 0x0004001D20, sz    0  NONAME
raw symbol [   2]: LOC SEC : val 0x0004013A44, sz    0  NONAME
raw symbol [   3]: LOC SEC : val 0x0004016A44, sz    0  NONAME
raw symbol [   4]: LOC SEC : val 0x0004016A98, sz    0  NONAME
raw symbol [   5]: LOC SEC : val 0x0004026E5C, sz    0  NONAME
raw symbol [   6]: LOC SEC : val 0x0004027000, sz    0  NONAME
raw symbol [   7]: LOC SEC : val 0x0004027A18, sz    0  NONAME
raw symbol [   8]: LOC SEC : val 0x0004027E48, sz    0  NONAME
raw symbol [   9]: LOC SEC : val 0x0004027F3C, sz    0  NONAME
raw symbol [  10]: GLO OBJ : val 0x0004027A18, sz 1072  _rtld_global
raw symbol [  11]: GLO FUN : val 0x000400F050, sz  220
_dl_make_stack_executable
    record [  11]:           val 0x000400F050, sz  220
_dl_make_stack_executable
raw symbol [  12]: GLO OBJ : val 0x0004026F48, sz    4  __libc_stack_end
raw symbol [  13]: WEA FUN : val 0x000400FEA0, sz  308  __libc_memalign
    record [  13]:           val 0x000400FEA0, sz  308  __libc_memalign
raw symbol [  14]: WEA FUN : val 0x000400FFD4, sz   40  malloc
    record [  14]:           val 0x000400FFD4, sz   40  malloc
raw symbol [  15]: GLO OBJ : val 0x0004000000, sz    0  GLIBC_2.1
raw symbol [  16]: GLO FUN : val 0x000400EA2C, sz  132
_dl_deallocate_tls
    record [  16]:           val 0x000400EA2C, sz  132
_dl_deallocate_tls
raw symbol [  17]: GLO OBJ : val 0x0004026F44, sz    4
__libc_enable_secure
raw symbol [  18]: GLO FUN : val 0x000400EB28, sz  832  __tls_get_addr
    record [  18]:           val 0x000400EB28, sz  832  __tls_get_addr
raw symbol [  19]: GLO FUN : val 0x000400E74C, sz   56
_dl_get_tls_static_info
    record [  19]:           val 0x000400E74C, sz   56
_dl_get_tls_static_info
raw symbol [  20]: WEA FUN : val 0x000400FFFC, sz   36  calloc
    record [  20]:           val 0x000400FFFC, sz   36  calloc
raw symbol [  21]: GLO FUN : val 0x000400C5A0, sz   12  _dl_debug_state
    record [  21]:           val 0x000400C5A0, sz   12  _dl_debug_state
raw symbol [  22]: GLO OBJ : val 0x0004026E5C, sz    4  _dl_argv
raw symbol [  23]: GLO FUN : val 0x000400E838, sz  448
_dl_allocate_tls_init
    record [  23]:           val 0x000400E838, sz  448
_dl_allocate_tls_init
raw symbol [  24]: GLO OBJ : val 0x0004000000, sz    0  GLIBC_2.0
raw symbol [  25]: GLO OBJ : val 0x0004000000, sz    0  GLIBC_PRIVATE
raw symbol [  26]: GLO OBJ : val 0x0004026E60, sz  168  _rtld_global_ro
raw symbol [  27]: WEA FUN : val 0x0004010088, sz  152  realloc
    record [  27]:           val 0x0004010088, sz  152  realloc
raw symbol [  28]: GLO FUN : val 0x000400E61C, sz  184  _dl_tls_setup
    record [  28]:           val 0x000400E61C, sz  184  _dl_tls_setup
raw symbol [  29]: GLO FUN : val 0x0004007C64, sz  440
_dl_rtld_di_serinfo
    record [  29]:           val 0x0004007C64, sz  440
_dl_rtld_di_serinfo
raw symbol [  30]: GLO OBJ : val 0x0004013EA8, sz   14
_dl_out_of_memory
raw symbol [  31]: GLO FUN : val 0x000400DE8C, sz  768  _dl_mcount
    record [  31]:           val 0x000400DE8C, sz  768  _dl_mcount
raw symbol [  32]: GLO FUN : val 0x000400E9F8, sz   52  _dl_allocate_tls
    record [  32]:           val 0x000400E9F8, sz   52  _dl_allocate_tls
raw symbol [  33]: GLO OBJ : val 0x0004027F58, sz   20  _r_debug
raw symbol [  34]: GLO OBJ : val 0x0004000000, sz    0  GLIBC_2.3
raw symbol [  35]: WEA FUN : val 0x0004010020, sz  104  free
    record [  35]:           val 0x0004010020, sz  104  free
0 merged
 
valgrind:  Fatal error at startup: a function redirection
valgrind:  which is mandatory for this platform-tool combination
valgrind:  cannot be set up.  Details of the redirection are:
valgrind:
valgrind:  A must-be-redirected function
valgrind:  whose name matches the pattern:      strlen
valgrind:  in an object with soname matching:   ld.so.1
valgrind:  was not found whilst processing
valgrind:  symbols from the object with soname: ld.so.1
valgrind:
valgrind:  Possible fix: install glibc's debuginfo package on this
machine.
valgrind:
valgrind:  Cannot continue -- exiting now.  Sorry.
 

Best Regards,
Jon.
 


More information about the eldk mailing list