Hi, When building py-grpcio I'm getting this error:
:notice:build ---> Building py27-grpcio :debug:build Executing proc-pre-org.macports.build-build-0 :debug:build Executing org.macports.build (py27-grpcio) :debug:build Environment: :debug:build CC='/usr/bin/clang' :debug:build CC_PRINT_OPTIONS='YES' :debug:build CC_PRINT_OPTIONS_FILE='/opt/local/var/macports/build/_Users_enrico_repos_github_macports-ports_python_py-grpcio/py27-grpcio/work/.CC_PRINT_OPTIONS' :debug:build CFLAGS='-arch x86_64' :debug:build CPATH='/opt/local/include' :debug:build CXX='/usr/bin/clang++' :debug:build CXXFLAGS='-arch x86_64' :debug:build F90FLAGS='-m64' :debug:build FCFLAGS='-m64' :debug:build FFLAGS='-m64' :debug:build LDFLAGS='-arch x86_64' :debug:build LIBRARY_PATH='/opt/local/lib' :debug:build MACOSX_DEPLOYMENT_TARGET='10.13' :debug:build OBJC='/usr/bin/clang' :debug:build OBJCFLAGS='-arch x86_64' :info:build Executing: cd "/opt/local/var/macports/build/_Users_enrico_repos_github_macports-ports_python_py-grpcio/py27-grpcio/work/grpcio-1.10.0" && /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 setup.py --no-user-cfg build :debug:build system: cd "/opt/local/var/macports/build/_Users_enrico_repos_github_macports-ports_python_py-grpcio/py27-grpcio/work/grpcio-1.10.0" && /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 setup.py --no-user-cfg build ... snip ... :info:build running build_ext :info:build In file included from src/boringssl/err_data.c:18: :info:build In file included from /opt/local/include/openssl/err.h:115: :info:build /opt/local/include/openssl/e_os2.h:276:11: error: 'OPENSSL_EXPORT' macro redefined [-Werror,-Wmacro-redefined] :info:build # define OPENSSL_EXPORT extern :info:build ^ :info:build third_party/boringssl/include/openssl/base.h:178:9: note: previous definition is here :info:build #define OPENSSL_EXPORT :info:build ^ Since grpcio includes boringssl sources (an openssl fork), I think the compiler include files search path is too wide and should not contain /opt/local/include/openssl. Examining setup.py I haven't been able to tell why are openssl header files pulled in as well. For reference, this is where include paths are set: CORE_INCLUDE = ('include', '.',) BORINGSSL_INCLUDE = (os.path.join('third_party', 'boringssl', 'include'),) ZLIB_INCLUDE = (os.path.join('third_party', 'zlib'),) CARES_INCLUDE = ( os.path.join('third_party', 'cares'), os.path.join('third_party', 'cares', 'cares'),) if 'darwin' in sys.platform: CARES_INCLUDE += (os.path.join('third_party', 'cares', 'config_darwin'),) if 'freebsd' in sys.platform: CARES_INCLUDE += (os.path.join('third_party', 'cares', 'config_freebsd'),) if 'linux' in sys.platform: CARES_INCLUDE += (os.path.join('third_party', 'cares', 'config_linux'),) if 'openbsd' in sys.platform: CARES_INCLUDE += (os.path.join('third_party', 'cares', 'config_openbsd'),) I'm not sure about how I should proceed. How is the compiler include file search path set up in this case? The /opt/local/include/openssl path should come from MacPorts, but I don't know where it's set and how I can override it. Thank in advance, -- Enrico