Unknown type names "WrappedMutex" and "Mutex", while building ONNX, using Clang 11 (Windows 10)

107 views
Skip to first unread message

Ivan Serdyuk

unread,
Sep 5, 2020, 3:30:03 AM9/5/20
to Protocol Buffers
I tried to build ONNX on Windows 10, using protobuf 3.9.x - as it was explained here:

.
That scenario was tested for MSVC - and I am experimenting with migrating to Clang (using clang, clang++ and clang-cl compilers).

I am currently building ONNX's benchmarks,on Windows 10, using Clang 11.0RC2 - and I am experiencing some missing includes (Ninja's output) :

[2/57] Building CXX object CMakeFiles\onnx_proto.dir\onnx\onnx-operators-ml.pb.cc.obj
FAILED: CMakeFiles/onnx_proto.dir/onnx/onnx-operators-ml.pb.cc.obj
C:\PROGRA~1\LLVM\bin\clang-cl.exe /nologo -TP -DONNX_API="" -DONNX_ML=1 -DONNX_NAMESPACE=onnx -DPROTOBUF_USE_DLLS -I. -IC:\Users\clang\protobuf_llvm\include /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MD /O2 /Ob2 /DNDEBUG /MP /WX /wd4800 /wd4503 /wd4146 /wd4244 /wd4267 -Wno-implicit-function-declaration -Wno-undefined-inline -Wno-incompatible-pointer-types -Wno-dllexport-explicit-instantiation-decl -Wno-microsoft-unqualified-friend -Wno-absolute-value -Wno-unused-variable -Wno-unknown-argument -Wno-writable-strings -Qunused-arguments /MD /showIncludes /FoCMakeFiles\onnx_proto.dir\onnx\onnx-operators-ml.pb.cc.obj /FdCMakeFiles\onnx_proto.dir\onnx_proto.pdb -c onnx\onnx-operators-ml.pb.cc
In file included from onnx\onnx-operators-ml.pb.cc:4:
In file included from .\onnx/onnx-operators-ml.pb.h:30:
In file included from C:\Users\clang\protobuf_llvm\include\google/protobuf/generated_message_reflection.h:47:
In file included from C:\Users\clang\protobuf_llvm\include\google/protobuf/descriptor.h:62:
C:\Users\clang\protobuf_llvm\include\google/protobuf/stubs/mutex.h(96,1): error: declaration of anonymous class must be a definition
class PROTOBUF_EXPORT GOOGLE_PROTOBUF_CAPABILITY("mutex") WrappedMutex {
^
C:\Users\clang\protobuf_llvm\include\google/protobuf/stubs/mutex.h(96,1): error: declaration does not declare anything [-Werror,-Wmissing-declarations]
C:\Users\clang\protobuf_llvm\include\google/protobuf/stubs/mutex.h(113,15): error: unknown type name 'WrappedMutex'
using Mutex = WrappedMutex;
^
C:\Users\clang\protobufllvm\include\google/protobuf/stubs/mutex.h(118,22): error: unknown type name 'Mutex'
explicit MutexLock(Mutex *mu) : mu(mu) { this->mu_->Lock(); }
^
C:\Users\clang\protobufllvm\include\google/protobuf/stubs/mutex.h(121,3): error: unknown type name 'Mutex'
Mutex *const mu;
^
C:\Users\clang\protobuf_llvm\include\google/protobuf/stubs/mutex.h(132,27): error: unknown type name 'Mutex'
explicit MutexLockMaybe(Mutex mu) :
^
C:\Users\clang\protobuf_llvm\include\google/protobuf/stubs/mutex.h(136,3): error: unknown type name 'Mutex'
Mutex const mu_;
^
C:\Users\clang\protobuf_llvm\include\google/protobuf/stubs/mutex.h(172,17): error: no member named 'Mutex' in namespace 'google::protobuf::internal'
using internal::Mutex;
~~^
In file included from onnx\onnx-operators-ml.pb.cc:4:
In file included from .\onnx/onnx-operators-ml.pb.h:30:
In file included from C:\Users\clang\protobuf_llvm\include\google/protobuf/generated_message_reflection.h:47:
C:\Users\clang\protobufllvm\include\google/protobuf/descriptor.h(1848,13): error: no type named 'WrappedMutex' in namespace 'google::protobuf::internal'
internal::WrappedMutex* mutex;
~~^
9 errors generated.
ninja: build stopped: subcommand failed.

Ivan

Reply all
Reply to author
Forward
0 new messages