Merge pull request #12997 from fowles/23.x

Cherry-pick portability fixes to 23.x line
pull/13002/head
Matt Fowles Kulukundis 2 years ago committed by GitHub
commit 647052aad9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      Protobuf-C++.podspec
  2. 2
      src/google/protobuf/arena.cc
  3. 2
      src/google/protobuf/reflection_mode.cc
  4. 10
      src/google/protobuf/reflection_mode.h
  5. 6
      src/google/protobuf/thread_safe_arena.h

@ -25,10 +25,10 @@ Pod::Spec.new do |s|
s.header_mappings_dir = 'src'
s.ios.deployment_target = '7.0'
s.osx.deployment_target = '10.9'
s.tvos.deployment_target = '9.0'
s.watchos.deployment_target = '2.0'
s.ios.deployment_target = '12.0'
s.osx.deployment_target = '10.13'
s.tvos.deployment_target = '12.0'
s.watchos.deployment_target = '6.0'
s.pod_target_xcconfig = {
# Do not let src/google/protobuf/stubs/time.h override system API

@ -519,7 +519,7 @@ ThreadSafeArena::ThreadCache& ThreadSafeArena::thread_cache() {
new internal::ThreadLocalStorage<ThreadCache>();
return *thread_cache_->Get();
}
#elif defined(PROTOBUF_USE_DLLS)
#elif defined(PROTOBUF_USE_DLLS) && defined(_MSC_VER)
ThreadSafeArena::ThreadCache& ThreadSafeArena::thread_cache() {
static PROTOBUF_THREAD_LOCAL ThreadCache thread_cache;
return thread_cache;

@ -39,7 +39,7 @@ namespace internal {
#if !defined(PROTOBUF_NO_THREADLOCAL)
#if defined(PROTOBUF_USE_DLLS)
#if defined(PROTOBUF_USE_DLLS) && defined(_MSC_VER)
ReflectionMode& ScopedReflectionMode::reflection_mode() {
static PROTOBUF_THREAD_LOCAL ReflectionMode reflection_mode =
ReflectionMode::kDefault;

@ -95,18 +95,20 @@ class PROTOBUF_EXPORT ScopedReflectionMode final {
private:
#if !defined(PROTOBUF_NO_THREADLOCAL)
const ReflectionMode previous_mode_;
#if defined(PROTOBUF_USE_DLLS)
#if defined(PROTOBUF_USE_DLLS) && defined(_MSC_VER)
// Thread local variables cannot be exposed through MSVC DLL interface but we
// can wrap them in static functions.
static ReflectionMode& reflection_mode();
#else
PROTOBUF_CONSTINIT static PROTOBUF_THREAD_LOCAL ReflectionMode
reflection_mode_;
#endif // PROTOBUF_USE_DLLS
#endif // PROTOBUF_USE_DLLS && _MSC_VER
#endif // !PROTOBUF_NO_THREADLOCAL
};
#if !defined(PROTOBUF_NO_THREADLOCAL)
#if defined(PROTOBUF_USE_DLLS)
#if defined(PROTOBUF_USE_DLLS) && defined(_MSC_VER)
inline ScopedReflectionMode::ScopedReflectionMode(ReflectionMode mode)
: previous_mode_(reflection_mode()) {
@ -140,7 +142,7 @@ inline ReflectionMode ScopedReflectionMode::current_reflection_mode() {
return reflection_mode_;
}
#endif // PROTOBUF_USE_DLLS
#endif // PROTOBUF_USE_DLLS && _MSC_VER
#else

@ -261,9 +261,9 @@ class PROTOBUF_EXPORT ThreadSafeArena {
// iOS does not support __thread keyword so we use a custom thread local
// storage class we implemented.
static ThreadCache& thread_cache();
#elif defined(PROTOBUF_USE_DLLS)
// Thread local variables cannot be exposed through DLL interface but we can
// wrap them in static functions.
#elif defined(PROTOBUF_USE_DLLS) && defined(_MSC_VER)
// Thread local variables cannot be exposed through MSVC DLL interface but we
// can wrap them in static functions.
static ThreadCache& thread_cache();
#else
PROTOBUF_CONSTINIT static PROTOBUF_THREAD_LOCAL ThreadCache thread_cache_;

Loading…
Cancel
Save