On 07/21/2011 08:49 PM, Diane Holt wrote:
Valgrind wants a less stripped ld-2.12.1.so or it won't work. The build process (that Michael Hope put together) just downloads the libc6_2.12.1-0ubuntu6_armel.deb, and the ld-2.12.1.so in there is fully stripped. I thought I'd be able to just get the libc6-dbg_2.12.1-0ubuntu6_armel.deb instead, thinking that was just the pre-stripped version of these libs -- but apparently it's not, because trying to use those libs instead of the stripped ones results in undefined symbols.
the files in /usr/lib/debug are built with objcopy --only-keep-debug, so only include the debug info. the stripped files get a debug link added (objcopy --add-gnu-debuglink).
For example, ld-2.12.1.so defines _rtld_global -- but
libc-2.12.1.so is looking for _rtld_global@@GLIBC_PRIVATE, so _rtld_global@@GLIBC_PRIVATE ends up undefined. (Ditto for __tls_get_addr, __libc_enable_secure, _dl_argv, etc.)
I'm not sure who actually builds these packages (they're retrieved from: http://ports.ubuntu.com/pool/main/e/eglibc/), but if anyone has any suggestions on how to get past this, I'd be most appreciative.
Did that work in the past?
Can valgrind handle detached debug information? If not, then maybe call dh_strip in the eglibc package with -Xld-2.13.so
Matthias