This is an automated email from the ASF dual-hosted git repository.

alexey pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kudu.git

commit 30506e572d4b1e28cf302db475fae0a74b3dbcbc
Author: Alexey Serbin <[email protected]>
AuthorDate: Sun Dec 29 11:01:22 2024 -0800

    [thirdparty] fix building rapidjson with GCC13
    
    GCC13 (G++13) is the default system compiler on contemporary Linux OS
    flavors such as Ubuntu 24.04 LTS.  With this patch it's now possible
    to compile rapidjson on Ubuntu 24.04 LTS.
    
    This patch picks up a couple of relevant patches from the rapidjson's
    git repository.  Probably, it's time to refresh rapidjson with very
    recent updates overall, but it would require extra testing to rule out
    possible regressions.
    
    Change-Id: I68008baf7abe6de1f1250a29a268fc732bbe2885
    Reviewed-on: http://gerrit.cloudera.org:8080/22277
    Reviewed-by: Yingchun Lai <[email protected]>
    Tested-by: Marton Greber <[email protected]>
---
 thirdparty/download-thirdparty.sh                     |  6 ++++--
 .../rapidjson-document-assignment-operator-00.patch   | 19 +++++++++++++++++++
 .../rapidjson-document-assignment-operator-01.patch   | 19 +++++++++++++++++++
 3 files changed, 42 insertions(+), 2 deletions(-)

diff --git a/thirdparty/download-thirdparty.sh 
b/thirdparty/download-thirdparty.sh
index fe2368fca..539c1806f 100755
--- a/thirdparty/download-thirdparty.sh
+++ b/thirdparty/download-thirdparty.sh
@@ -266,14 +266,16 @@ fetch_and_patch \
  $LIBEV_SOURCE \
  $LIBEV_PATCHLEVEL
 
-RAPIDJSON_PATCHLEVEL=3
+RAPIDJSON_PATCHLEVEL=5
 fetch_and_patch \
  rapidjson-${RAPIDJSON_VERSION}.zip \
  $RAPIDJSON_SOURCE \
  $RAPIDJSON_PATCHLEVEL \
  "patch -p1 < 
$TP_DIR/patches/rapidjson-fix-signed-unsigned-conversion-error.patch" \
  "patch -p1 < $TP_DIR/patches/rapidjson-assertions-for-clang-warnings.patch" \
- "patch -p1 < 
$TP_DIR/patches/rapidjson-avoid-pointer-arithmetic-on-null-pointer.patch"
+ "patch -p1 < 
$TP_DIR/patches/rapidjson-avoid-pointer-arithmetic-on-null-pointer.patch" \
+ "patch -p1 < $TP_DIR/patches/rapidjson-document-assignment-operator-00.patch" 
\
+ "patch -p1 < $TP_DIR/patches/rapidjson-document-assignment-operator-01.patch"
 
 SQUEASEL_PATCHLEVEL=1
 fetch_and_patch \
diff --git a/thirdparty/patches/rapidjson-document-assignment-operator-00.patch 
b/thirdparty/patches/rapidjson-document-assignment-operator-00.patch
new file mode 100644
index 000000000..af4f21f8d
--- /dev/null
+++ b/thirdparty/patches/rapidjson-document-assignment-operator-00.patch
@@ -0,0 +1,19 @@
+commit 3b2441b87f99ab65f37b141a7b548ebadb607b96
+Author: Janusz Chorko <[email protected]>
+Date:   Fri Aug 26 21:17:38 2016 +0200
+
+    Removed non-compiling assignment operator. Fixed #718
+
+diff --git a/include/rapidjson/document.h b/include/rapidjson/document.h
+index e3e20dfb..b0f1f70b 100644
+--- a/include/rapidjson/document.h
++++ b/include/rapidjson/document.h
+@@ -316,8 +316,6 @@ struct GenericStringRef {
+ 
+     GenericStringRef(const GenericStringRef& rhs) : s(rhs.s), 
length(rhs.length) {}
+ 
+-    GenericStringRef& operator=(const GenericStringRef& rhs) { s = rhs.s; 
length = rhs.length; }
+-
+     //! implicit conversion to plain CharType pointer
+     operator const Ch *() const { return s; }
+ 
diff --git a/thirdparty/patches/rapidjson-document-assignment-operator-01.patch 
b/thirdparty/patches/rapidjson-document-assignment-operator-01.patch
new file mode 100644
index 000000000..8c31926c6
--- /dev/null
+++ b/thirdparty/patches/rapidjson-document-assignment-operator-01.patch
@@ -0,0 +1,19 @@
+commit 862c39be371278a45a88d4d1d75164be57bb7e2d
+Author: Janusz Chorko <[email protected]>
+Date:   Fri Aug 26 21:26:50 2016 +0200
+
+    Explicitly disable copy assignment operator
+
+diff --git a/include/rapidjson/document.h b/include/rapidjson/document.h
+index b0f1f70b..19f5a6a5 100644
+--- a/include/rapidjson/document.h
++++ b/include/rapidjson/document.h
+@@ -326,6 +326,8 @@ private:
+     //! Disallow construction from non-const array
+     template<SizeType N>
+     GenericStringRef(CharType (&str)[N]) /* = delete */;
++    //! Copy assignment operator not permitted - immutable type
++    GenericStringRef& operator=(const GenericStringRef& rhs) /* = delete */;
+ };
+ 
+ //! Mark a character pointer as constant string

Reply via email to