[phobos] New Linux phobos shared library

Jordi Sayol g.sayol at yahoo.es
Tue Jul 9 07:52:04 PDT 2013


On 09/07/13 15:49, H. S. Teoh wrote:
> On Tue, Jul 09, 2013 at 06:52:44AM +0200, Jordi Sayol wrote:
>>  From dmd v2.063, release zip file includes Linux phobos shared
>>  libraries. As shared libraries are needed at runtime too, we should
>>  allow to install multiple versions of phobos shared libs. at same
>>  time. If not, every program compiled against it will be forced to be
>>  recompiled every new dmd/phobos release. To avoid this, phobos shared
>>  libs. should include some version number on its name.
>>
>> I propose to name the shared phobos library as "libphobos2.so.0.nn.0",
>> where "nn" is the current dmd version. The last zero is just for
>> bug/regression fixes.
>>
>> As phobos changes its interface (almost) every new release, I propose
>> to set its SONAME to "libphobos2.so.0.nn", so when phobos become
>> stable we can change the library name to "libphobos2.so.1.0.0" and its
>> SONAME to "libphobos2.so.1".
>>
>> Some info about Linux shared libraries:
>> http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html
> [...]
> 
> +1.
> 
> Shared library breakages are a royal pain in the neck. We should try to
> get them right earlier rather than later. I'd say file a high-priority
> bug in the bugtracker, if it hasn't already been.
> 
> Basically, the library needs to have a different soname EVERYTIME its
> ABI changes (not just API, mind you). Anything other than that will lead
> to pain and angry users.

Ok, I just proposed a system where every dmd beta release gives an specific phobos shared library name and SONAME.
The problem you point will appear when phobos shared library becomes stable.
I don't know what will be the best way to "control" ABI changes. Is it possible to create a sort of flag in the Phobos project repository indicating this?

-- 
Jordi Sayol


More information about the Digitalmars-d mailing list