Gentoo Archives: gentoo-science

From: "François Bissey" <fbissey@××××××××××××.nz>
To: gentoo-science@l.g.o
Subject: Re: [gentoo-science] [PATCH 00/10] alternatives-2.eclass updates
Date: Tue, 21 Jan 2014 20:35:06
Message-Id: 72455a8588fad95f4f73a82c393bf6c7@slingshot.co.nz
In Reply to: Re: [gentoo-science] [PATCH 00/10] alternatives-2.eclass updates by "Sébastien Fabbro"
1 On 2014-01-22 09:04, Sébastien Fabbro wrote:
2 > On Tue, Jan 21, 2014 at 11:26 AM, Reinis Danne <rei4dan@×××××.com>
3 > wrote:
4 >
5 >> How the eselect module creation could work? Something like this?
6 >>
7 >> ~# eselect module create blas
8 >> ~# eselect blas add atlas importance src dest [src dest [..]]
9 >> ...
10 >> ~# eselect blas remove atlas
11 >> ~# eselect delete blas
12 >
13 >  
14 >
15 > That is the idea. Last one should be "eselect module delete blas".
16 >  
17 >
18 >>> * given the number of bugs, we should keep the linking to the
19 >> reference
20 >>> names libraries, so we could eselect providers without
21 >> re-compiling all
22 >>> reverse dependencies. We could do this in the open sourced
23 >> providers by
24 >>> changing the soname of the libraries we compile, and in the
25 >> binary ones
26 >>> (mkl,amcl...) with a link script generated library.
27 >>
28 >> Yes, this is ok and AFAICT it is like that now in the overlay.
29 >
30 >  
31 > It is not. Let's take blas for example. Install openblas and
32 > blas-reference, then eselect blas reference. Then install
33 > lapack-reference, then remove blas-reference. You will have to
34 > re-install lapack-reference, because of a missing reference to
35 > librefblas.so. If openblas had the libblas.so soname and link, you
36 > would not have to. I'm actually not sure whether it is a side effect
37 > of our as-needed policy.
38 >  
39
40 Just to make sure the message is clear, I use openblas:
41 readelf -d /usr//lib64/libreflapack.so
42
43 Dynamic section at offset 0x4f9e08 contains 26 entries:
44 Tag Type Name/Value
45 0x0000000000000001 (NEEDED) Shared library:
46 [libopenblas.so.0]
47 0x0000000000000001 (NEEDED) Shared library:
48 [libgfortran.so.3]
49 0x0000000000000001 (NEEDED) Shared library: [libm.so.6]
50 0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1]
51 0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
52 0x000000000000000e (SONAME) Library soname:
53 [libreflapack.so]
54
55 So the soname is embedded in the shared object and the linker will look
56 for it
57 at runtime. Remove openblas and my reflapack is broken in spite of the
58 fact that
59 I have 2 other blas on the system.