Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build failure on os x with g++ 7.2 and case preserving filesystem #30

Closed
grumpyquant opened this issue Nov 24, 2017 · 1 comment
Closed

Comments

@grumpyquant
Copy link

CVXcanon doesn't build from the pip package on OS X using g++ 7.2 (from homebrew) in the case where the filesystem is configured to be case preserving rather than case sensitive.

The problem is that the compiler confuses Eigen/Array for the array header in the STL, leading to errors:

  /usr/local/bin/gcc-7 -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Isrc/ -Isrc/python/ -Iinclude/Eigen -I/usr/local/lib/python3.6/site-packages/numpy/core/include -I/usr/local/include -I/usr/local/opt/openssl/include -I/usr/local/opt/sqlite/include -I/usr/local/Cellar/python3/3.6.3/Frameworks/Python.framework/Versions/3.6/include/python3.6m -c src/CVXcanon.cpp -o build/temp.macosx-10.13-x86_64-3.6/src/CVXcanon.o
  cc1plus: warning: command line option '-Wstrict-prototypes' is valid for C/ObjC but not for C++
  In file included from /usr/local/Cellar/gcc/7.2.0/include/c++/7.2.0/tuple:39:0,
                   from /usr/local/Cellar/gcc/7.2.0/include/c++/7.2.0/functional:54,
                   from src/../include/Eigen/Core:153,
                   from src/../include/Eigen/SparseCore:4,
                   from src/../include/Eigen/Sparse:19,
                   from src/Utils.hpp:18,
                   from src/LinOp.hpp:22,
                   from src/CVXcanon.hpp:20,
                   from src/CVXcanon.cpp:16:
  include/Eigen/array:8:4: error: #error The Eigen/Array header does no longer exist in Eigen3. All that functionality has moved to Eigen/Core.
     #error The Eigen/Array header does no longer exist in Eigen3. All that functionality has moved to Eigen/Core.
      ^~~~~

It looks to me like the Eigen/Array header is not used at all in the project - if you remove this header then the build proceeds without error.

Can you please delete the Array header and repackage the library on pip?

@dmichalowicz
Copy link
Contributor

I think this can be closed given #34, unless we want to wait for a pypi release first?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants