Compiling C hello word gets into 2072 bytes of stripped binary with -flto -fuse-linker-plugin, wile it is 1882 with -flto -fno-use-linker-plugin. Seems to be difference in dyn* and hash* sections.
Right, you get more dynamic symbols. These: NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable NOTYPE WEAK DEFAULT UND _Jv_RegisterClasses NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable And the reason you get them is that libgcc_s.so is being linked via gcc's --pass-through option *outside of --as-needed*. That also adds a DT_NEEDED tag for libgcc_s.so.1, which also increases the size of the binary. I could say this is a gcc bug for continuing to use --pass-through, when ld hasn't needed that option for quite a while. :)
Fixed by git commit 97964ab3