On 05/02/2011 03:10 PM, Jonathan M Davis wrote:
Is dynamic linking supported on Linux with DMD 2.052 (and D2 in general)?

I am not talking about Phobos, just modules which I want to compile as DSO.

There is -fPIC switch to DMD - does it work as intended?

PS: gdc is not an option...

The short answer: no.

As for the long answer, someone else could answer far better than I could.
IIRC, the main problem is the runtime. It has issues when you try and split
your D code with .so files (I believe that you end up with multiple instances
of the runtime). It _might_ work if you don't use the garbage collector at
all, but there could be other issues. I don't remember exactly what all of the
problems are. But regardless, don't expect shared libraries to work at the
moment.

Getting shared libraries to work is near the top of the TODO list, but it
hasn't been done yet.

- Jonathan M Davis

I thought I saw somewhere that you simply have to have the runtime initialized before calling into the shared library (which is done for you when dmd is supposed to produce an executable):

http://www.digitalmars.com/d/2.0/phobos/core_runtime.html

I may be incorrect too :)

-Kai Meyer

Reply via email to