[Poll] On Linux, what should we commonly use as sub-directory name for D?

Iain Buclaw ibuclaw at ubuntu.com
Thu Nov 14 13:28:58 PST 2013


On Nov 14, 2013 8:40 PM, "Johannes Pfau" <nospam at example.com> wrote:
>
> Am Thu, 14 Nov 2013 20:02:46 +0100
> schrieb Marco Leise <Marco.Leise at gmx.de>:
>
> > Am Thu, 14 Nov 2013 19:11:17 +0100
> > schrieb "Dejan Lekic" <dejan.lekic at gmail.com>:
> >
> > > On Wednesday, 13 November 2013 at 13:50:45 UTC, Marco Leise wrote:
> > > >
> > > > I don't want to be limited to one installation of Phobos.
> > > > That's why there is no "none" option. It is required to have
> > > > e.g.:
> > > > /usr/include/dlang/dmd-1.076/druntime
> > > > /usr/include/dlang/dmd-2.063/druntime
> > > > /usr/include/dlang/dmd-2.064/druntime
> > > > /usr/include/dlang/ldc-0.12.0/druntime
> > > > and
> > > > /usr/lib/dlang/dmd-2.063/phobos.a
> > > > /usr/lib/dlang/dmd-2.064/phobos.a
> > >
> > > You should be clearn that you were asking about where to put
> > > Phobos, not various D import files (from other D packages).
> >
> > Both actually. This was just an example with no bike-shedding
> > potential.
> >
> > > For Phobos import path, again, I would go for
> > > /usr/include/d/{dmd*|ldc*|gdc*}
> > >
> > > For the libraries, I also follow the same approach ArchLinux
> > > packages do. Honestly, no need for /usr/lib/dlang/blabla . Keep
> > > them all in the /usr/lib or /usr/lib{32|64} depending on distro...
> >
> > In fact there is a need for it as soon as you install them once
> > for each compiler. And that's where I want to go.
> > Alternatively suffixes could be used, but that makes it more
> > difficult to find the correct library name. So I went for
> > sub-directories.
> >
>
> AFAIK you can't put shared libraries into a different folder.
> The runtime linker must be able to find the libraries so the folders
> have to be registered in ld.so.conf. But ld 'virtually merges' all
> directories so you still can't have libraries with the same name &
> version in different folders. There are some tricks (rpath,
> LD_LIBRARY_PATH) but this won't work well in a large scale scenario.
>
> In the end all D compilers have to produce ABI compatible
> shared libraries. The runtime implementation may be different, but the
> ABI has to match. Unfortunately ABI compatibility is still in a distant
> future but there's no other way to solve the library issue.

And you can make a start in the direction of ABI compatibility by dropping
the D calling convention.  :-)

Regards
-- 
Iain Buclaw

*(p < e ? p++ : p) = (c & 0x0f) + '0';
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20131114/5b38e987/attachment.html>


More information about the Digitalmars-d mailing list