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: