Bug 562577 - numpy unusable : ImportError: undefined symbol: zgesdd_
Summary: numpy unusable : ImportError: undefined symbol: zgesdd_
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: numpy
Version: rawhide
Hardware: All
OS: Linux
low
medium
Target Milestone: ---
Assignee: Gwyn Ciesla
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 560086 565266 565267 (view as bug list)
Depends On:
Blocks: 539069 564796 565086 565107
TreeView+ depends on / blocked
 
Reported: 2010-02-07 14:26 UTC by pankaj pandey
Modified: 2010-03-10 21:32 UTC (History)
9 users (show)

Fixed In Version: numpy-1.4.0-4.fc13
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-03-10 21:32:59 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description pankaj pandey 2010-02-07 14:26:43 UTC
Description of problem:
Numpy is unusable in current rawhide.

Version-Release number of selected component (if applicable):
numpy-1.4.0-1.fc13.x86_64

How reproducible:
always

Steps to Reproduce:
1. import numpy in a python shell
2.
3.
  
Actual results:
[pankaj@localhost Tatu]$ python
Python 2.6.4 (r264:75706, Jan 30 2010, 00:24:32) 
[GCC 4.4.3 20100127 (Red Hat 4.4.3-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.6/site-packages/numpy/__init__.py", line 132, in <module>
    import add_newdocs
  File "/usr/lib64/python2.6/site-packages/numpy/add_newdocs.py", line 9, in <module>
    from lib import add_newdoc
  File "/usr/lib64/python2.6/site-packages/numpy/lib/__init__.py", line 13, in <module>
    from polynomial import *
  File "/usr/lib64/python2.6/site-packages/numpy/lib/polynomial.py", line 17, in <module>
    from numpy.linalg import eigvals, lstsq
  File "/usr/lib64/python2.6/site-packages/numpy/linalg/__init__.py", line 47, in <module>
    from linalg import *
  File "/usr/lib64/python2.6/site-packages/numpy/linalg/linalg.py", line 22, in <module>
    from numpy.linalg import lapack_lite
ImportError: /usr/lib64/python2.6/site-packages/numpy/linalg/lapack_lite.so: undefined symbol: zgesdd_
>>>

Expected results:
numpy shoulb import normally

Additional info:
googling this says it it due to incompatible lapack versions

Comment 1 Caolan McNamara 2010-02-08 11:28:33 UTC
*** Bug 560086 has been marked as a duplicate of this bug. ***

Comment 2 Caolan McNamara 2010-02-08 11:59:53 UTC
I see another liblapack in /usr/lib/atlas of a different version. If I strip
the atlas BuildRequires from numpy then the problem goes away, but would
re-introduce bug 505376 I guess, but at least numpy would work

Comment 3 Gwyn Ciesla 2010-02-09 14:51:31 UTC
Put built without Atlas in rawhide to work around this.  I'll play with a permanent fix.  Patches welcome.

Comment 4 Kevin Kofler 2010-02-10 02:37:00 UTC
Building without ATLAS didn't help. See this avogadro build log:
http://koji.fedoraproject.org/koji/getfile?taskID=1973177&name=build.log

Comment 5 Caolan McNamara 2010-02-10 10:27:34 UTC
The catch is that both atlas and lapack provide liblapack.so.3. I assume from the naming that lapack is the canonical one and the one in atlas is intended to be an optimized one or something. The two are incompatible at the moment which is where the problem arises. e.g. bug #478856

If numpy is built *with* atlas available in the buildroot then it ends up requiring libatlas. If it not built with atlas in the buildroot then it doesn't require libatlas.

In either case if atlas is installed on the target box then the atlas liblapack overrides the liblapack one and the problem reappears again. With atlas support the problem always happens as atlas must be installed on the target, without atlas support the problem only happens when someone installs atlas.

Our atlas is a bit of a mess here. At the least the liblapack in atlas needs to provide zgesdd_, bah.

Comment 6 Caolan McNamara 2010-02-10 11:53:11 UTC
This is all atlas's fault really, but from the root.log of avogadro I suspect that if there was a Requires: lapack in numpy then the atlas lapack wouldn't be pulled in by koji by the autodependency on liblapack and the build itself would work anyway.

Comment 7 Gwyn Ciesla 2010-02-10 13:42:13 UTC
Should I build with that Requires to test?

Comment 8 Caolan McNamara 2010-02-10 13:54:58 UTC
I reckon its worth a shot. Its only a bandaid over another packages problems, but at least it helps documents that numpy is supposed to be linked to lapack's liblapack.

Comment 9 Gwyn Ciesla 2010-02-10 14:20:55 UTC
Done.

Comment 10 Kevin Kofler 2010-02-10 16:46:27 UTC
But it's likely to break things at runtime for users who have ATLAS installed. We need to get ATLAS fixed. It already includes a bunch of functions from reference LAPACK where it doesn't have an optimized implementation, it just needs to add zgesdd_ to those.

Comment 11 Gwyn Ciesla 2010-02-10 18:51:23 UTC
I'll be happy to change it back once atlas is fixed.  Should this but perhaps be reassigned to atlas?

Comment 12 Kevin Kofler 2010-02-10 18:55:25 UTC
Yes, done.

Comment 13 Deji Akingunola 2010-02-10 19:45:51 UTC
Fixed already.

Comment 14 Kevin Kofler 2010-02-10 19:51:52 UTC
So can we reenable ATLAS support in numpy now?

Comment 15 Susi Lehtola 2010-02-14 08:48:47 UTC
*** Bug 565266 has been marked as a duplicate of this bug. ***

Comment 16 Susi Lehtola 2010-02-14 08:48:55 UTC
*** Bug 565267 has been marked as a duplicate of this bug. ***

Comment 17 Gwyn Ciesla 2010-02-16 16:00:45 UTC
Ping, Deji?

Comment 18 Deji Akingunola 2010-02-16 16:56:20 UTC
(In reply to comment #17)
> Ping, Deji?    

Comment 13

Comment 19 Gwyn Ciesla 2010-02-16 17:54:19 UTC
Comment 9

Comment 20 Thomas Spura 2010-03-10 21:32:59 UTC
This seems to be fixed in numpy-1.4.0-4.fc13.

Wondering, why this bug is still open... Reopen, if I'm wrong...


Note You need to log in before you can comment on or make changes to this bug.