git: 52a101b577a5 - 2024Q3 - devel/simdjson: fix build with clang 19
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 16 Aug 2024 15:44:46 UTC
The branch 2024Q3 has been updated by dim:
URL: https://cgit.FreeBSD.org/ports/commit/?id=52a101b577a5d2987dd7d8010cdfd20fac687d1d
commit 52a101b577a5d2987dd7d8010cdfd20fac687d1d
Author: Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2024-08-03 13:58:40 +0000
Commit: Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2024-08-16 15:43:50 +0000
devel/simdjson: fix build with clang 19
With clang 19, if a port uses simdjson.h, it leads to compile errors:
In file included from /wrkdirs/usr/ports/sysutils/intel-pcm/work/pcm-202405/src/pcm-raw.cpp:31:
/usr/local/include/simdjson.h:6156:13: error: no member named 'print_newline' in 'base_formatter<formatter>'
6156 | this->print_newline();
| ~~~~ ^
/usr/local/include/simdjson.h:6160:13: error: no member named 'print_indents' in 'base_formatter<formatter>'
6160 | this->print_indents(depth);
| ~~~~ ^
/usr/local/include/simdjson.h:6164:13: error: no member named 'print_space' in 'base_formatter<formatter>'
6164 | this->print_space();
| ~~~~ ^
Upstream <https://github.com/simdjson/simdjson/commit/5d35e7ca> fixes
this, but it does not directly add the change to the generated single
header version of simdjson.h. So apply the fix to both the individual
header and the amalgamated version.
PR: 280590
Approved by: olevole@olevole.ru (maintainer)
MFH: 2024Q3
(cherry picked from commit 8c86705f8b3cead5d81271a071c331b619da4b8b)
---
devel/simdjson/Makefile | 1 +
.../patch-include_simdjson_dom_serialization.h | 21 +++++++++++++++++++++
devel/simdjson/files/patch-singleheader_simdjson.h | 21 +++++++++++++++++++++
3 files changed, 43 insertions(+)
diff --git a/devel/simdjson/Makefile b/devel/simdjson/Makefile
index 69e8fe65332a..a035cc77293b 100644
--- a/devel/simdjson/Makefile
+++ b/devel/simdjson/Makefile
@@ -1,6 +1,7 @@
PORTNAME= simdjson
DISTVERSIONPREFIX= v
DISTVERSION= 3.6.2
+PORTREVISION= 1
CATEGORIES= devel
MAINTAINER= olevole@olevole.ru
diff --git a/devel/simdjson/files/patch-include_simdjson_dom_serialization.h b/devel/simdjson/files/patch-include_simdjson_dom_serialization.h
new file mode 100644
index 000000000000..09dc68e86977
--- /dev/null
+++ b/devel/simdjson/files/patch-include_simdjson_dom_serialization.h
@@ -0,0 +1,21 @@
+--- include/simdjson/dom/serialization.h.orig 2023-12-01 18:56:12 UTC
++++ include/simdjson/dom/serialization.h
+@@ -57,15 +57,15 @@ class base_formatter { (public)
+ simdjson_inline void one_char(char c);
+
+ simdjson_inline void call_print_newline() {
+- this->print_newline();
++ static_cast<formatter*>(this)->print_newline();
+ }
+
+ simdjson_inline void call_print_indents(size_t depth) {
+- this->print_indents(depth);
++ static_cast<formatter*>(this)->print_indents(depth);
+ }
+
+ simdjson_inline void call_print_space() {
+- this->print_space();
++ static_cast<formatter*>(this)->print_space();
+ }
+
+ protected:
diff --git a/devel/simdjson/files/patch-singleheader_simdjson.h b/devel/simdjson/files/patch-singleheader_simdjson.h
new file mode 100644
index 000000000000..e41f85236f17
--- /dev/null
+++ b/devel/simdjson/files/patch-singleheader_simdjson.h
@@ -0,0 +1,21 @@
+--- singleheader/simdjson.h.orig 2023-12-01 18:56:12 UTC
++++ singleheader/simdjson.h
+@@ -6153,15 +6153,15 @@ class base_formatter { (public)
+ simdjson_inline void one_char(char c);
+
+ simdjson_inline void call_print_newline() {
+- this->print_newline();
++ static_cast<formatter*>(this)->print_newline();
+ }
+
+ simdjson_inline void call_print_indents(size_t depth) {
+- this->print_indents(depth);
++ static_cast<formatter*>(this)->print_indents(depth);
+ }
+
+ simdjson_inline void call_print_space() {
+- this->print_space();
++ static_cast<formatter*>(this)->print_space();
+ }
+
+ protected: