It's due to linker option "--as-needed".
The flag tells the linker to link in the produced binary only the libraries containing symbols actually used by the binary itself.
We can benifit from the option for several reasons:
1) avoid linking extra libraries and improve startup time
2) avoid linking dependencies and etc.
But their is one disadvantage:
it may discard libraries when none of the symbols are used from it, thus mistakenly changing the initialization and deconstruction code paths.