Linker is shipped by the platform itself. How to fix?
Ask platform maintainers. File a bug with their systems.
The fault should be yours, for generating incompatible or faulty ld script or do not adapt to platform specific parameters but not the other way around. Run man ld on these different platforms and you will see how different it is in the way how it work and the parameters it use. Just because it's named binutils or the binary name is ld and being used/available across many system doesn't mean it's all the same binutils/ld on Linux. They're not using the plain binutils, they patched it, forked it... they added their own customization... Your problem is you're so Linux centric so you bring all of this linuxism expectation to other platform
I think we are a bit disrepect other system other than the main ones (Win, Lin and Mac). If it's Mac will you ask Apple to patch their linker to allow fpc to work correctly or you have to patch fpc to be work correctly with Apple's linker and adapt yourself to Apple's way, too? Just because Mac is a popular one so we have to support it, to follow it and other system is less popular so we think we should force them to patch their own only to allow our software to work correctly? It will not happen. fpc is not that important, gcc is another story, though. No one will answer to your bug report at all, they already have so many of them openning, so many important problems to care about