octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Changes in configure for Octave 4.0.1?


From: Mike Miller
Subject: Re: Changes in configure for Octave 4.0.1?
Date: Mon, 28 Mar 2016 18:08:04 -0700
User-agent: Mutt/1.5.24 (2015-08-30)

On Mon, Mar 28, 2016 at 21:11:00 +0200, José Luis García Pallero wrote:
> Yes, you are right, I've defined the LD_LIBRARY_PATH for my OpenBLAS.
> If I undefine it, the Octave configure works properly. But I still
> have some questions about the configure internals. I'll try to ask
> using examples:
> 
> 1. If I uninstall the Debian openblas, maintain the reference BLAS and
> Lapack and use my own OpenBLAS (only BLAS) via LD_LIBRARY_PATH the
> configure script works without problems. The script detects -lopenblas
> as BLAS because I've put the /opt/openblas/lib/ in LD_LIBRARY_PATH at
> the begining and the system detects libopenblas.so before the
> reference /usr/lib/libblas.so
> 
> 2. If I install the Debian openblas, maintain the reference BLAS and
> Lapack and turn off my own OpenBLAS, again the configure script works
> 
> 3. If I install the Debian openblas, maintain the reference BLAS and
> Lapack and maintain my own OpenBLAS via LD_LIBRARY_PATH come the
> problems.
> 
> First, if I execute
> 
> ./configure --prefix=/opt/octave/
> 
> I obtain an error about cheev_ doesn't found. In this case, the used
> openblas is my own library and Lapack is the system one (-llapack from
> the Debian openblas)
> 
> Second, if I execute
> 
> ./configure --prefix=/opt/octave/
> --with-blas=/opt/openblas/lib/libopenblas.so
> --with-lapack=/usr/lib/lapack/liblapack.so
> 
> i.e., I select explicitly my own OpenBLAS and the system reference
> Lapack stored in /usr/lib/lapack/liblapack.so, I obtain an
> //usr/lib/libblas.so.3: undefined reference to `gotoblas' (I attach
> the config.log_myopenblas). But the same configuration didn't produce
> errors (this is the same configuration as in example 1 because here I
> select explicitly the libraries involved in that example)
> 
> Third, if I execute
> 
> ./configure --prefix=/opt/octave/
> --with-blas=/usr/lib/openblas-base/libblas.so
> --with-lapack=/usr/lib/openblas-base/liblapack.so
> 
> i.e., I select explicitly the Debian OpenBLAS, I obtain again (I
> attach config.log_debianopenblas) the error about the undfined
> reference of gotoblas in /usr/lib/openblas-base/libblas.so
> 
> Finally, if I execute
> 
> ./configure --prefix=/opt/octave/ --with-blas=/usr/lib/libopenblas.so
> --with-lapack=/usr/lib/libopenblas.so
> 
> i.e. another way to select explicitly the Debian OpenBLAS, because in
> addition to /usr/lib/openblas-base/libblas.so and
> /usr/lib/openblas-base/liblapack.so the library
> /usr/lib/libopenblas.so is also installed, which contains BLAS and
> Lapack. In this case the configure works but with the warning WARNING:
> ARPACK library found, but does not seem to work properly -- disabling
> eigs function (I attach config.log_arpack)
> 
> So the configuration works if I disable my OpenBLAS, but I don't
> understand the behavior when both mine and the Debian one coexists and
> I select explicitly one of them in the configure process

I have never built or installed OpenBLAS myself except from the Debian
packages, so I don't understand much about this either.

But the problems all seem to arise when you use Debian's OpenBLAS
compatibility wrapper for libblas.so.3 with your own self-compiled
OpenBLAS.

I'm guessing something in the build process needs a library called
"libblas.so.3" and if the one in /usr/lib is the first one found, that's
Debian's OpenBLAS wrapper, which in turn depends on libopenblas.so.0.

Does your /opt/openblas build have a libblas.so.3 library? If so, can
you arrange for it to be used instead of /usr/lib/libblas.so.3? If not,
why not, is it needed, and if so how do you build it for your OpenBLAS?
And why does the Debian one not work with your libopenblas.so.0?

I would guess if you were building *everything* from scratch, you could
simply link everything against libopenblas.so.0 and it would just work.
But since you have other libraries installed from Debian that are built
against libblas.so.3, that shim library is needed to make OpenBLAS work
as a drop-in replacement.

That's as much as I know, I hope it helps, let us know if you figure
something out.

-- 
mike



reply via email to

[Prev in Thread] Current Thread [Next in Thread]