Opened 4 years ago
Closed 3 years ago
#61583 closed defect (fixed)
py38-graph-tool @2.33_0 +openmp Build Failure
Reported by: | bakergilx (Dennis Baker) | Owned by: | essandess (Steve Smith) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.6.4 |
Keywords: | bigsur | Cc: | |
Port: | py-graph-tool |
Description
Failed to build py38-graph-tool: command execution failed
on MacOS 11.0.1 and Xcode 12.2. See attached log file
Attachments (1)
Change History (14)
Changed 4 years ago by bakergilx (Dennis Baker)
comment:1 Changed 4 years ago by mf2k (Frank Schima)
Keywords: | bigsur added; Big Sur removed |
---|---|
Port: | py-graph-tool added; py38-graph-tool removed |
comment:2 Changed 4 years ago by mf2k (Frank Schima)
Error appears to be:
:info:build "typeinfo for graph_tool::ValueException", referenced from: :info:build betweenness(graph_tool::GraphInterface&, std::__1::vector<unsigned long, std::__1::allocator<unsigned long> >&, boost::any, boost::any, boost::any) in graph_betweenness.o :info:build norm_betweenness(graph_tool::GraphInterface&, std::__1::vector<unsigned long, std::__1::allocator<unsigned long> >&, boost::any, boost::any) in graph_betweenness.o :info:build eigentrust(graph_tool::GraphInterface&, boost::any, boost::any, double, unsigned long) in graph_eigentrust.o :info:build eigenvector(graph_tool::GraphInterface&, boost::any, boost::any, double, unsigned long) in graph_eigenvector.o :info:build hits(graph_tool::GraphInterface&, boost::any, boost::any, boost::any, double, unsigned long) in graph_hits.o :info:build katz(graph_tool::GraphInterface&, boost::any, boost::any, boost::any, long double, double, unsigned long) in graph_katz.o :info:build pagerank(graph_tool::GraphInterface&, boost::any, boost::any, boost::any, double, double, unsigned long) in graph_pagerank.o :info:build ... :info:build ld: symbol(s) not found for architecture x86_64 :info:build clang: error: linker command failed with exit code 1 (use -v to see invocation)
comment:3 Changed 4 years ago by bakergilx (Dennis Baker)
Owner: | set to count0 |
---|---|
Status: | new → assigned |
comment:4 Changed 4 years ago by mf2k (Frank Schima)
Owner: | count0 deleted |
---|
comment:5 Changed 4 years ago by ceandrade (Carlos Eduardo de Andrade)
It also fails for py39 and boost +python39 in the same platform.
comment:6 Changed 3 years ago by essandess (Steve Smith)
Same error for version 1.37, in addition to other link errors. Also please see https://git.skewed.de/count0/graph-tool/-/issues/702.
:info:build CXXLD libgraph_tool_centrality.la … :info:build Undefined symbols for architecture x86_64: :info:build "graph_tool::ActionNotFound::ActionNotFound(std::type_info const&, std::__1::vector<std::type_info const*, std::__1::allocator<std::type_info const*> > const&)", referenced from: :info:build betweenness(graph_tool::GraphInterface&, std::__1::vector<unsigned long, std::__1::allocator<unsigned long> >&, boost::any, boost::any, boost::any) in graph_betweenness.o :info:build norm_betweenness(graph_tool::GraphInterface&, std::__1::vector<unsigned long, std::__1::allocator<unsigned long> >&, boost::any, boost::any) in graph_betweenness.o :info:build central_point(graph_tool::GraphInterface&, boost::any) in graph_betweenness.o :info:build do_get_closeness(graph_tool::GraphInterface&, boost::any, boost::any, bool, bool) in graph_closeness.o :info:build eigentrust(graph_tool::GraphInterface&, boost::any, boost::any, double, unsigned long) in graph_eigentrust.o :info:build eigenvector(graph_tool::GraphInterface&, boost::any, boost::any, double, unsigned long) in graph_eigenvector.o :info:build hits(graph_tool::GraphInterface&, boost::any, boost::any, boost::any, double, unsigned long) in graph_hits.o :info:build ...
comment:7 Changed 3 years ago by essandess (Steve Smith)
This issue also exists with boost version 1.76.0. (See https://github.com/macports/macports-ports/pull/11272.)
comment:8 Changed 3 years ago by essandess (Steve Smith)
I believe that I've isolated the cause: the environment variable MACOSX_DEPLOYMENT_TARGET
set during configurations causes this issue.
When not set, graph-tool
builds correctly, shown using the MWE build below.
I'll post a PR with a graph-tool
update.
Is there a quick way of preventing the environment variable MACOSX_DEPLOYMENT_TARGET
from being set?
MWE graph-tool
build:
export CC=/opt/local/bin/clang-mp-9.0 export CXX=/opt/local/bin/clang++-mp-9.0 export CC_PRINT_OPTIONS='YES' CC_PRINT_OPTIONS_FILE='./.CC_PRINT_OPTIONS' export CFLAGS='-pipe -Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk -arch x86_64' export CPATH='/opt/local/include' export CXXFLAGS='-pipe -isystem/opt/local/libexec/boost/1.76/include -Os -stdlib=libc++ -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk -arch x86_64' export INSTALL='/usr/bin/install -c' export LDFLAGS='-L/opt/local/libexec/boost/1.76/lib -L/opt/local/lib -Wl,-headerpad_max_install_names -L/opt/local/lib -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk -arch x86_64' export LIBRARY_PATH='/opt/local/lib' export PYTHON='/opt/local/Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9' export PYTHON_CPPFLAGS='-I/opt/local/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9' export PYTHON_EXTRA_LDFLAGS='-L/opt/local/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/.. -lpython3.9' export PYTHON_LDFLAGS='-L/opt/local/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/.. -lpython3.9' export PYTHON_VERSION='3.9' export DEVELOPER_DIR='/Library/Developer/CommandLineTools' export SDKROOT='/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk' # export MACOSX_DEPLOYMENT_TARGET='11.0' ./configure --prefix=/opt/local --with-boost=/opt/local/libexec/boost/1.71 --with-boost-python=boost_python39-mt --with-boost-coroutine=boost_coroutine-mt --exec-prefix=/opt/local/Library/Frameworks/Python.framework/Versions/3.9 --with-expat=yes --with-expat-inc=/opt/local/include --with-expat-lib="-L/opt/local/lib -lexpat" --enable-openmp make
comment:9 follow-up: 11 Changed 3 years ago by kencu (Ken)
Even if unsetting MACOSX_DEPLOYMENT_TARGET hacks around the build error, it is very hard to imagine that being a proper fix to put into the MacPorts repo.
comment:10 Changed 3 years ago by essandess (Steve Smith)
comment:11 Changed 3 years ago by essandess (Steve Smith)
Replying to kencu:
Even if unsetting MACOSX_DEPLOYMENT_TARGET hacks around the build error, it is very hard to imagine that being a proper fix to put into the MacPorts repo.
For posterity, upstream disagrees: https://git.skewed.de/count0/graph-tool/-/issues/702#note_3858
I'm not sure where the issue lies, I'm just glad to have a working graph-tool
port again.
comment:12 Changed 3 years ago by kencu (Ken)
I see. I wish I understood better why setting it fails, and why clearing it works, but if it works it works.
Steve, thank you for taking the time to (at least try) to see what upstream thought about it. That is a gold star event!
comment:13 Changed 3 years ago by essandess (Steve Smith)
Owner: | set to essandess |
---|---|
Resolution: | → fixed |
Status: | assigned → closed |
main.log