On Tue, Jan 21, 2014 at 11:26 AM, Reinis Danne <[email protected]> wrote:
> > How the eselect module creation could work? Something like this? > > ~# eselect module create blas > ~# eselect blas add atlas importance src dest [src dest [..]] > ... > ~# eselect blas remove atlas > ~# eselect delete blas > That is the idea. Last one should be "eselect module delete blas". > > * given the number of bugs, we should keep the linking to the reference > > names libraries, so we could eselect providers without re-compiling all > > reverse dependencies. We could do this in the open sourced providers by > > changing the soname of the libraries we compile, and in the binary ones > > (mkl,amcl...) with a link script generated library. > > Yes, this is ok and AFAICT it is like that now in the overlay. > > It is not. Let's take blas for example. Install openblas and blas-reference, then eselect blas reference. Then install lapack-reference, then remove blas-reference. You will have to re-install lapack-reference, because of a missing reference to librefblas.so. If openblas had the libblas.so soname and link, you would not have to. I'm actually not sure whether it is a side effect of our as-needed policy. We need to change all blas ebuilds to make sure they have the same soname, and add to alternatives_for blas the libraries to link. For blas-reference, eigen, atlas and openblas, this is just a matter of a link flag. For acml and mkl, this is trickier, thus the gen_usr_ldscript from toolchain-funcs eclass idea. If the ldscript stuff is not much overhead, we could apply it to all. Sebastien
