not a rust programmer. can someone explain why this is in the final binary and not in a shared library?
For the C++ standary library maybe, but for pretty much all others which provide ABI compatibility it's a concious and properly followed decision.
For C++, yes sure, but I thought C usually has a pretty well specified ABI on most platforms, no?