Sign in to follow this  

Strange linker error/warning: symbol missing from main hash table

Recommended Posts

There is a particular shared library in our code base that produces the following output when linked (mk7i-ld is the linker provided by our toolchain team; I couldn't tell you how it difers from the stock version, but it's based on ld 2.17):

/usr/bin/mk7i-ld: symbol `no symbol' missing from main hash table
/usr/bin/mk7i-ld: symbol `no symbol' missing from main hash table
/usr/bin/mk7i-ld: symbol `no symbol' missing from main hash table
/usr/bin/mk7i-ld: symbol `no symbol' missing from main hash table
/usr/bin/mk7i-ld: symbol `no symbol' missing from main hash table
/usr/bin/mk7i-ld: symbol `no symbol' missing from main hash table
/usr/bin/mk7i-ld: symbol `no symbol' missing from main hash table
/usr/bin/mk7i-ld: symbol `no symbol' missing from main hash table
/usr/bin/mk7i-ld: symbol `no symbol' missing from main hash table
/usr/bin/mk7i-ld: symbol `no symbol' missing from main hash table
/usr/bin/mk7i-ld: symbol `' missing from main hash table
/usr/bin/mk7i-ld: symbol `' missing from main hash table
/usr/bin/mk7i-ld: symbol `' missing from main hash table
/usr/bin/mk7i-ld: symbol `' missing from main hash table
/usr/bin/mk7i-ld: symbol `' missing from main hash table
/usr/bin/mk7i-ld: symbol `' missing from main hash table
/usr/bin/mk7i-ld: symbol ` ' missing from main hash table
/usr/bin/mk7i-ld: symbol `$' missing from main hash table
/usr/bin/mk7i-ld: symbol `,' missing from main hash table
/usr/bin/mk7i-ld: symbol `.debug_line' missing from main hash table
/usr/bin/mk7i-ld: symbol `.dynamic' missing from main hash table
/usr/bin/mk7i-ld: symbol `9:' missing from main hash table
/usr/bin/mk7i-ld: symbol `=' missing from main hash table
' missing from main hash table
/usr/bin/mk7i-ld: symbol `__libc_enable_secure' missing from main hash table
/usr/bin/mk7i-ld: symbol `__libc_enable_secure@@GLIBC_PRIVATE' missing from main hash table
/usr/bin/mk7i-ld: symbol `__libc_stack_end' missing from main hash table
/usr/bin/mk7i-ld: symbol `__libc_stack_end@@GLIBC_2.1' missing from main hash table
/usr/bin/mk7i-ld: symbol `__tls_get_addr' missing from main hash table
/usr/bin/mk7i-ld: symbol `__tls_get_addr@@GLIBC_2.3' missing from main hash table
/usr/bin/mk7i-ld: symbol `__tls_get_addr@GLIBC_2.3' missing from main hash table
/usr/bin/mk7i-ld: symbol `_dl_deallocate_tls' missing from main hash table
/usr/bin/mk7i-ld: symbol `_dl_deallocate_tls@@GLIBC_PRIVATE' missing from main hash table
/usr/bin/mk7i-ld: symbol `_dl_deallocate_tls@GLIBC_PRIVATE' missing from main hash table
/usr/bin/mk7i-ld: symbol `_dl_get_tls_static_info@@GLIBC_PRIVATE' missing from main hash table
/usr/bin/mk7i-ld: symbol `_dl_make_stack_executable' missing from main hash table
/usr/bin/mk7i-ld: symbol `_dl_make_stack_executable@@GLIBC_PRIVATE' missing from main hash table
/usr/bin/mk7i-ld: symbol `_dl_make_stack_executable@GLIBC_PRIVATE' missing from main hash table
/usr/bin/mk7i-ld: symbol `_rtld_global' missing from main hash table
/usr/bin/mk7i-ld: symbol `_rtld_global@@GLIBC_PRIVATE' missing from main hash table
/usr/bin/mk7i-ld: symbol `ersion_d' missing from main hash table
' missing from main hash table
/usr/bin/mk7i-ld: symbol `?' missing from main hash table
/usr/bin/mk7i-ld: symbol `?' missing from main hash table
/usr/bin/mk7i-ld: symbol `?' missing from main hash table
?1?r/bin/mk7i-ld: symbol `?:?
' missing from main hash table
' missing from main hash table

I've searched everywhere, but can't really find any details or information on what this error means or how to fix it. It doesn't appear to affect the behavior of our library, as everything links and runs as expected, however it's a blemish I'd like to remove. I copy-pasted everything verbatim from the terminal window (including the weird symbols).

 

Anyone seen this before or have any ideas what causes it?

Share this post


Link to post
Share on other sites

Looks like one messed-up linker to me.  Betcha there's all kinds of invalid memory accesses going on inside it.    Running it under valgrind will probably net you a whole lot of holy cow.

Share this post


Link to post
Share on other sites

or have any ideas what causes it
None, but you could check the formats+versions accepted by the linker, and the format(s)+version(s) produced by the compiler (or the format+version of files you have on the disk).

 

Maybe the compiler decided to throw in some additional symbols that the linker doesn't know what to do with them :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this