git: 8c86705f8b3c - main - devel/simdjson: fix build with clang 19
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 16 Aug 2024 15:39:12 UTC
The branch main has been updated by dim: URL: https://cgit.FreeBSD.org/ports/commit/?id=8c86705f8b3cead5d81271a071c331b619da4b8b commit 8c86705f8b3cead5d81271a071c331b619da4b8b 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:33:49 +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 --- 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: