Moved from gcc 4.5 to gcc 4.6, and now it does not link against libraries that are not used at compile time (i.e. if no symbols are imported from them).
However the purpose of those libraries is that they execute static constructors and thus make themselves available to the app at runtime (register their symbols).
Is there a way to force gcc to link with all libraries listed via -l?
It looks like you need either
-Wl,--no-as-needed
to totally disable it. Or,--no-as-needed -lfoo --as-needed
to disable "as-needed" just forlibfoo
.Source: https://lists.ubuntu.com/archives/ubuntu-devel/2010-November/031991.html