Opened 9 months ago
Last modified 9 months ago
#69098 new defect
dispenso fails to build on 10.10–10.11: error: no member named 'malloc' in the global namespace
Reported by: | barracuda156 | Owned by: | |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.8.1 |
Keywords: | elcapitan, yosemite | Cc: | |
Port: | dispenso |
Description
[ 33%] Building CXX object dispenso/CMakeFiles/dispenso.dir/pool_allocator.cpp.o cd /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_devel_dispenso/dispenso/work/build/dispenso && /usr/bin/clang++ -DDISPENSO_LIB_EXPORT -DDISPENSO_SHARED_LIB -Ddispenso_EXPORTS -I/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_devel_dispenso/dispenso/work/dispenso-1.2.0/dispenso/.. -I/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_devel_dispenso/dispenso/work/dispenso-1.2.0/dispenso/third-party/moodycamel -I/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_devel_dispenso/dispenso/work/build -pipe -Os -DNDEBUG -I/opt/local/include -stdlib=libc++ -arch x86_64 -mmacosx-version-min=10.11 -fPIC -fvisibility=hidden -Wall -Wextra -pedantic -Wconversion -Wno-sign-conversion -Werror -std=c++14 -MD -MT dispenso/CMakeFiles/dispenso.dir/pool_allocator.cpp.o -MF CMakeFiles/dispenso.dir/pool_allocator.cpp.o.d -o CMakeFiles/dispenso.dir/pool_allocator.cpp.o -c /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_devel_dispenso/dispenso/work/dispenso-1.2.0/dispenso/pool_allocator.cpp In file included from /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_devel_dispenso/dispenso/work/dispenso-1.2.0/dispenso/detail/per_thread_info.cpp:8: In file included from /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_devel_dispenso/dispenso/work/dispenso-1.2.0/dispenso/../dispenso/detail/per_thread_info.h:10: /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_devel_dispenso/dispenso/work/dispenso-1.2.0/dispenso/../dispenso/platform.h:130:41: error: no member named 'malloc' in the global namespace char* ptr = reinterpret_cast<char*>(::malloc(bytes + alignment)); ~~^ /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_devel_dispenso/dispenso/work/dispenso-1.2.0/dispenso/../dispenso/platform.h:152:5: error: no member named 'free' in the global namespace ::free(reinterpret_cast<void*>(recovered)); ~~^ 2 errors generated. make[2]: *** [dispenso/CMakeFiles/dispenso.dir/detail/per_thread_info.cpp.o] Error 1 make[2]: *** Waiting for unfinished jobs.... In file included from /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_devel_dispenso/dispenso/work/dispenso-1.2.0/dispenso/pool_allocator.cpp:8: In file included from /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_devel_dispenso/dispenso/work/dispenso-1.2.0/dispenso/../dispenso/pool_allocator.h:21: /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_devel_dispenso/dispenso/work/dispenso-1.2.0/dispenso/../dispenso/platform.h:130:41: error: no member named 'malloc' in the global namespace char* ptr = reinterpret_cast<char*>(::malloc(bytes + alignment)); ~~^ /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_devel_dispenso/dispenso/work/dispenso-1.2.0/dispenso/../dispenso/platform.h:152:5: error: no member named 'free' in the global namespace ::free(reinterpret_cast<void*>(recovered)); ~~^ In file included from /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_devel_dispenso/dispenso/work/dispenso-1.2.0/dispenso/graph_executor.cpp:8: In file included from /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_devel_dispenso/dispenso/work/dispenso-1.2.0/dispenso/../dispenso/graph_executor.h:9: /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_devel_dispenso/dispenso/work/dispenso-1.2.0/dispenso/../dispenso/concurrent_vector.h:80:23: error: default initialization of an object of const type 'const dispenso::ReserveTagS' without a user-provided default constructor constexpr ReserveTagS ReserveTag; ^ {} In file included from /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_devel_dispenso/dispenso/work/dispenso-1.2.0/dispenso/graph.cpp:8: In file included from /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_devel_dispenso/dispenso/work/dispenso-1.2.0/dispenso/../dispenso/graph.h:17: /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_devel_dispenso/dispenso/work/dispenso-1.2.0/dispenso/../dispenso/platform.h:130:41: error: no member named 'malloc' in the global namespace char* ptr = reinterpret_cast<char*>(::malloc(bytes + alignment)); ~~^ /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_devel_dispenso/dispenso/work/dispenso-1.2.0/dispenso/../dispenso/platform.h:152:5: error: no member named 'free' in the global namespace ::free(reinterpret_cast<void*>(recovered)); ~~^ 2 errors generated. make[2]: *** [dispenso/CMakeFiles/dispenso.dir/pool_allocator.cpp.o] Error 1 /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_devel_dispenso/dispenso/work/dispenso-1.2.0/dispenso/graph.cpp:151:55: error: no member named 'malloc' in the global namespace sizeof(NodeType), 128 * sizeof(NodeType), ::malloc, ::free); ~~^ /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_devel_dispenso/dispenso/work/dispenso-1.2.0/dispenso/graph.cpp:151:65: error: no member named 'free' in the global namespace sizeof(NodeType), 128 * sizeof(NodeType), ::malloc, ::free); ~~^ 4 errors generated. make[2]: *** [dispenso/CMakeFiles/dispenso.dir/graph.cpp.o] Error 1 1 error generated.
Change History (2)
comment:1 follow-up: 2 Changed 9 months ago by ryandesign (Ryan Carsten Schmidt)
comment:2 Changed 9 months ago by barracuda156
Replying to ryandesign:
I submitted a fix for this issue upstream which is simply to include
<cstdlib>
which is wheremalloc
andfree
are defined for C++ code.
Great, thank you!
Note: See
TracTickets for help on using
tickets.
I submitted a fix for this issue upstream which is simply to include
<cstdlib>
which is wheremalloc
andfree
are defined for C++ code. Presumably on other systems that don't see this problem,<cstdlib>
gets included by some other system header.The errors that occur after that are ones I've encountered before in QuantLib which reminds me that I haven't finished verifying the fix for that issue, so I'm working on that now, and if successful I can hopefully apply the same fix to dispenso. In the meantime, the workaround that worked for QuantLib was to prevent the use of clang < 900.