-static and dmd

Jonathan M Davis jmdavisProg at gmail.com
Sun Mar 28 02:28:08 PDT 2010

With gcc, you can pass it the -static flag and it will statically link 
everything. Normally, with dmd (on linux at least), it dynamically links all 
of the C/C++ libraries that it uses. So, if I run ldd (well, ldd32 
technically) on one of my programs I get:

        linux-gate.so.1 =>  (0xf7794000)
        libpthread.so.0 => /lib32/libpthread.so.0 (0xf7756000)
        libm.so.6 => /lib32/libm.so.6 (0xf7730000)
        libc.so.6 => /lib32/libc.so.6 (0xf75ea000)
        /lib32/ld-linux.so.2 (0xf7795000)

If it were gcc and -static had been used, you'd get

        not a dynamic executable

I'd like to be able to do the equivalent of -static with dmd so that my dmd-
generated binaries don't have to link against any of the C/C++ libraries on 
my system. Is there a way to do that? I can't see any. Certainly, none of 
dmd's options appear to give that kind of functionality. So, if there is a 
way to do it, I'd like to know how. Does anyone here know how?

- Jonathan M Davis

More information about the Digitalmars-d-learn mailing list