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. |