git: 90a93d9fab28 - main - databases/redisdesktopmanager: fix build on powerpc64

From: Piotr Kubaj <pkubaj_at_FreeBSD.org>
Date: Sun, 07 Nov 2021 22:30:52 UTC
The branch main has been updated by pkubaj:

URL: https://cgit.FreeBSD.org/ports/commit/?id=90a93d9fab28021a152176479ee70400142a5de2

commit 90a93d9fab28021a152176479ee70400142a5de2
Author:     Piotr Kubaj <pkubaj@FreeBSD.org>
AuthorDate: 2021-11-07 22:26:12 +0000
Commit:     Piotr Kubaj <pkubaj@FreeBSD.org>
CommitDate: 2021-11-07 22:26:12 +0000

    databases/redisdesktopmanager: fix build on powerpc64
    
    vec_vbpermq requires -mpower8-vector.
    bswap64 needs to be used instead of bswap_64 on FreeBSD.
    
    In file included from app/qmlutils.cpp:16:
    ../3rdparty/simdjson/singleheader/simdjson.h:14999:44: error: use of undeclared identifier 'vec_vbpermq'
        result = ((__vector unsigned long long)vec_vbpermq((__m128i)this->value,
                                               ^
    ../3rdparty/simdjson/singleheader/simdjson.h:15022:22: error: use of undeclared identifier 'vec_vsx_ld'
        return (__m128i)(vec_vsx_ld(0, reinterpret_cast<const uint8_t *>(values)));
                         ^
    ../3rdparty/simdjson/singleheader/simdjson.h:15108:9: error: use of undeclared identifier 'vec_vsx_ld'
            vec_vsx_ld(0, reinterpret_cast<const uint8_t *>(pshufb_combine_table + pop1 * 8));
            ^
    ../3rdparty/simdjson/singleheader/simdjson.h:15110:5: error: use of undeclared identifier 'vec_vsx_st'; did you mean 'vec_xst'?
        vec_vsx_st(answer, 0, reinterpret_cast<__m128i *>(output));
        ^~~~~~~~~~
        vec_xst
    /usr/lib/clang/11.0.1/include/altivec.h:16610:33: note: 'vec_xst' declared here
    static inline __ATTRS_o_ai void vec_xst(vector float __vec,
                                    ^
    In file included from app/qmlutils.cpp:16:
    ../3rdparty/simdjson/singleheader/simdjson.h:15110:27: error: cannot initialize a parameter of type 'float *' with an rvalue of type 'simdjson::ppc64::(anonymous namespace)::simd::__m128i *'
        vec_vsx_st(answer, 0, reinterpret_cast<__m128i *>(output));
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /usr/lib/clang/11.0.1/include/altivec.h:16612:48: note: passing argument to parameter '__ptr' here
                                            float *__ptr) {
                                                   ^
    In file included from app/qmlutils.cpp:16:
    ../3rdparty/simdjson/singleheader/simdjson.h:15768:9: error: use of undeclared identifier 'bswap_64'
      val = bswap_64(val);
            ^
    ../3rdparty/simdjson/singleheader/simdjson.h:15039:5: error: use of undeclared identifier 'vec_vsx_st'
        vec_vsx_st(this->value, 0, reinterpret_cast<__m128i *>(dst));
        ^
    ../3rdparty/simdjson/singleheader/simdjson.h:15586:6: note: in instantiation of member function 'simdjson::ppc64::(anonymous namespace)::simd::base8_numeric<unsigned char>::store' requested here
      v0.store(dst);
         ^
---
 databases/redisdesktopmanager/Makefile                      |  1 +
 .../files/patch-3rdparty_simdjson_singleheader_simdjson.h   | 13 +++++++++++--
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/databases/redisdesktopmanager/Makefile b/databases/redisdesktopmanager/Makefile
index b4933ac7fd9c..66a733518f8c 100644
--- a/databases/redisdesktopmanager/Makefile
+++ b/databases/redisdesktopmanager/Makefile
@@ -41,6 +41,7 @@ USE_QT=			charts concurrent core declarative gui network \
 QMAKE_ARGS+=		SYSTEM_LZ4=1 VERSION=${PORTVERSION}
 BINARY_ALIAS=		python3-config=${PYTHON_CMD}-config \
 			python3=${PYTHON_CMD}
+CXXFLAGS_powerpc64=	-mpower8-vector
 
 do-install:
 	${MKDIR} ${STAGEDIR}${PREFIX}/bin ${STAGEDIR}${PREFIX}/share/pixmaps
diff --git a/databases/redisdesktopmanager/files/patch-3rdparty_simdjson_singleheader_simdjson.h b/databases/redisdesktopmanager/files/patch-3rdparty_simdjson_singleheader_simdjson.h
index 5901c843f00f..dd6809c45a99 100644
--- a/databases/redisdesktopmanager/files/patch-3rdparty_simdjson_singleheader_simdjson.h
+++ b/databases/redisdesktopmanager/files/patch-3rdparty_simdjson_singleheader_simdjson.h
@@ -1,6 +1,6 @@
---- 3rdparty/simdjson/singleheader/simdjson.h.orig	2021-09-30 06:08:20 UTC
+--- 3rdparty/simdjson/singleheader/simdjson.h.orig	2021-09-07 18:36:17 UTC
 +++ 3rdparty/simdjson/singleheader/simdjson.h
-@@ -15748,7 +15748,11 @@ simdjson_unused simdjson_warn_unused simdjson_really_i
+@@ -17189,7 +17189,11 @@ simdjson_unused simdjson_warn_unused simdjson_really_i
  #ifndef SIMDJSON_PPC64_NUMBERPARSING_H
  #define SIMDJSON_PPC64_NUMBERPARSING_H
  
@@ -12,3 +12,12 @@
  
  namespace simdjson {
  namespace ppc64 {
+@@ -17202,7 +17206,7 @@ parse_eight_digits_unrolled(const uint8_t *chars) {
+   uint64_t val;
+   std::memcpy(&val, chars, sizeof(uint64_t));
+ #ifdef __BIG_ENDIAN__
+-  val = bswap_64(val);
++  val = bswap64(val);
+ #endif
+   val = (val & 0x0F0F0F0F0F0F0F0F) * 2561 >> 8;
+   val = (val & 0x00FF00FF00FF00FF) * 6553601 >> 16;