On Mon, Jul 29, 2013 at 12:47:37PM +0400, Alexander Pyhalov wrote:
>  Hello.
> 
>  On 07/29/2013 11:54, Andrzej Szeszo wrote:
> > Hi Alexander
> > [...]
> 
>  I see your point.
>  I've looked at something like this: 
>  https://github.com/pyhalov/oi-userland/compare/gcc-links  to avoid 
>  duplicating libraries in /usr/gcc/4.x/lib  and /usr/lib and avoid mess with 
>  RPATH (for example, libgfortran.so has RPATH set to $PREFIX/lib, so if we 
>  link with it libraries from /usr/lib/gcc/4.7 become preferred to libraries 
>  in /usr/lib.

We's seen good results if runtime libs are loaded first from
a fully private directory. If that directory prints the major.minor
version of the compiler then always the version of lib is
loaded where the binary has been compiled with.

The to follow the way versioned installation directory
layout is done for the Solaris, the layout should be:

   /usr/gcc/4.7/lib     (package: gcc-47-runtime)

you may add an optional fallback:

   /usr/gcc/lib         (package: gcc-4-runtime, only mediated symlinks to 
/usr/gcc/4.7/lib/lib*so*)

gcc-4-runtime should have a dependency on the platform-
default version of gcc-47-runtime.

/usr/lib does not need any more symlinks to the runtime-
libs, as every software delivered has a pacakge dependency
on ether gcc-4-runtime or gcc-47-runtime in a case where
a specific gcc version is required to have the Software
compile/work. An Example would be QT 4.8.3 which only
works with gcc 4.6 and below as C++11 and QT4.8 aren't
working without a lot patching.


Regards,
Thomas


_______________________________________________
oi-dev mailing list
oi-dev@openindiana.org
http://openindiana.org/mailman/listinfo/oi-dev

Reply via email to