I'm not sure I entirely understand this section. The compiler forcibly links to only two libraries, libmorestack and libcompiler-rt. The morestack library is used to provide the `__morestack` function required by LLVM's implementation of segmented stacks. This library would be omitted if the compiler is not compiling the current crate with segmented stacks disabled.

The other library, compiler-rt, is also required by LLVM. This library is not a dependency per-se in that I am unaware of any libc functions it depends on. No matter what your target is, I am under the impression that you want to link compiler-rt. This includes any "freestading platform" it sounds like you're describing here.

You mention libc and libm, but the compiler knows nothing about these libraries. They are linked to when you manually link to the `liblibc` crate, but never implicitly by the compiler.

Also, when you say "providing linker arguments manually is probably unavoidable", what are you referring to?