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

error: call to implicitly-deleted default constructor of 'tbb::detail::d2::concurrent_hash_map #6176

Open
Martinfx opened this issue Dec 8, 2024 · 0 comments

Comments

@Martinfx
Copy link

Martinfx commented Dec 8, 2024

Version: Gaffer [1.5.1.0] FreeBSD
Third-party tools: List any third-party tools in use (e.g. Arnold, Tractor)
Third-party modules: List any third-party Gaffer modules in use (e.g. proprietary plugins)

FreeBSD clang version 18.1.6 (https://github.com/llvm/llvm-project.git llvmorg-18.1.6-0-g1118c2e05e67)
Target: x86_64-unknown-freebsd14.2

Description

Hi,
i tried to switch the source code to oneapi and the compilation failed.

Steps to reproduce

  1. List the steps required for others to reproduce the issue

Debug log

Click to Expand

/usr/local/llvm15/bin/clang++ -o src/Gaffer/ValuePlug.os -c "-O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -isystem /usr/local/include " -isystem /usr/home/maxfx/Documents/FreeBSD-Ports/gaffer/work/gaffer-1.5.1.0/build/gaffer-1.5.1.0-linux/include -isystem /usr/home/maxfx/Documents/FreeBSD-Ports/gaffer/work/gaffer-1.5.1.0/build/gaffer-1.5.1.0-linux/include/Imath -isystem /usr/home/maxfx/Documents/FreeBSD-Ports/gaffer/work/gaffer-1.5.1.0/build/gaffer-1.5.1.0-linux/include/GL -isystem /usr/local/include -Wno-unused-local-typedef -Wno-unused-parameter -std=c++17 -fvisibility=hidden -DNDEBUG -DBOOST_DISABLE_ASSERTS -O3 -DGaffer_EXPORTS -fPIC -DBOOST_FILESYSTEM_VERSION=3 -DBOOST_FILESYSTEM_NO_DEPRECATED -Iinclude -I/usr/local/include -I/usr/local/include/qt5 -I/usr/local/include/python3.11 -I/usr/local/include/Imath -I/usr/local/include/oneapi src/Gaffer/ValuePlug.cpp
In file included from src/Gaffer/ValuePlug.cpp:44:
In file included from include/Gaffer/Process.h:178:
In file included from include/Gaffer/Process.inl:37:
/usr/local/include/oneapi/tbb/concurrent_hash_map.h:840:49: error: call to implicitly-deleted default constructor of 'tbb::detail::d2::concurrent_hash_map<(anonymous namespace)::HashCacheKey, std::vector<boost::intrusive_ptr<Gaffer::Process::TypedCollaboration<Gaffer::ValuePlug::HashProcess>>>>::hash_compare_type' (aka 'tbb::detail::d1::tbb_hash_compare<(anonymous namespace)::HashCacheKey>')
    concurrent_hash_map() : concurrent_hash_map(hash_compare_type()) {}
                                                ^
include/Gaffer/Process.inl:304:116: note: in instantiation of member function 'tbb::detail::d2::concurrent_hash_map<(anonymous namespace)::HashCacheKey, std::vector<boost::intrusive_ptr<Gaffer::Process::TypedCollaboration<Gaffer::ValuePlug::HashProcess>>>>::concurrent_hash_map' requested here
typename Process::TypedCollaboration<ProcessType>::PendingCollaborations Process::TypedCollaboration<ProcessType>::g_pendingCollaborations;
                                                                                                                   ^
include/Gaffer/Process.inl:321:21: note: in instantiation of static data member 'Gaffer::Process::TypedCollaboration<Gaffer::ValuePlug::HashProcess>::g_pendingCollaborations' requested here
        CollaborationType::g_pendingCollaborations.insert( accessor, cacheKey );
                           ^
src/Gaffer/ValuePlug.cpp:286:25: note: in instantiation of function template specialization 'Gaffer::Process::acquireCollaborativeResult<Gaffer::ValuePlug::HashProcess, const Gaffer::ValuePlug *&, const Gaffer::ValuePlug *&, const Gaffer::ComputeNode *&>' requested here
                                                result = Process::acquireCollaborativeResult<HashProcess>( cacheKey, p, plug, computeNode );
                                                                  ^
/usr/local/include/oneapi/tbb/detail/_hash_compare.h:85:20: note: default constructor of 'tbb_hash_compare<(anonymous namespace)::HashCacheKey>' is implicitly deleted because field 'my_hash_func' has a deleted default constructor
    std::hash<Key> my_hash_func;
                   ^
/usr/include/c++/v1/__functional/hash.h:510:36: note: default constructor of 'hash<(anonymous namespace)::HashCacheKey>' is implicitly deleted because base class '__enum_hash<(anonymous namespace)::HashCacheKey>' has a deleted default constructor
struct _LIBCPP_TEMPLATE_VIS hash : public __enum_hash<_Tp> {};
                                   ^
/usr/include/c++/v1/__functional/hash.h:504:3: note: '__enum_hash' has been explicitly marked deleted here
  __enum_hash()                              = delete;
  ^
In file included from src/Gaffer/ValuePlug.cpp:44:
In file included from include/Gaffer/Process.h:178:
In file included from include/Gaffer/Process.inl:37:
In file included from /usr/local/include/oneapi/tbb/concurrent_hash_map.h:26:
/usr/local/include/oneapi/tbb/detail/_hash_compare.h:74:53: error: type 'const std::hash<HashCacheKey>' does not provide a call operator
    std::size_t hash( const Key& a ) const { return my_hash_func(a); }
                                                    ^~~~~~~~~~~~
/usr/local/include/oneapi/tbb/concurrent_hash_map.h:1278:49: note: in instantiation of member function 'tbb::detail::d1::tbb_hash_compare<(anonymous namespace)::HashCacheKey>::hash' requested here
        hashcode_type const h = my_hash_compare.hash( key );
                                                ^
/usr/local/include/oneapi/tbb/concurrent_hash_map.h:1146:16: note: in instantiation of function template specialization 'tbb::detail::d2::concurrent_hash_map<(anonymous namespace)::HashCacheKey, std::vector<boost::intrusive_ptr<Gaffer::Process::TypedCollaboration<Gaffer::ValuePlug::HashProcess>>>>::lookup<true, (anonymous namespace)::HashCacheKey, tbb::detail::d2::concurrent_hash_map<(anonymous namespace)::HashCacheKey, std::vector<boost::intrusive_ptr<Gaffer::Process::TypedCollaboration<Gaffer::ValuePlug::HashProcess>>>>::node *(*)(tbb::detail::d1::tbb_allocator<tbb::detail::d2::hash_map_base<tbb::detail::d1::tbb_allocator<std::pair<const (anonymous namespace)::HashCacheKey, std::vector<boost::intrusive_ptr<Gaffer::Process::TypedCollaboration<Gaffer::ValuePlug::HashProcess>>>>>, tbb::detail::d1::spin_rw_mutex>::bucket> &, const (anonymous namespace)::HashCacheKey &, const std::vector<boost::intrusive_ptr<Gaffer::Process::TypedCollaboration<Gaffer::ValuePlug::HashProcess>>> *)>' requested here
        return lookup</*insert*/true>(key, nullptr, &result, /*write=*/true, &allocate_node_default_construct<>);
               ^
include/Gaffer/Process.inl:321:45: note: in instantiation of member function 'tbb::detail::d2::concurrent_hash_map<(anonymous namespace)::HashCacheKey, std::vector<boost::intrusive_ptr<Gaffer::Process::TypedCollaboration<Gaffer::ValuePlug::HashProcess>>>>::insert' requested here
        CollaborationType::g_pendingCollaborations.insert( accessor, cacheKey );
                                                   ^
src/Gaffer/ValuePlug.cpp:286:25: note: in instantiation of function template specialization 'Gaffer::Process::acquireCollaborativeResult<Gaffer::ValuePlug::HashProcess, const Gaffer::ValuePlug *&, const Gaffer::ValuePlug *&, const Gaffer::ComputeNode *&>' requested here
                                                result = Process::acquireCollaborativeResult<HashProcess>( cacheKey, p, plug, computeNode );
                                                                  ^
2 errors generated.
scons: *** [src/Gaffer/ValuePlug.os] Error 1
scons: building terminated because of errors.
*** Error code 1

Stop.

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

1 participant