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