Opened 20 months ago
Last modified 4 months ago
#69786 new defect
R-quanteda now fails on 10.12 and earlier with libc++: error: aligned deallocation function of type 'void (void *, std::align_val_t) noexcept' is only available on macOS 10.13 or newer
| Reported by: | barracuda156 | Owned by: | |
|---|---|---|---|
| Priority: | Normal | Milestone: | |
| Component: | ports | Version: | 2.9.3 |
| Keywords: | sierra, elcapitan, yosemite, mavericks, mountainlion, lion, snowleopard, leopard, tiger | Cc: | JulianGro (Julian Groß) |
| Port: | R-quanteda |
Description
using C++ compiler: ‘clang version 15.0.7’
using SDK: ‘NA’
/opt/local/bin/clang++-mp-15 -std=gnu++17 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I'/opt/local/Library/Frameworks/R.framework/Versions/4.3/Resources/library/Rcpp/include' -I'/opt/local/Library/Frameworks/R.framework/Versions/4.3/Resources/library/RcppArmadillo/include' -I/opt/local/include -DTBB -I/opt/local/libexec/onetbb/include -I../inst/include -fPIC -pipe -Os -stdlib=libc++ -arch x86_64 -c RcppExports.cpp -o RcppExports.o
/opt/local/bin/clang++-mp-15 -std=gnu++17 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I'/opt/local/Library/Frameworks/R.framework/Versions/4.3/Resources/library/Rcpp/include' -I'/opt/local/Library/Frameworks/R.framework/Versions/4.3/Resources/library/RcppArmadillo/include' -I/opt/local/include -DTBB -I/opt/local/libexec/onetbb/include -I../inst/include -fPIC -pipe -Os -stdlib=libc++ -arch x86_64 -c fcm.cpp -o fcm.o
In file included from fcm.cpp:1:
In file included from ../inst/include/lib.h:15:
In file included from /opt/local/libexec/onetbb/include/tbb/tbb.h:17:
In file included from /opt/local/libexec/onetbb/include/tbb/../oneapi/tbb.h:35:
In file included from /opt/local/libexec/onetbb/include/oneapi/tbb/combinable.h:22:
In file included from /opt/local/libexec/onetbb/include/oneapi/tbb/enumerable_thread_specific.h:36:
In file included from /opt/local/libexec/onetbb/include/oneapi/tbb/task.h:22:
/opt/local/libexec/onetbb/include/oneapi/tbb/detail/_task.h:216:13: error: aligned deallocation function of type 'void (void *, std::align_val_t) noexcept' is only available on macOS 10.13 or newer
virtual ~task() = default;
^
/opt/local/libexec/onetbb/include/oneapi/tbb/detail/_task_handle.h:49:5: note: in defaulted destructor for 'tbb::detail::d1::task' first required here
task_handle_task(d1::wait_context& wo, d1::task_group_context& ctx, d1::small_object_allocator& alloc)
^
/opt/local/libexec/onetbb/include/oneapi/tbb/detail/_task.h:216:13: note: if you supply your own aligned allocation functions, use -faligned-allocation to silence this diagnostic
virtual ~task() = default;
^
In file included from fcm.cpp:1:
In file included from ../inst/include/lib.h:15:
In file included from /opt/local/libexec/onetbb/include/tbb/tbb.h:17:
In file included from /opt/local/libexec/onetbb/include/tbb/../oneapi/tbb.h:40:
In file included from /opt/local/libexec/onetbb/include/oneapi/tbb/collaborative_call_once.h:20:
In file included from /opt/local/libexec/onetbb/include/oneapi/tbb/task_arena.h:29:
/opt/local/libexec/onetbb/include/oneapi/tbb/detail/_task_handle.h:56:5: error: aligned deallocation function of type 'void (void *, std::align_val_t) noexcept' is only available on macOS 10.13 or newer
~task_handle_task() override {
^
/opt/local/libexec/onetbb/include/oneapi/tbb/detail/_task_handle.h:56:5: note: if you supply your own aligned allocation functions, use -faligned-allocation to silence this diagnostic
In file included from fcm.cpp:1:
In file included from ../inst/include/lib.h:15:
In file included from /opt/local/libexec/onetbb/include/tbb/tbb.h:17:
In file included from /opt/local/libexec/onetbb/include/tbb/../oneapi/tbb.h:49:
In file included from /opt/local/libexec/onetbb/include/oneapi/tbb/flow_graph.h:161:
/opt/local/libexec/onetbb/include/oneapi/tbb/detail/_flow_graph_impl.h:126:7: error: aligned deallocation function of type 'void (void *, std::align_val_t) noexcept' is only available on macOS 10.13 or newer
class graph_task : public task {
^
/opt/local/libexec/onetbb/include/oneapi/tbb/detail/_flow_graph_impl.h:128:5: note: in implicit destructor for 'tbb::detail::d1::graph_task' first required here
graph_task(graph& g, small_object_allocator& allocator
^
/opt/local/libexec/onetbb/include/oneapi/tbb/detail/_flow_graph_impl.h:126:7: note: if you supply your own aligned allocation functions, use -faligned-allocation to silence this diagnostic
class graph_task : public task {
^
/opt/local/libexec/onetbb/include/oneapi/tbb/detail/_flow_graph_impl.h:160:7: error: aligned deallocation function of type 'void (void *, std::align_val_t) noexcept' is only available on macOS 10.13 or newer
class priority_task_selector : public task {
^
/opt/local/libexec/onetbb/include/oneapi/tbb/detail/_flow_graph_impl.h:162:5: note: in implicit destructor for 'tbb::detail::d1::priority_task_selector' first required here
priority_task_selector(graph_task_priority_queue_t& priority_queue, small_object_allocator& allocator)
^
/opt/local/libexec/onetbb/include/oneapi/tbb/detail/_flow_graph_impl.h:160:7: note: if you supply your own aligned allocation functions, use -faligned-allocation to silence this diagnostic
class priority_task_selector : public task {
^
In file included from fcm.cpp:1:
In file included from ../inst/include/lib.h:15:
In file included from /opt/local/libexec/onetbb/include/tbb/tbb.h:17:
In file included from /opt/local/libexec/onetbb/include/tbb/../oneapi/tbb.h:54:
/opt/local/libexec/onetbb/include/oneapi/tbb/parallel_for.h:61:8: error: aligned deallocation function of type 'void (void *, std::align_val_t) noexcept' is only available on macOS 10.13 or newer
struct start_for : public task {
^
/opt/local/libexec/onetbb/include/oneapi/tbb/parallel_for.h:74:5: note: in implicit destructor for 'tbb::detail::d1::start_for<tbb::detail::d1::blocked_range<int>, (lambda at fcm.cpp:106:58), const tbb::detail::d1::auto_partitioner>' first required here
start_for( const Range& range, const Body& body, Partitioner& partitioner, small_object_allocator& alloc ) :
^
/opt/local/libexec/onetbb/include/oneapi/tbb/detail/_small_object_pool.h:63:57: note: in instantiation of member function 'tbb::detail::d1::start_for<tbb::detail::d1::blocked_range<int>, (lambda at fcm.cpp:106:58), const tbb::detail::d1::auto_partitioner>::start_for' requested here
auto constructed_object = new(allocated_object) Type(std::forward<Args>(args)...);
^
/opt/local/libexec/onetbb/include/oneapi/tbb/parallel_for.h:107:42: note: in instantiation of function template specialization 'tbb::detail::d1::small_object_allocator::new_object<tbb::detail::d1::start_for<tbb::detail::d1::blocked_range<int>, (lambda at fcm.cpp:106:58), const tbb::detail::d1::auto_partitioner>, const tbb::detail::d1::blocked_range<int> &, const (lambda at fcm.cpp:106:58) &, const tbb::detail::d1::auto_partitioner &, tbb::detail::d1::small_object_allocator &>' requested here
start_for& for_task = *alloc.new_object<start_for>(range, body, partitioner, alloc);
^
/opt/local/libexec/onetbb/include/oneapi/tbb/parallel_for.h:101:9: note: in instantiation of member function 'tbb::detail::d1::start_for<tbb::detail::d1::blocked_range<int>, (lambda at fcm.cpp:106:58), const tbb::detail::d1::auto_partitioner>::run' requested here
run(range, body, partitioner, context);
^
/opt/local/libexec/onetbb/include/oneapi/tbb/parallel_for.h:229:60: note: in instantiation of member function 'tbb::detail::d1::start_for<tbb::detail::d1::blocked_range<int>, (lambda at fcm.cpp:106:58), const tbb::detail::d1::auto_partitioner>::run' requested here
start_for<Range,Body,const __TBB_DEFAULT_PARTITIONER>::run(range,body,__TBB_DEFAULT_PARTITIONER());
^
fcm.cpp:106:14: note: in instantiation of function template specialization 'tbb::detail::d1::parallel_for<tbb::detail::d1::blocked_range<int>, (lambda at fcm.cpp:106:58)>' requested here
tbb::parallel_for(tbb::blocked_range<int>(0, H), [&](tbb::blocked_range<int> r) {
^
/opt/local/libexec/onetbb/include/oneapi/tbb/parallel_for.h:61:8: note: if you supply your own aligned allocation functions, use -faligned-allocation to silence this diagnostic
struct start_for : public task {
^
5 errors generated.
Change History (3)
comment:1 follow-up: 2 Changed 19 months ago by aeiouaeiouaeiouaeiouaeiouaeiou
comment:2 Changed 19 months ago by barracuda156
Replying to aeiouaeiouaeiouaeiouaeiouaeiou:
This can definitely be fixed by adding the
-fno-aligned-allocationflag to CXX environment, but this trick doesn't work with the GCC compiler (mentioned in madness portfile).
We do not have a problem with GCC here, it builds fine on my 10.6. (Perhaps it may fail with gcc + libc++, but such a configuration is not used anywhere presently.)
comment:3 Changed 4 months ago by JulianGro (Julian Groß)
| Cc: | JulianGro added |
|---|
Note: See
TracTickets for help on using
tickets.

This can definitely be fixed by adding the
-fno-aligned-allocationflag to CXX environment, but this trick doesn't work with the GCC compiler (mentioned in madness portfile).