Opened 10 years ago

Closed 10 years ago

#41397 closed defect (fixed)

py27-numpy @1.8.0_0: Causes "Symbol not found: _ATL_ccopy" build failures in other ports

Reported by: mndavidoff (Monte Davidoff) Owned by: seanfarley (Sean Farley)
Priority: Normal Milestone:
Component: ports Version: 2.2.1
Keywords: Cc: michaelld (Michael Dickens), seanfarley (Sean Farley), gnw3, petrrr, cooljeanius (Eric Gallager)
Port: py-numpy

Description

After I upgraded to py27-numpy @1.8.0_0, multiple ports that use numpy fail to build with the same error. For example:

$ port -d installed py27-numpy
The following ports are currently installed:
  py27-numpy @1.8.0_0 (active) platform='darwin 10' archs='x86_64'
$ sudo port -vs install py27-numexpr
...
--->  Building py27-numexpr
Traceback (most recent call last):
  File "setup.py", line 16, in <module>
    import numpy
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/__init__.py", line 153, in <module>
    from . import add_newdocs
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/add_newdocs.py", line 13, in <module>
    from numpy.lib import add_newdoc
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/lib/__init__.py", line 18, in <module>
    from .polynomial import *
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/lib/polynomial.py", line 19, in <module>
    from numpy.linalg import eigvals, lstsq, inv
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/linalg/__init__.py", line 50, in <module>
    from .linalg import *
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/linalg/linalg.py", line 29, in <module>
    from numpy.linalg import lapack_lite, _umath_linalg
ImportError: dlopen(/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/linalg/_umath_linalg.so, 2): Symbol not found: _ATL_ccopy
  Referenced from: /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/linalg/_umath_linalg.so
  Expected in: flat namespace
 in /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/linalg/_umath_linalg.so
Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_python_py-numexpr/py27-numexpr/work/numexpr-2.2.2" && /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 setup.py --no-user-cfg build 
Exit code: 1
Error: org.macports.build for port py27-numexpr returned: command execution failed
Warning: targets not executed for py27-numexpr: org.macports.activate org.macports.build org.macports.destroot org.macports.install
Please see the log file for port py27-numexpr for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_python_py-numexpr/py27-numexpr/main.log
To report a bug, follow the instructions in the guide:
    http://guide.macports.org/#project.tickets
Error: Processing of port py27-numexpr failed

As well as py27-numexpr, I noticed the same build failure for py27-bottleneck, py27-gnuplot, py27-scipy, py27-svipc, and py27-tables.

Attachments (8)

py27-numpy-main.log.gz (42.3 KB) - added by mndavidoff (Monte Davidoff) 10 years ago.
py27-numexpr-main.log.gz (3.7 KB) - added by mndavidoff (Monte Davidoff) 10 years ago.
py27-bottleneck-main.log.gz (3.7 KB) - added by mndavidoff (Monte Davidoff) 10 years ago.
py27-gnuplot-main.log.gz (5.8 KB) - added by mndavidoff (Monte Davidoff) 10 years ago.
py27-scipy-main.log.gz (4.2 KB) - added by mndavidoff (Monte Davidoff) 10 years ago.
py27-svipc-main.log.gz (3.8 KB) - added by mndavidoff (Monte Davidoff) 10 years ago.
py27-tables-main.log.gz (2.7 KB) - added by mndavidoff (Monte Davidoff) 10 years ago.
py27-tables-main.log.2.gz (2.7 KB) - added by mndavidoff (Monte Davidoff) 10 years ago.

Download all attachments as: .zip

Change History (20)

Changed 10 years ago by mndavidoff (Monte Davidoff)

Attachment: py27-numpy-main.log.gz added

Changed 10 years ago by mndavidoff (Monte Davidoff)

Attachment: py27-numexpr-main.log.gz added

Changed 10 years ago by mndavidoff (Monte Davidoff)

Attachment: py27-bottleneck-main.log.gz added

Changed 10 years ago by mndavidoff (Monte Davidoff)

Attachment: py27-gnuplot-main.log.gz added

Changed 10 years ago by mndavidoff (Monte Davidoff)

Attachment: py27-scipy-main.log.gz added

Changed 10 years ago by mndavidoff (Monte Davidoff)

Attachment: py27-svipc-main.log.gz added

Changed 10 years ago by mndavidoff (Monte Davidoff)

Attachment: py27-tables-main.log.gz added

Changed 10 years ago by mndavidoff (Monte Davidoff)

Attachment: py27-tables-main.log.2.gz added

comment:1 Changed 10 years ago by mf2k (Frank Schima)

Cc: sean@… added; dh@… removed
Owner: changed from macports-tickets@… to dh@…

comment:2 Changed 10 years ago by seanfarley (Sean Farley)

Ok, I'll look into these.

comment:3 Changed 10 years ago by gnw3

Cc: gnwiii@… added

Cc Me!

comment:4 Changed 10 years ago by gnw3

The problem doesn't occur when numpy is built on a system where atlas is not installed, so it seems that pyNN-numpy finds and uses portions of atlas if it is installed, even when +atlas was not given. In other words -- the problem only affects those who have installed atlas but aren't using it with numpy. This can easily happen if you just accept the defaults for octave-devel and then upgrade numpy.

After rebuilding py27-numpy and py33-numpy with +atlas:

$ sudo port -s install  py27-numpy +atlas 
[...]
$ /opt/local/bin/python -c 'import numpy; numpy.test(verbose=3)'
[...]

----------------------------------------------------------------------
Ran 4575 tests in 79.728s

OK (KNOWNFAIL=5, SKIP=6)
$ sudo port -s install py33-numpy +atlas
[...]

----------------------------------------------------------------------
Ran 4574 tests in 89.445s

OK (KNOWNFAIL=6, SKIP=6)
$ port -s upgrade outdated
[...]
--->  Updating database of binaries: 100.0%
--->  Scanning binaries for linking errors: 100.0%
--->  No broken files found.

comment:5 in reply to:  4 Changed 10 years ago by seanfarley (Sean Farley)

Replying to gnwiii@…:

The problem doesn't occur when numpy is built on a system where atlas is not installed, so it seems that pyNN-numpy finds and uses portions of atlas if it is installed, even when +atlas was not given. In other words -- the problem only affects those who have installed atlas but aren't using it with numpy. This can easily happen if you just accept the defaults for octave-devel and then upgrade numpy.

After rebuilding py27-numpy and py33-numpy with +atlas:

$ sudo port -s install  py27-numpy +atlas 
[...]
$ /opt/local/bin/python -c 'import numpy; numpy.test(verbose=3)'
[...]

----------------------------------------------------------------------
Ran 4575 tests in 79.728s

OK (KNOWNFAIL=5, SKIP=6)
$ sudo port -s install py33-numpy +atlas
[...]

----------------------------------------------------------------------
Ran 4574 tests in 89.445s

OK (KNOWNFAIL=6, SKIP=6)
$ port -s upgrade outdated
[...]
--->  Updating database of binaries: 100.0%
--->  Scanning binaries for linking errors: 100.0%
--->  No broken files found.

Aha, thanks for figuring this out! I was still waiting for ATLAS to finish building to try and debug this :-( I should be able to fix this soon now (whenever ATLAS finishes).

comment:6 Changed 10 years ago by petrrr

Cc: Peter.Danecek@… added

Cc Me!

comment:7 Changed 10 years ago by skymoo (Adam Mercer)

Cc: ram@… added

Cc Me!

comment:8 Changed 10 years ago by seanfarley (Sean Farley)

Owner: changed from dh@… to sean@…

Fixed by r113781 and r113786.

comment:9 Changed 10 years ago by cooljeanius (Eric Gallager)

Cc: egall@… added

Cc Me!

comment:10 in reply to:  8 Changed 10 years ago by mndavidoff (Monte Davidoff)

Replying to sean@…: The fix works for me. Thanks!

comment:11 Changed 10 years ago by skymoo (Adam Mercer)

Cc: ram@… removed

comment:12 Changed 10 years ago by seanfarley (Sean Farley)

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.