Why is libphobos not a shared library?

Dejan Lekic dejan.lekic at gmail.com
Fri Jun 15 01:32:29 PDT 2012

On Fri, 15 Jun 2012 08:06:48 +0000, Dejan Lekic wrote:

> On Thu, 14 Jun 2012 15:28:44 +0100, Iain Buclaw wrote:
>> On 14 June 2012 14:18, Matthew Caron <Matt.Caron at redlion.net> wrote:
>>> On 06/14/2012 09:08 AM, Iain Buclaw wrote:
>>>> Hi Matthew,
>>>> This is a pet peeve with us at the moment.  Yes, I can produce a
>>>> shared libphobos for you, but the default runtime implementation does
>>>> not support it, and the current workaround is specific to Linux
>>>> systems only - possibly other related POSIX systems too, so long as
>>>> /proc/self/maps exists on the system.
>>>> Regards
>>> I am not professing to have copious amounts of time, but how might I
>>> be able to help, even if it is just to test things?
>>> I have, at my disposal, the standard complement of x86 Linux boxen, as
>>> well as a variety of ARM-ish processors (hence my interest in cross
>>> compiling D), ranging from ARM9 (armv5t) up to Cortex-A8.
>>> If adoption of D at my company proceeds, this will become more of a
>>> hot-button issue because demand for it will increase. As such, I might
>>> be able to actually devote some on the clock engineering time to it,
>>> rather than doing it in my spare time. As of right now, it is termed
>>> "not for production use", because D and GDC are both fairly new. (Yes,
>>> I know both D2 and GDC are both over 5 years old, but we're that
>>> conservative.). The crux of the issue is that, when you're trying to
>>> cram as much as you can into 16MB of NAND, shared libraries are your
>>> best friend.
>> If the idea is to cram as much into 16MB of NAND, I would suggest that
>> you avoid building libphobos at all, and just have the libdruntime
>> library.  I will need to add this as a switch to the build for you. If
>> you need any guidance on building as a shared library, I'll be
>> available on IRC from around 7.30pm GMT+0 time.  Either on Freenode or
>> OFTC in #d and #d.gdc.
>> Regards
> I wish I could do that with DMD... DMD has -defaultlib=<name> but if
> developer leaves <name> to be empty compilation will fail.

Actually, after some chat on IRC, thanks to Daniel, I've found out that 
it is possible to do it with -defaultlib=druntime , but then you must 
have libdruntime.a installed (which is not the case if developer 
installed packaged dmd because druntime is inside phobos).

Dejan Lekic

More information about the D.gnu mailing list