ld -zguidance should be aware of different output types
Some guidance only makes sense for given output types, we should more carefully guard the guidance emitted so that it's applicable to the output type.
Eg, when building a kernel module, we currently get:
ld: guidance: -B direct or -z direct option recommended before first dependency ld: guidance: removal of unused dependency recommended: misc/mac ld: guidance: see ld(1) -z guidance for more information
One of which is untrue (the dependency is necessary, we just can't know that), and one of which is unhelpful (direct binding won't actually do anything).