Atlas and lapack provide the same library..compiled differently... is that a problem?

Jeff Spaleta jspaleta at gmail.com
Mon Jan 5 17:23:52 UTC 2009


On Mon, Jan 5, 2009 at 7:59 AM, Jonathan Underwood
<jonathan.underwood at gmail.com> wrote:
> Yes - the problem is that that Atlas implemented versions of lapack
> symbols get prefixed with clapack_ so these two liblapack libraries
> are not ABI compatible.

>
> This is an ugly situation - I think the Atlas liblapack should be
> renamed to something else, personally.

I'd rather not make it personal :->
>
> However, to fix your scipy problem, wouldn't a Requires: atlas "fix"
> the issue? (And associated BuildRequires, I guess). That's an obscene
> hack tho :).

Yes explicitly requiring atlas would solve the corner case you
discovered where blas and lapack were installed but atlas was not.
But that cornercase does not affect scipy as scipy package requires
libatlas.so.3.  This may be true for anything build against the atlas
provided lapack libraries. So the cornercase maybe vanishingly small
for Fedora packages which use atlas at build time.  I can poke with
reqoquery and see if libatlas.so.3 is always in the dep chain.

What Michael said could be true as far as fedora packaging processes
are concerned...this is compatible...assuming no local linker path
customizations are employed.  But from the linker standpoint and more
importantly for locally compiled code, I would think you are correct,
the ABI incompatibility is a very good reason to change the library
names to prevent cornercase runtime linking problems.

Here's the weird part... the user reporting the problem with scipy had
atlas installed!  I can't confirm the one legit user reported problem
with incorrect linking, That report has to be a client side linker
path configuration customization on the affected machines.  But that's
going to be difficult for me to prove to my satisfaction.

https://bugzilla.redhat.com/show_bug.cgi?id=478435#c12

His home machine links as expected, multiple work machines don't even
with atlas installed.  Dollars to doughnuts he's using
LD_LIBRARAY_PATH or has a custom ld.so.conf.d script in place which
changes if the atlas library is linked.


-jef




More information about the fedora-devel-list mailing list