← Back to team overview

dolfin team mailing list archive

Re: LAPACK link problem

 

On Wed, Dec 16, 2009 at 03:34:54PM +0100, Johannes Ring wrote:
> On Wed, Dec 16, 2009 at 3:20 PM, Anders Logg <logg@xxxxxxxxx> wrote:
> > On Wed, Dec 16, 2009 at 01:12:14PM +0100, Johannes Ring wrote:
> >> On Wed, Dec 16, 2009 at 1:00 PM, Anders Logg <logg@xxxxxxxxx> wrote:
> >> > On Wed, Dec 16, 2009 at 12:51:37PM +0100, Johannes Ring wrote:
> >> >> On Wed, Dec 16, 2009 at 12:36 PM, Anders Logg <logg@xxxxxxxxx> wrote:
> >> >> > On Wed, Dec 16, 2009 at 12:01:01PM +0100, Johannes Ring wrote:
> >> >> >> On Wed, Dec 16, 2009 at 11:50 AM, Johannes Ring <johannr@xxxxxxxxx> wrote:
> >> >> >> > On Wed, Dec 16, 2009 at 10:47 AM, Anders Logg <logg@xxxxxxxxx> wrote:
> >> >> >> >> Is anyone else able to compile and link the test in
> >> >> >> >>
> >> >> >> >>  sandbox/misc/
> >> >> >> >>
> >> >> >> >> ?
> >> >> >> >
> >> >> >> > It compiles fine on my system. I can also run the demo but when I
> >> >> >> > press 'q' to exit the plot I get a segmentation fault.
> >> >> >>
> >> >> >> Also:
> >> >> >>
> >> >> >> johannr@simula-x61:~$ nm -D /usr/lib/liblapack.so | grep dgels_
> >> >> >> 00191a70 T dgels_
> >> >> >> johannr@simula-x61:~$ dpkg -S /usr/lib/liblapack.so
> >> >> >> liblapack-dev: /usr/lib/liblapack.so
> >> >> >> johannr@simula-x61:~$
> >> >> >
> >> >> > ok, good. I thought that DGLES was missing from the standard Ubuntu
> >> >> > LAPACK.
> >> >> >
> >> >> > Do we have a test for LAPACK or should we add one? The buildbot is
> >> >> > failing.
> >> >>
> >> >> No, we don't have a test for LAPACK but several of the other
> >> >> pkg-config generators adds -llapack to their pkg-config files. Maybe
> >> >> we should add pkg-config generator for LAPACK and then add 'Requires:
> >> >> lapack' in the other pkg-config files instead.
> >> >
> >> > Thats sounds like a good idea.
> >> >
> >> > Should I create a simple test program for LAPACK or what do you need
> >> > to create the test?
> >>
> >> Yes, a minimal test program would be good. Also, do you know how to
> >> find the LAPACK version?
> >>
> >> Johannes
> >
> > Here's a simple test program:
> >
> >  extern "C"
> >  {
> >    void dgels_(char* trans, int* m, int* n, int* nrhs,
> >                double* a, int* lda, double* b, int* ldb,
> >                double* work, int* lwork, int* info);
> >  }
> >
> >  int main()
> >  {
> >    double A[4] = {1, 0, 0, 1};
> >    double b[2] = {1, 1};
> >
> >    char trans = 'N';
> >    int m = 2;
> >    int n = 2;
> >    int nrhs = 1;
> >    int lda = 2;
> >    int ldb = 2;
> >    int lwork = 4;
> >    int status = 0;
> >    double* work = new double[m*lwork];
> >
> >    dgels_(&trans, &m, &n, &nrhs,
> >           A, &lda, b, &ldb,
> >           work, &lwork, &status);
> >
> >    delete [] work;
> >
> >    return status;
> >  }
> >
> > On my machine, this compiles with
> >
> >  g++ main.cpp -L/usr/lib/atlas -llapack
>
> Thanks!
>
> > I have no idea how to find the LAPACK version but as far as I know,
> > most of the interface of LAPACK has been fixed the last 30 years or so
> > so I assume we don't need to worry too much about that.
>
> Yes, thats true. I will assume version 3.0 in the pkg-config file then.
>
> Is LAPACK now a required or optional dependency? If the latter, should
> it be enabled by default or only if one of the other optional
> dependencies requires it?
>
> Johannes

I'm not sure. It's not an issue for me (since I'm running on Ubuntu)
but it's also not a big problem to add some #ifdef HAS_LAPACK in the
code so maybe we can have it as an optional dependency.

Just let me know when the HAS_LAPACK flag is available and I can try
and add it in the right places.

--
Anders


Attachment: signature.asc
Description: Digital signature


References