Tango built as a dynamic library
Eldar Insafutdinov
e.insafutdinov at gmail.com
Tue Mar 16 09:51:58 PDT 2010
Jacob Carlborg Wrote:
> I've managed to build Tango as a dynamic library with DMD on Mac OS X. I
> had some problems first but I managed to solve them and everything seems
> to work now.
>
> What I had to do to build it as a dynamic library was:
>
> Resolve the undefined symbol _Dmain.
>
> Remove the globals _deh_beg and _deh_end in the deh module and
> _minfo_beg and _minfo_end in the object module. The beg and end
> variables are for determine the beginning and the end of special
> sections in the binaries but they're not put into the dynamic library
> and therefore cause linker errors (undefined symbol).
>
> Get the module infos from the loaded executable and all the loaded
> dynamic libraries and collect them into one array (in the object module)
> in the order they are loaded (the data from executable should be last in
> the array).
>
> Get all the exception handler tables from the loaded executable and all
> the loaded dynamic libraries and collect them into one array (in the deh
> module) in the order they are loaded (the data from executable should be
> last in the array).
>
> Now when I thing about it what happens when a dynamic library built with
> GDC or LDC is linked with an executable built with DMD? I'm searing for
> specific segments and sections in the binaries that at least DMD puts there.
>
> The next step is to clean up the code, create a patch, add support for
> 64bit binaries and perhaps universal binaries (if that is needed). Then
> I'll do the same for Phobos 1 and 2.
>
>
> /Jacob Carlborg
Thank you very much! I suppose there should not be a major problem to make it working on Linux as well?
More information about the Digitalmars-d-announce
mailing list