What should be in SharedUnixLibrary

Christian Ludlam chris at recoil.org
Sun Dec 23 12:46:08 PST 2001


On 22 Dec Nicholas Clark wrote:

> The above problem is the general RISC OS problem that you can't have more
> than one version of a module (of given name) loaded at once, isn't it? [In
> that they really weren't intended to implement shared library linking. And
> shared library systems on Unix let multiple versions (given different major
> numbers) be loaded at once. Which is what you need, as you bump the major
> version number up when you make incompatible changes, such as structure
> layouts]
> 
> Sorry, not a solution.
> 
> Also, the Toolbox problem was compounded by the toolbox modules being put
> into ROM before they were mature. As then an early loading program would
> RMEnsure somemodule 0.3 (say) and be quite happy with the one in ROM. But a
> later program would need 0.5, and be unable to load, despite 0.6 being in
> !System. Hence the appearance of UnplugTbox in !Boot to bodge round the
> mess.

You can get round this to an extent by setting bit 31 of the module's
finalisation entry point. This means the module remains in memory after it's
been killed, so anything requiring a later version of the module can load it
without worrying about apps already linked with the earlier version.


C
-- 
Christian Ludlam
chris at recoil.org



More information about the gcc mailing list