1 |
On 14/09/13 20:14, Markus Oehme wrote: |
2 |
> Hi, |
3 |
> |
4 |
> At Thu, 12 Sep 2013 11:19:11 +0200, |
5 |
> Markus wrote: |
6 |
>> 4. remove /usr/lib/libblas.so (which was kept by preserve-libs) |
7 |
>> that is actually do 'rm /usr/lib/libblas.so' |
8 |
> |
9 |
> |
10 |
> I see something really strange: repeatedly merging lapack-reference causes |
11 |
> it to bounce between two states. Where in one state there are three |
12 |
> additional files installed by the package: |
13 |
> /usr/lib/debug/usr/lib64/libblas.so.debug |
14 |
> /usr/lib64/libblas.so |
15 |
> /usr/lib64/pkgconfig/blas.pc |
16 |
> I tried it a larger number of times and the package alternates predictably |
17 |
> between the two states. Any hints on how this can happen? Also it seems that |
18 |
> in the state where the files are not there other packages have difficulties |
19 |
> finding BLAS -- so the woes do not seem to be over yet. *sigh* |
20 |
> |
21 |
> |
22 |
lapack-reference includes blas-reference. It looks to me that what |
23 |
happens when you get these extra files is the following: |
24 |
1) There is no blas properly eselected (or is broken) |
25 |
2) because of (1) lapack-reference fails to find a blas at configure |
26 |
time and therefore builds its own. |
27 |
3) lapack-reference install libblas.so and related files. |
28 |
At this stage in the cycle you merge lapack-reference again |
29 |
1) while there is no blas properly eselected at configure stage the |
30 |
previously installed libblas.so is found. |
31 |
2) lapack-reference uses it to build libreflapack.so. |
32 |
3) when lapack-reference is merged it doesn't include a libblas.so |
33 |
and portage removes it when cleaning files from the previous merge. |
34 |
|
35 |
Repeat.... |
36 |
|
37 |
So the solution is: properly eselect a blas and make sure it is a valid |
38 |
and sane configuration. |
39 |
|
40 |
I know this is annoying but after each time you merge a |
41 |
blas/cblas/lapack and related friends which use altenatives, you need to |
42 |
check |
43 |
what is eselected. |
44 |
|
45 |
Usually something valid is eselected but if you have several |
46 |
implementations at the same time it tends to reset to the first one |
47 |
in the list after each merge. |
48 |
|
49 |
Francois |