On Mon, Jun 8, 2015 at 6:57 PM, Austin Schuh <[email protected]> wrote:
> Pull request sent. I felt a lot better putting the logic in > google/protobuf/stubs/platform_macros.h, so I put it there. > The NO_THREADLOCAL macro does not belong to platform_macros.h. It will not work either because common.h does not include platform_macros.h so we have to have a copy in common.h anyway. > > 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? > Protobuf will be supported by bazel natively. See https://github.com/google/bazel/issues/52 > > 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.
