osx shared libraries.
bitwise via Digitalmars-d
digitalmars-d at puremagic.com
Tue Jun 16 16:19:11 PDT 2015
On Tue, 16 Jun 2015 15:50:32 -0400, Jacob Carlborg <doob at me.com> wrote:
> On 2015-06-16 16:56, bitwise wrote:
>
>> If anyone is willing to point me in the right direction here, it would
>> be much appreciated ;)
>> Looking at Martin's github, it doesn't appear that he's back in business
>> yet.
>
> Why don't you just do what Martin did for Linux, or is that what you
> would like to avoid? The code was a bit more than I first thought it
> would be. You could try doing the same for OS X and see what happens :).
> Just replace the segments and section names with the appropriate OS X
> names and similar stuff.
>
Heh... trying ;)
Here, there seems to be a function to put things in ctors/dtors, but it
looks like it was copy pasted from the Elf code:
https://github.com/D-Programming-Language/dmd/blob/c718790165c3124c61e510d8352b9cb9d8ae0198/src/backend/machobj.c#L1532
I've rewritten the first line as follows, but still working on what I need
to do to actually put the function in there.
IDXSEC seg = s->Sseg = MachObj::getsegment("__mod_init_func", "__DATA", 2,
S_MOD_INIT_FUNC_POINTERS);
I think the S_COALESCED flag could be added to the above to allow a
definition in every obj file like Martin's approach, but I would rather
have an explicit DllMain and put the init code in that one obj file. It
seems more intuitive to me.
So if I get Obj::staticctor and Obj::staticdtor working on osx, that's
half the problem solved... I think.
Bit
More information about the Digitalmars-d
mailing list