When you say "explicitly ask for libdruntime.a" you mean by using the gcc/ld options "-Wl,-Bstatic" and "-Wl,-Bdynamic" right?The way to deal with both libdruntime.so and libdruntime.a existing on a system is to explicitly ask for libdruntime.a when desired (note the .a). The linker will prefer the shared library when just -ldruntime is passed. So no dmd.conf change should be necessary with regards to linking; DMD just has to do the right thing depending on whether -shared was passed.
-static-libphobos -static-libdruntime
" flags
to select between static and dynamic linking. Make "-static-libdruntime=true,
-static-libphobos=true
" the default for one
release, then in the next release change the defaults to false. Then
linking with a static libdruntime would be as simple as passing "-static-libdruntime
"
to dmd.-- Johannes Pfau