<pre style='margin:0'>
Andrew Stromnov (stromnov) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/94d460055d31fcb47d743842490c1ad9062466f7">https://github.com/macports/macports-ports/commit/94d460055d31fcb47d743842490c1ad9062466f7</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 94d460055d3 rocksdb: update to 6.29.5, fix build on PPC
</span>94d460055d3 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 94d460055d31fcb47d743842490c1ad9062466f7
</span>Author: Sergey Fedorov <vital.had@gmail.com>
AuthorDate: Mon Nov 28 05:44:38 2022 +0800

<span style='display:block; white-space:pre;color:#404040;'>    rocksdb: update to 6.29.5, fix build on PPC
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    * rocksdb: update to 6.29.5
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    * rocksdb: non-functional changes to portfile: use https for homepage, remove darwin platform
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    * rocksdb: list configure options explicitly
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    * rocksdb: add variants to enable TBB and jemalloc
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    * rocksdb: fixes for building on PPC and with GCC
</span>---
 databases/rocksdb/Portfile                         |  49 +++++-
 .../files/0001-rocksdb-fixes-for-macOS-PPC.patch   | 173 +++++++++++++++++++++
 2 files changed, 216 insertions(+), 6 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/databases/rocksdb/Portfile b/databases/rocksdb/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 2035c7f77c4..45b619f077b 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/databases/rocksdb/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/databases/rocksdb/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4,11 +4,10 @@ PortSystem          1.0
</span> PortGroup           github 1.0
 PortGroup           cmake 1.1
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-github.setup        facebook rocksdb 6.27.3 v
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup        facebook rocksdb 6.29.5 v
</span> revision            0
 
 categories          databases devel
<span style='display:block; white-space:pre;background:#ffe0e0;'>-platforms           darwin
</span> license             BSD
 
 maintainers         {stromnov @stromnov} openmaintainer
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -16,11 +15,11 @@ maintainers         {stromnov @stromnov} openmaintainer
</span> description         Embedded key-value store for fast storage
 long_description    {*}${description}
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-homepage            http://rocksdb.org/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage            https://rocksdb.org
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums           rmd160  4e623fec9b17b2a956b06c4c35740cf04bd49e71 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  1120a4975e5d0e8e514f4a399c36b65b6b3c09da5c5a54bfbfae561e6dca6ccf \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    size    9433791
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  7408bd1c3e1dc5c5bd8b48a3ec43e545db88ad33 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  65fd2631a4a363833cc5e23bbc3d9fe61e61e950db1155b9ed8a1a0077f2aa8d \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    9508767
</span> 
 depends_lib-append  port:gflags \
                     port:snappy \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -29,5 +28,43 @@ depends_lib-append  port:gflags \
