I’ve been unable to build the latest stack on my Macbook Air Laptop (OS 10.10.5). It repeatedly fails with the following error message.
However, I can build on my desktop Mac Pro (OS 10.10.5). I don’t understand the difference. Can someone give me some pointers about what might be wrong with my laptop set up?
esutil: 0.5.3+2 ERROR (4 sec).
*** error building product esutil.
*** exit code = 1
*** log is in /Users/wmwv/lsstsw/build/esutil/_build.log
*** last few lines:
::::: [2016-08-12T19:17:56.515760Z] ...
::::: [2016-08-12T19:17:56.515787Z] "__Py_NotImplementedStruct", referenced from:
::::: [2016-08-12T19:17:56.515829Z] SwigPyObject_richcompare(SwigPyObject*, SwigPyObject*, int) in records_wrap.o
::::: [2016-08-12T19:17:56.515852Z] "__Py_TrueStruct", referenced from:
::::: [2016-08-12T19:17:56.515894Z] SwigPyObject_richcompare(SwigPyObject*, SwigPyObject*, int) in records_wrap.o
::::: [2016-08-12T19:17:56.515916Z] "__Py_ZeroStruct", referenced from:
::::: [2016-08-12T19:17:56.515958Z] SwigPyObject_richcompare(SwigPyObject*, SwigPyObject*, int) in records_wrap.o
::::: [2016-08-12T19:17:56.515983Z] ld: symbol(s) not found for architecture i386
::::: [2016-08-12T19:17:56.516024Z] clang: error: linker command failed with exit code 1 (use -v to see invocation)
::::: [2016-08-12T19:17:56.516050Z] error: command 'c++' failed with exit status 1
Make sure you are running the clang compiler on both (and the same version)
Look for installed packages that are interfering, such as MacPorts, fink, other installations of Python that is first on your $PATH (e.g. another anaconda or python.org org). For any of those I would disable them. I think homebrew is usually benign, but perhaps even that could interfere, depending on what packages you have installed.
Once you resolve this you might consider sharing one lsstsw between the two computers (if they run the same operating system and you can install lsstsw into the same location on both).
can you cd into the esutil directory and just build it there with your stack python? esutil is standalone and just uses setup.py. (it doesn’t build on python3 at all).
My miniconda is also just x86_64. I think esutil should add the architectures that were used to build Python. There is no point specifying an architecture that can’t be loaded. It’s pretty easy to check for the specific arch string in distutils.sysconfig to decide whether to add it. Maybe someone should do a pull request on upstream.