Pull request sent. I felt a lot better putting the logic in google/protobuf/stubs/platform_macros.h, so I put it there.
My platform is a very old version of Linux on an embedded box. I'm not sure what to use for PLATFORM, but since I'm already re-creating the build commands using bazel to integrate the compiler into my project, I am now able to define GOOGLE_PROTOBUF_NO_THREADLOCAL myself and everything works. Is there any interest or plans for a set of bazel rules for the protobuf library? Thanks! Austin On Mon, Jun 8, 2015 at 5:42 PM Feng Xiao <[email protected]> wrote: > > > On Fri, Jun 5, 2015 at 7:02 PM, Austin Schuh <[email protected]> > wrote: > >> I have a target which is old enough that it doesn't support thread local >> variables. I'd like to build the protobuf3 libraries for it. >> >> It looks like all I need to do is trigger arena.h and arena.cc to use the >> version of thread_cache that is used by Android which >> uses pthread_key_create. One way to do that would be to add >> a GOOGLE_PROTOBUF_NO_THREADLOCAL variable and use that. I've got that >> working locally as a proof of concept. I'd like to get a change upstreamed >> to support this use case. How would you approach solving that? I'll >> happily write the patch if it isn't too tricky. >> > I think we can change the definition in google/protobuf/stubs/common.h to > something like: > > #if defined(ANDROID) || defined(IPHONE) || > defined(SOME_OTHER_PLATFORM_WITHOUT_THREADLOCAL) > #define GOOGLE_PROTOBUF_NO_THREADLOCAL > #endif > > #ifdef GOOGLE_PROTOBUF_NO_THREADLOCAL > class ThreadLocalStorage { > ... > } > #endif > > And also use this macro in arena.h/arena.cc as well. > > > >> >> Thanks! >> > Austin >> > -- >> 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 [email protected]. >> To post to this group, send email to [email protected]. >> Visit this group at http://groups.google.com/group/protobuf. >> For more options, visit https://groups.google.com/d/optout. >> > -- 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/protobuf. For more options, visit https://groups.google.com/d/optout.