</span>                     port:lz4 \
                     port:zstd
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+patch.pre_args      -p1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles          0001-rocksdb-fixes-for-macOS-PPC.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> compiler.cxx_standard 2011
 compiler.thread_local_storage yes
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_BZ2=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_LZ4=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_SNAPPY=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_ZLIB=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_ZSTD=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DUSE_FOLLY=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_JEMALLOC=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_LIBURING=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_TBB=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[string match *gcc* ${configure.compiler}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # version_set.cc: error: 'rocksdb::{anonymous}::ManifestPicker::ManifestPicker' defined but not used
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # port_posix.cc: error: 'm' may be used uninitialized
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # db_bench_tool.cc: error: narrowing conversion of 'thread->rocksdb::ThreadState::rand.rocksdb::Random64::Next()' from 'uint64_t' to 'size_t'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxxflags-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -Wno-unused-function \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -Wno-maybe-uninitialized \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -Wno-narrowing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant jemalloc description "Use jemalloc" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:jemalloc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_JEMALLOC=OFF -DWITH_JEMALLOC=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant tbb description "Use TBB" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    path:lib/libtbb.dylib:onetbb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_TBB=OFF -DWITH_TBB=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/databases/rocksdb/files/0001-rocksdb-fixes-for-macOS-PPC.patch b/databases/rocksdb/files/0001-rocksdb-fixes-for-macOS-PPC.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..956843d02a6
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/databases/rocksdb/files/0001-rocksdb-fixes-for-macOS-PPC.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,173 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From bb8229f842aa1c8c407bcd0011b380f36a2908c9 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: barracuda156 <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Fri, 25 Nov 2022 16:43:29 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] rocksdb: fixes for macOS PPC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CMakeLists.txt                                | 25 +++++++++++++++----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tools/db_bench_tool.cc                        |  6 +++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../range_tree/lib/portability/toku_atomic.h  | 15 +++++++++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../range_tree/lib/portability/toku_time.h    | 10 ++++++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 4 files changed, 51 insertions(+), 5 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/CMakeLists.txt b/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1c716874a..f05495724 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -209,7 +209,7 @@ else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ include(CheckCCompilerFlag)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64" AND NOT APPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   CHECK_C_COMPILER_FLAG("-mcpu=power9" HAS_POWER9)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if(HAS_POWER9)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mcpu=power9 -mtune=power9")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -227,7 +227,21 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -maltivec")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -maltivec")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   endif(HAS_ALTIVEC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-endif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64" AND NOT APPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc|powerpc64|ppc64)" AND APPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  CHECK_C_COMPILER_FLAG("-mcpu=970" HAS_G5)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if(HAS_G5)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mcpu=970 -mtune=970")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=970 -mtune=970")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  endif(HAS_G5)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  CHECK_C_COMPILER_FLAG("-faltivec" HAS_ALTIVEC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if(HAS_ALTIVEC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    message(STATUS " HAS_ALTIVEC yes")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -faltivec")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -faltivec")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  endif(HAS_ALTIVEC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc|powerpc64|ppc64)" AND APPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(CMAKE_SYSTEM_PROCESSOR MATCHES "arm64|aarch64|AARCH64")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         CHECK_C_COMPILER_FLAG("-march=armv8-a+crc+crypto" HAS_ARMV8_CRC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -282,7 +296,7 @@ else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if(CMAKE_SYSTEM_PROCESSOR MATCHES "^s390x" AND NOT HAS_S390X_MARCH_NATIVE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=z196")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    elseif(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64" AND NOT HAS_ARMV8_CRC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    elseif(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc|powerpc64|ppc64)" AND NOT HAS_ARMV8_CRC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -328,6 +342,7 @@ int main() {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (NOT BUILTIN_ATOMIC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     #TODO: Check if -latomic exists
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     list(APPEND THIRDPARTY_LIBS atomic)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -latomic")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -999,11 +1014,11 @@ if(HAVE_SSE42 AND NOT MSVC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     PROPERTIES COMPILE_FLAGS "-msse4.2 -mpclmul")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64" AND NOT APPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   list(APPEND SOURCES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     util/crc32c_ppc.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     util/crc32c_ppc_asm.S)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-endif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64" AND NOT APPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(HAS_ARMV8_CRC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   list(APPEND SOURCES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/tools/db_bench_tool.cc b/tools/db_bench_tool.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7182528b3..9304e6c32 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/tools/db_bench_tool.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/tools/db_bench_tool.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2879,6 +2879,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       fprintf(stderr, "CPUCache:   %s\n", cache_size.c_str());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #ifndef CPU_TYPE_ARM64 // Old macOS does not recognize arm64 and errs out.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #define CPU_TYPE_ARM64 CPU_TYPE_ARM
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     struct host_basic_info h;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     size_t hlen = HOST_BASIC_INFO_COUNT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (host_info(mach_host_self(), HOST_BASIC_INFO, (host_info_t)&h,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2897,6 +2900,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         case CPU_TYPE_ARM64:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           cpu_type = "arm64";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        case CPU_TYPE_POWERPC:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu_type = "powerpc";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         default:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/utilities/transactions/lock/range/range_tree/lib/portability/toku_atomic.h b/utilities/transactions/lock/range/range_tree/lib/portability/toku_atomic.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index aaa2298fa..3b7b2a63d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/utilities/transactions/lock/range/range_tree/lib/portability/toku_atomic.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/utilities/transactions/lock/range/range_tree/lib/portability/toku_atomic.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -77,25 +77,41 @@ template <typename T, typename U>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ __attribute__((always_inline)) static inline T toku_sync_fetch_and_add(T *addr,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                                                        U diff) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   paranoid_invariant(!crosses_boundary(addr, sizeof *addr));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__APPLE__) && defined(__GNUC__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return __atomic_fetch_add(addr, diff, __ATOMIC_SEQ_CST);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return __sync_fetch_and_add(addr, diff);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ template <typename T, typename U>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ __attribute__((always_inline)) static inline T toku_sync_add_and_fetch(T *addr,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                                                        U diff) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   paranoid_invariant(!crosses_boundary(addr, sizeof *addr));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__APPLE__) && defined(__GNUC__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return __atomic_add_fetch(addr, diff, __ATOMIC_SEQ_CST);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return __sync_add_and_fetch(addr, diff);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ template <typename T, typename U>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ __attribute__((always_inline)) static inline T toku_sync_fetch_and_sub(T *addr,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                                                        U diff) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   paranoid_invariant(!crosses_boundary(addr, sizeof *addr));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__APPLE__) && defined(__GNUC__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return __atomic_fetch_sub(addr, diff, __ATOMIC_SEQ_CST);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return __sync_fetch_and_sub(addr, diff);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ template <typename T, typename U>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ __attribute__((always_inline)) static inline T toku_sync_sub_and_fetch(T *addr,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                                                        U diff) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   paranoid_invariant(!crosses_boundary(addr, sizeof *addr));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__APPLE__) && defined(__GNUC__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return __atomic_sub_fetch(addr, diff, __ATOMIC_SEQ_CST);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return __sync_sub_and_fetch(addr, diff);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ template <typename T, typename U, typename V>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ __attribute__((always_inline)) static inline T toku_sync_val_compare_and_swap(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h b/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 46111e7f0..7c5f3255f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -133,6 +133,16 @@ static inline tokutime_t toku_time_now(void) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return result;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(__powerpc__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return __ppc_get_timebase();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif defined(__POWERPC__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  uint32_t upper, lower, tmp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #define mftbu(r) __asm__ volatile("mftbu %0" : "=r"(r))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #define mftb(r)  __asm__ volatile("mftb  %0" : "=r"(r))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  do {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    mftbu(upper);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    mftb(lower);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    mftbu(tmp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  } while (tmp != upper);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return ((uint64_t)upper << 32) | lower;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(__s390x__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   uint64_t result;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   asm volatile("stckf %0" : "=Q"(result) : : "cc");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.38.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span></pre><pre style='margin:0'>

</pre>