4 ms·
Linking is always a largely a function of the ISA, because it is about taking partially finished chunks of code and glueing them together. In the case of dynami
by lgg 8y ago
Linking is always a largely a function of the ISA, because it is about taking partially finished chunks of code and glueing them together. In the case of dynamic libraries part of that has to do with the OS, more of it has to do with the instructions you have. Do you have segment registers, PC relative jumps or loads? How far do the instruction encoding allow, do you need things like branch islands, or TOCs, etc.
- saagarjha 8y agoSure, but why should an ISA dictate whether libraries are static or dynamic, unless they are planning to intentionally sabotage relative jumps or something similar?
- lgg 8y agoI completely agree. I was just responding that linking is intimately related to the ISA, which is relevant since the FowardCom info states that it does not support dynamic linking and instead all objects are instead relinkable (in the same way static linkers work). If you design an ISA with that mindset it is quite easy to omit instructions necessary to do efficient dynamic linking.
- tlb 8y agoThe x86 and x64 ISAs allow both, but impose a significant performance penalty on dynamic linking. I can see the appeal of an ISA which allows dynamic linking at no extra cost, so you’d never need to decide.
- amluto 8y agoOn a vaguely educated guess, it’s related to the lack of an MMU.