[librdkafka] Update to 2019-05-27

This commit is contained in:
myd7349 2019-05-28 08:21:20 +08:00
parent 8b64e981fb
commit 7cd3552973
3 changed files with 4 additions and 163 deletions

View File

@ -1,5 +1,5 @@
Source: librdkafka
Version: 2019-05-07-2
Version: 2019-05-27
Description: The Apache Kafka C/C++ library
Default-Features: ssl

View File

@ -1,157 +0,0 @@
diff --git a/src/snappy.c b/src/snappy.c
index c3b6ea8a..e74e6903 100644
--- a/src/snappy.c
+++ b/src/snappy.c
@@ -63,9 +63,6 @@
#include "rd.h"
-#ifdef _MSC_VER
-#define inline __inline
-#endif
#define CRASH_UNLESS(x) BUG_ON(!(x))
#define CHECK(cond) CRASH_UNLESS(cond)
@@ -76,12 +73,12 @@
#define CHECK_LT(a, b) CRASH_UNLESS((a) < (b))
#define CHECK_GT(a, b) CRASH_UNLESS((a) > (b))
-#define UNALIGNED_LOAD16(_p) get_unaligned((u16 *)(_p))
-#define UNALIGNED_LOAD32(_p) get_unaligned((u32 *)(_p))
+#define UNALIGNED_LOAD16(_p) get_unaligned16((u16 *)(_p))
+#define UNALIGNED_LOAD32(_p) get_unaligned32((u32 *)(_p))
#define UNALIGNED_LOAD64(_p) get_unaligned64((u64 *)(_p))
-#define UNALIGNED_STORE16(_p, _val) put_unaligned(_val, (u16 *)(_p))
-#define UNALIGNED_STORE32(_p, _val) put_unaligned(_val, (u32 *)(_p))
+#define UNALIGNED_STORE16(_p, _val) put_unaligned16(_val, (u16 *)(_p))
+#define UNALIGNED_STORE32(_p, _val) put_unaligned32(_val, (u32 *)(_p))
#define UNALIGNED_STORE64(_p, _val) put_unaligned64(_val, (u64 *)(_p))
/*
diff --git a/src/snappy_compat.h b/src/snappy_compat.h
index 77606552..21e0ea6b 100644
--- a/src/snappy_compat.h
+++ b/src/snappy_compat.h
@@ -44,23 +44,65 @@ struct iovec {
};
#endif
-#define get_unaligned_memcpy(x) ({ \
- typeof(*(x)) _ret; \
- memcpy(&_ret, (x), sizeof(*(x))); \
- _ret; })
-#define put_unaligned_memcpy(v,x) ({ \
- typeof((v)) _v = (v); \
- memcpy((x), &_v, sizeof(*(x))); })
+#ifdef _MSC_VER
+#define inline __inline
+#endif
+
+typedef unsigned char u8;
+typedef unsigned short u16;
+typedef unsigned u32;
+typedef unsigned long long u64;
+
+
+static inline u16 get_unaligned16_memcpy(const void *p)
+{
+ u16 t;
+ memcpy(&t, p, sizeof t);
+ return t;
+}
+
+static inline u32 get_unaligned32_memcpy(const void *p)
+{
+ u32 t;
+ memcpy(&t, p, sizeof t);
+ return t;
+}
+
+static inline u64 get_unaligned64_memcpy(const void *p)
+{
+ u64 t;
+ memcpy(&t, p, sizeof t);
+ return t;
+}
+
+static inline void put_unaligned16_memcpy(u16 v, void *p)
+{
+ memcpy(p, &v, sizeof v);
+}
+
+static inline void put_unaligned32_memcpy(u32 v, void *p)
+{
+ memcpy(p, &v, sizeof v);
+}
+
+static inline void put_unaligned64_memcpy(u64 v, void *p)
+{
+ memcpy(p, &v, sizeof v);
+}
#define get_unaligned_direct(x) (*(x))
#define put_unaligned_direct(v,x) (*(x) = (v))
// Potentially unaligned loads and stores.
-// x86 and PowerPC can simply do these loads and stores native.
-#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(_M_IX86) || defined(_M_X64) || defined(_M_AMD64)
-
-#define get_unaligned get_unaligned_direct
-#define put_unaligned put_unaligned_direct
+// x86, PowerPC, and ARM64 can simply do these loads and stores native.
+#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || \
+ defined(_M_IX86) || defined(_M_X64) || defined(_M_AMD64) || \
+ defined(__aarch64__)
+
+#define get_unaligned16 get_unaligned_direct
+#define put_unaligned16 put_unaligned_direct
+#define get_unaligned32 get_unaligned_direct
+#define put_unaligned32 put_unaligned_direct
#define get_unaligned64 get_unaligned_direct
#define put_unaligned64 put_unaligned_direct
@@ -86,29 +128,29 @@ struct iovec {
!defined(__ARM_ARCH_6ZK__) && \
!defined(__ARM_ARCH_6T2__)
-#define get_unaligned get_unaligned_direct
-#define put_unaligned put_unaligned_direct
-#define get_unaligned64 get_unaligned_memcpy
-#define put_unaligned64 put_unaligned_memcpy
+#define get_unaligned16 get_unaligned_direct
+#define put_unaligned16 put_unaligned_direct
+#define get_unaligned32 get_unaligned_direct
+#define put_unaligned32 put_unaligned_direct
+#define get_unaligned64 get_unaligned64_memcpy
+#define put_unaligned64 put_unaligned64_memcpy
// These macroses are provided for architectures that don't support
// unaligned loads and stores.
#else
-#define get_unaligned get_unaligned_memcpy
-#define put_unaligned put_unaligned_memcpy
-#define get_unaligned64 get_unaligned_memcpy
-#define put_unaligned64 put_unaligned_memcpy
+#define get_unaligned16 get_unaligned16_memcpy
+#define put_unaligned16 put_unaligned16_memcpy
+#define get_unaligned32 get_unaligned32_memcpy
+#define put_unaligned32 put_unaligned32_memcpy
+#define get_unaligned64 get_unaligned64_memcpy
+#define put_unaligned64 put_unaligned64_memcpy
#endif
-#define get_unaligned_le32(x) (le32toh(get_unaligned((u32 *)(x))))
-#define put_unaligned_le16(v,x) (put_unaligned(htole16(v), (u16 *)(x)))
+#define get_unaligned_le32(x) (le32toh(get_unaligned32((u32 *)(x))))
+#define put_unaligned_le16(v,x) (put_unaligned16(htole16(v), (u16 *)(x)))
-typedef unsigned char u8;
-typedef unsigned short u16;
-typedef unsigned u32;
-typedef unsigned long long u64;
#ifdef _MSC_VER
#define BUG_ON(x) do { if (unlikely((x))) abort(); } while (0)

View File

@ -3,11 +3,9 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO edenhill/librdkafka
REF dc85ffc8068c18dfdf118666b4c78de1c7ac640b
SHA512 b21be356806125ab8bdb74de41eef2c56714cfd2003065be362d9fab7e177a07675e95a13ed6d7fbd3dc38502194000b0e378ff6c43c7d54a0234ada0df881eb
REF 0d525ba1252074732aac575f88f04831f2656b8f
SHA512 f86d2a150b7c835b7de1a524d02a93ee3fcf4ff4f5f5b52fd49d6802bcb22f9829e562e8faef0842af7b4617aa49925622366f8290ada824be2602bf728dbdf0
HEAD_REF master
PATCHES
fix-arm-msvc-build.patch
)
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" RDKAFKA_BUILD_STATIC)
@ -31,7 +29,7 @@ vcpkg_configure_cmake(
OPTIONS
-DRDKAFKA_BUILD_STATIC=${RDKAFKA_BUILD_STATIC}
-DRDKAFKA_BUILD_EXAMPLES=OFF
-DRDKAFKA_BUILD_TESTS=ON
-DRDKAFKA_BUILD_TESTS=OFF
-DENABLE_LZ4_EXT=${ENABLE_LZ4_EXT}
-DWITH_SSL=${WITH_SSL}
-DWITH_BUNDLED_SSL=OFF