aboutsummaryrefslogtreecommitdiff
path: root/dep
diff options
context:
space:
mode:
Diffstat (limited to 'dep')
-rw-r--r--dep/protobuf/msvc_arm_support.diff88
-rw-r--r--dep/protobuf/src/google/protobuf/stubs/atomicops.h4
-rw-r--r--dep/protobuf/src/google/protobuf/stubs/atomicops_internals_generic_c11_atomic.h10
-rw-r--r--dep/protobuf/src/google/protobuf/stubs/platform_macros.h4
4 files changed, 97 insertions, 9 deletions
diff --git a/dep/protobuf/msvc_arm_support.diff b/dep/protobuf/msvc_arm_support.diff
new file mode 100644
index 00000000000..98b3b524b9e
--- /dev/null
+++ b/dep/protobuf/msvc_arm_support.diff
@@ -0,0 +1,88 @@
+diff --git a/dep/protobuf/src/google/protobuf/stubs/atomicops.h b/dep/protobuf/src/google/protobuf/stubs/atomicops.h
+index 5bd3a1c23e..8b49f19fbb 100644
+--- a/dep/protobuf/src/google/protobuf/stubs/atomicops.h
++++ b/dep/protobuf/src/google/protobuf/stubs/atomicops.h
+@@ -124,7 +124,7 @@ Atomic32 Release_CompareAndSwap(volatile Atomic32* ptr,
+ #if defined(__MINGW32__) && defined(MemoryBarrier)
+ #undef MemoryBarrier
+ #endif
+-void MemoryBarrier();
++void (MemoryBarrier)();
+ void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value);
+ void Acquire_Store(volatile Atomic32* ptr, Atomic32 value);
+ void Release_Store(volatile Atomic32* ptr, Atomic32 value);
+@@ -172,7 +172,7 @@ Atomic64 Release_Load(volatile const Atomic64* ptr);
+ #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
++#include <google/protobuf/stubs/atomicops_internals_generic_c11_atomic.h>
+ #endif
+
+ // Solaris
+diff --git a/dep/protobuf/src/google/protobuf/stubs/atomicops_internals_generic_c11_atomic.h b/dep/protobuf/src/google/protobuf/stubs/atomicops_internals_generic_c11_atomic.h
+index 7bc584eb21..9276436088 100644
+--- a/dep/protobuf/src/google/protobuf/stubs/atomicops_internals_generic_c11_atomic.h
++++ b/dep/protobuf/src/google/protobuf/stubs/atomicops_internals_generic_c11_atomic.h
+@@ -52,7 +52,7 @@ typedef volatile std::atomic<Atomic32>* AtomicLocation32;
+ static_assert(sizeof(*(AtomicLocation32) nullptr) == sizeof(Atomic32),
+ "incompatible 32-bit atomic layout");
+
+-inline void MemoryBarrier() {
++inline void (MemoryBarrier)() {
+ #if defined(__GLIBCXX__)
+ // Work around libstdc++ bug 51038 where atomic_thread_fence was declared but
+ // not defined, leading to the linker complaining about undefined references.
+@@ -119,7 +119,7 @@ inline void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value) {
+
+ inline void Acquire_Store(volatile Atomic32* ptr, Atomic32 value) {
+ ((AtomicLocation32)ptr)->store(value, std::memory_order_relaxed);
+- MemoryBarrier();
++ (MemoryBarrier)();
+ }
+
+ inline void Release_Store(volatile Atomic32* ptr, Atomic32 value) {
+@@ -135,7 +135,7 @@ inline Atomic32 Acquire_Load(volatile const Atomic32* ptr) {
+ }
+
+ inline Atomic32 Release_Load(volatile const Atomic32* ptr) {
+- MemoryBarrier();
++ (MemoryBarrier)();
+ return ((AtomicLocation32)ptr)->load(std::memory_order_relaxed);
+ }
+
+@@ -202,7 +202,7 @@ inline void NoBarrier_Store(volatile Atomic64* ptr, Atomic64 value) {
+
+ inline void Acquire_Store(volatile Atomic64* ptr, Atomic64 value) {
+ ((AtomicLocation64)ptr)->store(value, std::memory_order_relaxed);
+- MemoryBarrier();
++ (MemoryBarrier)();
+ }
+
+ inline void Release_Store(volatile Atomic64* ptr, Atomic64 value) {
+@@ -218,7 +218,7 @@ inline Atomic64 Acquire_Load(volatile const Atomic64* ptr) {
+ }
+
+ inline Atomic64 Release_Load(volatile const Atomic64* ptr) {
+- MemoryBarrier();
++ (MemoryBarrier)();
+ return ((AtomicLocation64)ptr)->load(std::memory_order_relaxed);
+ }
+
+diff --git a/dep/protobuf/src/google/protobuf/stubs/platform_macros.h b/dep/protobuf/src/google/protobuf/stubs/platform_macros.h
+index 7956d076dc..86b87ad3d9 100644
+--- a/dep/protobuf/src/google/protobuf/stubs/platform_macros.h
++++ b/dep/protobuf/src/google/protobuf/stubs/platform_macros.h
+@@ -49,10 +49,10 @@
+ #elif defined(__QNX__)
+ #define GOOGLE_PROTOBUF_ARCH_ARM_QNX 1
+ #define GOOGLE_PROTOBUF_ARCH_32_BIT 1
+-#elif defined(__ARMEL__)
++#elif defined(_M_ARM) || defined(__ARMEL__)
+ #define GOOGLE_PROTOBUF_ARCH_ARM 1
+ #define GOOGLE_PROTOBUF_ARCH_32_BIT 1
+-#elif defined(__aarch64__)
++#elif defined(_M_ARM64) || defined(_M_HYBRID_X86_ARM64) || defined (_M_ARM64EC) || defined(__aarch64__)
+ #define GOOGLE_PROTOBUF_ARCH_AARCH64 1
+ #define GOOGLE_PROTOBUF_ARCH_64_BIT 1
+ #elif defined(__MIPSEL__)
diff --git a/dep/protobuf/src/google/protobuf/stubs/atomicops.h b/dep/protobuf/src/google/protobuf/stubs/atomicops.h
index 5bd3a1c23e2..8b49f19fbb5 100644
--- a/dep/protobuf/src/google/protobuf/stubs/atomicops.h
+++ b/dep/protobuf/src/google/protobuf/stubs/atomicops.h
@@ -124,7 +124,7 @@ Atomic32 Release_CompareAndSwap(volatile Atomic32* ptr,
#if defined(__MINGW32__) && defined(MemoryBarrier)
#undef MemoryBarrier
#endif
-void MemoryBarrier();
+void (MemoryBarrier)();
void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value);
void Acquire_Store(volatile Atomic32* ptr, Atomic32 value);
void Release_Store(volatile Atomic32* ptr, Atomic32 value);
@@ -172,7 +172,7 @@ Atomic64 Release_Load(volatile const Atomic64* ptr);
#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
+#include <google/protobuf/stubs/atomicops_internals_generic_c11_atomic.h>
#endif
// Solaris
diff --git a/dep/protobuf/src/google/protobuf/stubs/atomicops_internals_generic_c11_atomic.h b/dep/protobuf/src/google/protobuf/stubs/atomicops_internals_generic_c11_atomic.h
index 7bc584eb211..9276436088b 100644
--- a/dep/protobuf/src/google/protobuf/stubs/atomicops_internals_generic_c11_atomic.h
+++ b/dep/protobuf/src/google/protobuf/stubs/atomicops_internals_generic_c11_atomic.h
@@ -52,7 +52,7 @@ typedef volatile std::atomic<Atomic32>* AtomicLocation32;
static_assert(sizeof(*(AtomicLocation32) nullptr) == sizeof(Atomic32),
"incompatible 32-bit atomic layout");
-inline void MemoryBarrier() {
+inline void (MemoryBarrier)() {
#if defined(__GLIBCXX__)
// Work around libstdc++ bug 51038 where atomic_thread_fence was declared but
// not defined, leading to the linker complaining about undefined references.
@@ -119,7 +119,7 @@ inline void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value) {
inline void Acquire_Store(volatile Atomic32* ptr, Atomic32 value) {
((AtomicLocation32)ptr)->store(value, std::memory_order_relaxed);
- MemoryBarrier();
+ (MemoryBarrier)();
}
inline void Release_Store(volatile Atomic32* ptr, Atomic32 value) {
@@ -135,7 +135,7 @@ inline Atomic32 Acquire_Load(volatile const Atomic32* ptr) {
}
inline Atomic32 Release_Load(volatile const Atomic32* ptr) {
- MemoryBarrier();
+ (MemoryBarrier)();
return ((AtomicLocation32)ptr)->load(std::memory_order_relaxed);
}
@@ -202,7 +202,7 @@ inline void NoBarrier_Store(volatile Atomic64* ptr, Atomic64 value) {
inline void Acquire_Store(volatile Atomic64* ptr, Atomic64 value) {
((AtomicLocation64)ptr)->store(value, std::memory_order_relaxed);
- MemoryBarrier();
+ (MemoryBarrier)();
}
inline void Release_Store(volatile Atomic64* ptr, Atomic64 value) {
@@ -218,7 +218,7 @@ inline Atomic64 Acquire_Load(volatile const Atomic64* ptr) {
}
inline Atomic64 Release_Load(volatile const Atomic64* ptr) {
- MemoryBarrier();
+ (MemoryBarrier)();
return ((AtomicLocation64)ptr)->load(std::memory_order_relaxed);
}
diff --git a/dep/protobuf/src/google/protobuf/stubs/platform_macros.h b/dep/protobuf/src/google/protobuf/stubs/platform_macros.h
index 7956d076dcd..86b87ad3d91 100644
--- a/dep/protobuf/src/google/protobuf/stubs/platform_macros.h
+++ b/dep/protobuf/src/google/protobuf/stubs/platform_macros.h
@@ -49,10 +49,10 @@
#elif defined(__QNX__)
#define GOOGLE_PROTOBUF_ARCH_ARM_QNX 1
#define GOOGLE_PROTOBUF_ARCH_32_BIT 1
-#elif defined(__ARMEL__)
+#elif defined(_M_ARM) || defined(__ARMEL__)
#define GOOGLE_PROTOBUF_ARCH_ARM 1
#define GOOGLE_PROTOBUF_ARCH_32_BIT 1
-#elif defined(__aarch64__)
+#elif defined(_M_ARM64) || defined(_M_HYBRID_X86_ARM64) || defined (_M_ARM64EC) || defined(__aarch64__)
#define GOOGLE_PROTOBUF_ARCH_AARCH64 1
#define GOOGLE_PROTOBUF_ARCH_64_BIT 1
#elif defined(__MIPSEL__)