Opened 12 years ago

Closed 12 years ago

#34695 closed defect (fixed)

port arpack, update to new atlas library names

Reported by: anddam (Andrea D'Amore) Owned by: mamoll (Mark Moll)
Priority: Normal Milestone:
Component: ports Version: 2.1.1
Keywords: Cc:
Port: arpack

Description

Atlas changed name to its libraries, it split libatlas into libsatlas and libmatlas, cf. ticket:25662#comment:41. Currently port atlas is providing only those two as dylib file while the other libraries are provided as ar archive.

1) port arpack is appending liblapack.dylib to configure arguments, the configure script fallbacks to -llapack but there's no need to explictly point a non existing file;

2) an user had missing library reference in his arpack library, I suggest to bump arpack revision to trigger updates, cf. ticket:25662#comment:40 and ticket:25662#comment:56;

3) configure script is setting -latlas, this should be replaced with one of the aforementioned libraries.

Change History (5)

comment:1 Changed 12 years ago by mamoll (Mark Moll)

Resolution: fixed
Status: newclosed

Fixed in r93972.

comment:2 Changed 12 years ago by anddam (Andrea D'Amore)

Resolution: fixed
Status: closedreopened

Why changing liblapack.dylib to libtatlas.a rather than the provided liblapack.a? The latter seems to make more sense since the configure argument is about lapack.

Furthermore I was wondering about a conditional patch about the latlas linker flag, configure script (or Makefile after configure phase) needs to use -latlas when using accelerate because system's library is still libatlas.dylib, and it needs to switch to -ltatlas when using port atlas.

Reopening until further discussion.

comment:3 Changed 12 years ago by mamoll (Mark Moll)

Generally speaking, dynamic linking is preferred. The arpack seems to automatically pick up the right atlas location when it is installed, regardless of whether you specify --with-lapack or not. I don't understand the second comment about the conditional patch. Please elaborate on the problem you are seeing.

comment:4 in reply to:  3 Changed 12 years ago by anddam (Andrea D'Amore)

Replying to mmoll@…:

Generally speaking, dynamic linking is preferred. The arpack seems to automatically pick up the right atlas location when it is installed, regardless of whether you specify --with-lapack or not.

I didn't realize functions from lapack are exported in the atlas dylibs (I just checked the symbols), I agree that using libtatlas.dylib sounds right.

I don't understand the second comment about the conditional patch. Please elaborate on the problem you are seeing.

When building +atlas, thus passing --with-lapack=${prefix}/lib/libtatlas.dylib to configure script, there is a reference to -latlas

checking for ATL_xerbla in -latlas... yes

That's the system library since port atlas doesn't provide libatlas.dylib. This sounds a wrong behavior, we want to use mp provided atlas when using +atlas variant.

I suggest to manually patch from -latlas to -ltatlas after configure phase in +atlas variant. This is the conditional patch I was talking about.

comment:5 Changed 12 years ago by mamoll (Mark Moll)

Resolution: fixed
Status: reopenedclosed

Fixed in r94071.

Note: See TracTickets for help on using tickets.