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

Started by
3 comments, last by xeyedmary 7 years, 3 months ago

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?

Advertisement

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.

Stephen M. Webb
Professional Free Software Developer

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 :)

Thanks for the responses, I'll raise the issue with our tools team and see if this isn't something they'd be willing to investigate!

Are you guys running some home-brewed version of glibc? That's no blemish, that a space-station of an error, in my opinion.

This topic is closed to new replies.

Advertisement