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?
