py-cvxopt +DSDP

Jonathan Stickel jjstickel at gmail.com
Mon Jul 28 09:56:04 PDT 2014


> Date: Sun, 27 Jul 2014 13:47:20 -0500
> From: Mark Brethen <mark.brethen at gmail.com>
> Subject: py-cvxopt +DSDP
>
> py-cvxopt installed fine without any errors. However, when I tried running example code it reports:
>
> Symbol not found: _ATL_cGetNB
>   Referenced from: /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/cvxopt/lapack.so
>
> Why does numpy and cvxopt use Apple's Accelerate framework by default and DSDP use macport's ATLAS?
>
> Ticket #37097 describes issues building DSDP and other ports that depend on it (like cvxopt) due to linker issues with building against macports' ATLAS. I uninstalled DSDP and ATLAS and then patched DSDP as suggested in the ticket, but when I tried to install DSDP again it failed because it could not find Apple's Accelerate framework:
>
> :info:build /usr/bin/clang -O3 -arch x86_64 -o maxcut maxcut.o /opt/local/var/macports/build/_Users_marbre_ports_math_DSDP/DSDP/work/DSDP5.8/lib/libdsdp.a -latlas -lm
> :info:build ld: library not found for -latlas
> :info:build clang: error: linker command failed with exit code 1 (use -v to see invocation)
>
> I guess if you do this, you also need to provide the path to Apple's Accelerate framework?


It seems that DSDP does not work with Apple's Accelerate framework,
and hence if you use the +dsdp variant for py-cvxopt (not required),
then you must use also use the +atlas variant for py-cvxopt. I suppose
it is a bug that this conflict is not flagged in the py-cvxopt
portfile. You could open a ticket for that part, if you like. In the
meantime, just reinstall with consistent variants (I recommend using
+atlas for all of the above, including numpy and scipy).

Regards,
Jonathan


More information about the macports-users mailing list