Hello experts,

I am in the process of porting Protobuf on WINCE ARM plaform.As i 
understood from the mail discussions and googling found that protobuf is 
not currently supported on the wince platforms. When i tried to compile 
code using visual studio 2008 compiler i am getting following compilation 
issues.

>From the compilation errors i understand that atomic operations for arm 
wince need to be implemented. 

protobuf\interface\google\protobuf\stubs\atomicops.h(174) : error C2121: 
'#' : invalid character : possibly the result of a macro expansion
protobuf\interface\google\protobuf\stubs\atomicops.h(174) : error C2143: 
syntax error : missing ';' before 'string'
protobuf\interface\google\protobuf\stubs\atomicops.h(174) : error C4430: 
missing type specifier - int assumed. Note: C++ does not support default-int
protobuf\interface\google\protobuf\stubs\once.h(84) : error C2143: syntax 
error : missing ';' before '{'
protobuf\interface\google\protobuf\stubs\once.h(84) : error C2447: '{' : 
missing function header (old-style formal list?)
protobuf\interface\google\protobuf\generated_message_util.h(75) : error 
C2146: syntax error : missing ';' before identifier 
'empty_string_once_init_'
protobuf\interface\google\protobuf\generated_message_util.h(75) : error 
C4430: missing type specifier - int assumed. Note: C++ does not support 
default-int
protobuf\interface\google\protobuf\generated_message_util.h(75) : error 
C4430: missing type specifier - int assumed. Note: C++ does not support 
default-int
protobuf\interface\google\protobuf\generated_message_util.h(84) : error 
C2039: 'GoogleOnceInit' : is not a member of 'google::protobuf'
protobuf\interface\google\protobuf\generated_message_util.h(84) : error 
C3861: 'GoogleOnceInit': identifier not found
protobuf\interface\google\protobuf\io\coded_stream.h(121) : warning C4068: 
unknown pragma
protobuf\interface\google\protobuf\io\coded_stream.h(1219) : warning C4068: 
unknown pragma
d:\perforce\mil_wince_dev\build\output\windows-wince-arm-msvc9\engines\mapmatching\mapdataprovider\common\protogeneration\protobufs\arc.pb.cc(190)
 
: error C2039: 'ProtobufOnceType' : is not a member of 'google::protobuf'
d:\perforce\mil_wince_dev\build\output\windows-wince-arm-msvc9\engines\mapmatching\mapdataprovider\common\protogeneration\protobufs\arc.pb.cc(190)
 
: error C2146: syntax error : missing ';' before identifier 
'protobuf_AssignDescriptors_once_'
d:\perforce\mil_wince_dev\build\output\windows-wince-arm-msvc9\engines\mapmatching\mapdataprovider\common\protogeneration\protobufs\arc.pb.cc(190)
 
: error C4430: missing type specifier - int assumed. Note: C++ does not 
support default-int
d:\perforce\mil_wince_dev\build\output\windows-wince-arm-msvc9\engines\mapmatching\mapdataprovider\common\protogeneration\protobufs\arc.pb.cc(190)
 
: error C4430: missing type specifier - int assumed. Note: C++ does not 
support default-int
d:\perforce\mil_wince_dev\build\output\windows-wince-arm-msvc9\engines\mapmatching\mapdataprovider\common\protogeneration\protobufs\arc.pb.cc(190)
 
: error C2039: 'ONCE_STATE_UNINITIALIZED' : is not a member of 
'google::protobuf'
d:\perforce\mil_wince_dev\build\output\windows-wince-arm-msvc9\engines\mapmatching\mapdataprovider\common\protogeneration\protobufs\arc.pb.cc(190)
 
: error C2065: 'ONCE_STATE_UNINITIALIZED' : undeclared identifier
d:\perforce\mil_wince_dev\build\output\windows-wince-arm-msvc9\engines\mapmatching\mapdataprovider\common\protogeneration\protobufs\arc.pb.cc(192)
 
: error C2039: 'GoogleOnceInit' : is not a member of 'google::protobuf'
d:\perforce\mil_wince_dev\build\output\windows-wince-arm-msvc9\engines\mapmatching\mapdataprovider\common\protogeneration\protobufs\arc.pb.cc(192)
 
: error C3861: 'GoogleOnceInit': identifier not found

and so on .................................

I checked the error is found to be caused by the line 
"GOOGLE_PROTOBUF_ATOMICOPS_ERROR"

// MSVC.
#elif defined(_MSC_VER)
#if defined(GOOGLE_PROTOBUF_ARCH_IA32) || defined(GOOGLE_PROTOBUF_ARCH_X64)
#include <google/protobuf/stubs/atomicops_internals_x86_msvc.h>
#else
GOOGLE_PROTOBUF_ATOMICOPS_ERROR
#endif

#define GOOGLE_PROTOBUF_ATOMICOPS_ERROR \
#error "Atomic operations are not supported on your platform"
 
Are there any opensource libs which makes use of atomic operations for 
wince arm platforms which i can reuse here ? Please suggest me the approach 
on how to implement atomic operations for wince arm platform.

Regards
GHT


-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Reply via email to