Mon 14 Jul 2014 06:23:49 PM UTC, comment #6:
I don't think there is enough detail in this report for me to understand what is really happening.
It appears that somehow you no longer have libblas.so.0 on your system, but some library is still linked to it. Perhaps that is a packaging bug? Or some library that Octave is linked with that uses libblas.so.0 was not removed when libblas.so.0 was removed from your system?
When did you remove libblas.so.0? Before or after configuring and building Octave?
Are the Octave libraries linked directly with libblas.so.0? I think you would have to look at the link commands for liboctave, liboctinterp to see as ldd seems to just report the full list of all libraries that are linked, even if not directly.
Is some other library linked directly with libblas.so.0? What does ldd tell you if you ask for the list of libraries linked to the arpack and qrupdate libraries?
|
Mon 14 Jul 2014 06:07:15 PM UTC, comment #5:
Unfortunately I cannot reproduce it anymore without replacing blas..
To clarify, octave's configure dropped the message like in the report, but finished without an error. So this is somehow more a warning. Make build octave and after it was installed 'ldd' showed that octave was linked against '/usr/lib64/libblas.so.0' and '/usr/lib64/librefblas.so'.
I think the problem is that octave somehow still was build with support for arpack and qrupdate. This has to generate trouble, because both libraries were build against -lblas. The point I don't understand is, that configure detected that this will not work out, but finally octave still build against those libs, resulting in a linkage with libblas.so.0 and a non-starting octave binary.
|
Mon 14 Jul 2014 01:38:02 PM UTC, comment #4:
So you're saying Octave correctly avoids building against qrupdate and arpack, but it still won't run because of a link to libblas instead of librefblas? Are you sure it is the octave-cli executable that directly links to libblas or is it via another library? The configure summary that shows at the end of the configure command should list all external libraries that Octave will link against. If you don't see "-lblas" in that output, then it's likely coming in as a dependency of another shared library.
|
Mon 14 Jul 2014 03:17:45 AM UTC, comment #2:
This may be annoying, but isn't an error with the Octave build system. qrupdate and arpack are optional features. During the configure process Octave tries to build a small test program which uses the qrupdate library. If that fails, the build process assumes that qrupdate isn't available and just disables those optional functions that might depend on it.
In this case, the qrupdate library wasn't available because it had been compiled against the previous BLAS library and so the build process discarded it.
|
Sun 13 Jul 2014 12:38:06 PM UTC, original submission:
I am an gentoo science-overlay user, so I switched from libblas to librefblas, same for LAPACK. That's why I needed to rebuild octave. Unfortunately, configure detected an error, but didn't aborted the build process. Here the extract from config.log:
configure:35899: $? = 0
configure:35908: result: yes
configure:35940: checking for slup1up in -lqrupdate
configure:35956: x86_64-pc-linux-gnu-gfortran -o conftest -O2 -pipe -Wl,-O1 -Wl,--as-needed conftest.f -lreflapack -lrefblas -lrefblas -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3 -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/../../../../x86_64-pc-linux-gnu/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/../../.. -lgfortran -lm -lquadmath -lm -lqrupdate >&5
/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/../../../../x86_64-pc-linux-gnu/bin/ld: warning: libblas.so.0, needed by /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/../../../../lib64/libqrupdate.so, not found (try using -rpath or -rpath-link)
/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/../../../../x86_64-pc-linux-gnu/bin/ld: warning: liblapack.so.0, needed by /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/../../../../lib64/libqrupdate.so, not found (try using -rpath or -rpath-link)
So, makes does its work and after all I just get a
$ octave
/usr/bin/octave-cli-3.8.1: error while loading shared libraries: libblas.so.0: cannot open shared object file: No such file or directory
In that case, should configure abort with an error instead of just showing a warning? Acctually it's my fault, needed to rebuild qrupdate, but anyway have some time if ocatve just had quit building.
|