Repository: mesos
Updated Branches:
  refs/heads/master 86ea327ae -> 74878e255


Upgrade leveldb to 1.19.

Leveldb in modern version is required to support s390x and arm64.
It's also required to replace default byte-wise comparator with
varint comparator in `src/log/leveldb.cpp`.

Review: https://reviews.apache.org/r/51053/


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/74878e25
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/74878e25
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/74878e25

Branch: refs/heads/master
Commit: 74878e255bb099029dde2a03e0b1d22fecf16000
Parents: 86ea327
Author: Tomasz Janiszewski <[email protected]>
Authored: Mon Feb 20 12:24:44 2017 +0800
Committer: Haosdent Huang <[email protected]>
Committed: Mon Feb 20 15:36:54 2017 +0800

----------------------------------------------------------------------
 3rdparty/Makefile.am                        |   4 +-
 3rdparty/cmake/Mesos3rdpartyConfigure.cmake |   2 +-
 3rdparty/cmake/Versions.cmake               |   2 +-
 3rdparty/leveldb-1.19.patch                 |  30 ++++++++++++
 3rdparty/leveldb-1.19.tar.gz                | Bin 0 -> 220839 bytes
 3rdparty/leveldb-1.4.patch                  |  57 -----------------------
 3rdparty/leveldb-1.4.tar.gz                 | Bin 198113 -> 0 bytes
 3rdparty/versions.am                        |   2 +-
 LICENSE                                     |   2 +-
 src/Makefile.am                             |   2 +-
 src/python/native_common/ext_modules.py.in  |   4 +-
 support/mesos-tidy/entrypoint.sh            |   2 +-
 12 files changed, 40 insertions(+), 67 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/74878e25/3rdparty/Makefile.am
----------------------------------------------------------------------
diff --git a/3rdparty/Makefile.am b/3rdparty/Makefile.am
index bbf9cfe..61d832b2 100644
--- a/3rdparty/Makefile.am
+++ b/3rdparty/Makefile.am
@@ -296,11 +296,11 @@ BUILT_SOURCES += $(nodist_libgmock_la_SOURCES)
 if WITH_BUNDLED_LEVELDB
 # TODO(charles): Figure out PIC options in our configure.ac or create
 # a configure.ac for leveldb.
-$(LEVELDB)/libleveldb.a: $(LEVELDB)-stamp
+$(LEVELDB)/out-static/libleveldb.a: $(LEVELDB)-stamp
        cd $(LEVELDB) && \
          $(MAKE) $(AM_MAKEFLAGS) CC="$(CC)" CXX="$(CXX)" OPT="$(CXXFLAGS) 
-fPIC"
 
-ALL_LOCAL += $(LEVELDB)/libleveldb.a
+ALL_LOCAL += $(LEVELDB)/out-static/libleveldb.a
 endif
 
 if WITH_BUNDLED_ZOOKEEPER

http://git-wip-us.apache.org/repos/asf/mesos/blob/74878e25/3rdparty/cmake/Mesos3rdpartyConfigure.cmake
----------------------------------------------------------------------
diff --git a/3rdparty/cmake/Mesos3rdpartyConfigure.cmake 
b/3rdparty/cmake/Mesos3rdpartyConfigure.cmake
index eeb2786..c606526 100755
--- a/3rdparty/cmake/Mesos3rdpartyConfigure.cmake
+++ b/3rdparty/cmake/Mesos3rdpartyConfigure.cmake
@@ -47,7 +47,7 @@ endif (NOT WIN32)
 # Convenience variables for "lflags", the symbols we pass to CMake to generate
 # things like `-L/path/to/glog` or `-lglog`.
 if (NOT WIN32)
-  set(LEVELDB_LFLAG   ${LEVELDB_ROOT}/libleveldb.a)
+  set(LEVELDB_LFLAG   ${LEVELDB_ROOT}/out-static/libleveldb.a)
   set(ZOOKEEPER_LFLAG ${ZOOKEEPER_LIB}/lib/libzookeeper_mt.a)
 else (NOT WIN32)
   set(ZOOKEEPER_LFLAG zookeeper)

http://git-wip-us.apache.org/repos/asf/mesos/blob/74878e25/3rdparty/cmake/Versions.cmake
----------------------------------------------------------------------
diff --git a/3rdparty/cmake/Versions.cmake b/3rdparty/cmake/Versions.cmake
index ad23f38..9127263 100644
--- a/3rdparty/cmake/Versions.cmake
+++ b/3rdparty/cmake/Versions.cmake
@@ -4,7 +4,7 @@ set(ELFIO_VERSION       "3.2")
 set(GLOG_VERSION        "0.3.3")
 set(GMOCK_VERSION       "1.7.0")
 set(HTTP_PARSER_VERSION "2.6.2")
-set(LEVELDB_VERSION     "1.4")
+set(LEVELDB_VERSION     "1.19")
 set(LIBAPR_VERSION      "1.5.2")
 set(LIBEV_VERSION       "4.22")
 # TODO(hausdorff): (MESOS-3529) transition this back to a non-beta version.

http://git-wip-us.apache.org/repos/asf/mesos/blob/74878e25/3rdparty/leveldb-1.19.patch
----------------------------------------------------------------------
diff --git a/3rdparty/leveldb-1.19.patch b/3rdparty/leveldb-1.19.patch
new file mode 100644
index 0000000..e281e95
--- /dev/null
+++ b/3rdparty/leveldb-1.19.patch
@@ -0,0 +1,30 @@
+diff --git a/build_detect_platform b/build_detect_platform
+index bb76c4f..c403e91 100755
+--- a/build_detect_platform
++++ b/build_detect_platform
+@@ -190,24 +190,7 @@ EOF
+         COMMON_FLAGS="$COMMON_FLAGS -DLEVELDB_PLATFORM_POSIX"
+     fi
+
+-    # Test whether Snappy library is installed
+-    # http://code.google.com/p/snappy/
+-    $CXX $CXXFLAGS -x c++ - -o $CXXOUTPUT 2>/dev/null  <<EOF
+-      #include <snappy.h>
+-      int main() {}
+-EOF
+-    if [ "$?" = 0 ]; then
+-        COMMON_FLAGS="$COMMON_FLAGS -DSNAPPY"
+-        PLATFORM_LIBS="$PLATFORM_LIBS -lsnappy"
+-    fi
+-
+-    # Test whether tcmalloc is available
+-    $CXX $CXXFLAGS -x c++ - -o $CXXOUTPUT -ltcmalloc 2>/dev/null  <<EOF
+-      int main() {}
+-EOF
+-    if [ "$?" = 0 ]; then
+-        PLATFORM_LIBS="$PLATFORM_LIBS -ltcmalloc"
+-    fi
++# Removed tests for TCMALLOC and SNAPPY to prevent additional dependencies.
+
+     rm -f $CXXOUTPUT 2>/dev/null
+ fi

http://git-wip-us.apache.org/repos/asf/mesos/blob/74878e25/3rdparty/leveldb-1.19.tar.gz
----------------------------------------------------------------------
diff --git a/3rdparty/leveldb-1.19.tar.gz b/3rdparty/leveldb-1.19.tar.gz
new file mode 100644
index 0000000..6f15c06
Binary files /dev/null and b/3rdparty/leveldb-1.19.tar.gz differ

http://git-wip-us.apache.org/repos/asf/mesos/blob/74878e25/3rdparty/leveldb-1.4.patch
----------------------------------------------------------------------
diff --git a/3rdparty/leveldb-1.4.patch b/3rdparty/leveldb-1.4.patch
deleted file mode 100644
index b899f01..0000000
--- a/3rdparty/leveldb-1.4.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-diff --git a/build_detect_platform b/build_detect_platform
-index b71bf02..864e5fb 100755
---- a/build_detect_platform
-+++ b/build_detect_platform
-@@ -128,24 +128,8 @@ EOF
-         COMMON_FLAGS="$COMMON_FLAGS -DLEVELDB_PLATFORM_POSIX"
-     fi
- 
--    # Test whether Snappy library is installed
--    # http://code.google.com/p/snappy/
--    $CXX $CFLAGS -x c++ - -o /dev/null 2>/dev/null  <<EOF
--      #include <snappy.h>
--      int main() {}
--EOF
--    if [ "$?" = 0 ]; then
--        COMMON_FLAGS="$COMMON_FLAGS -DSNAPPY"
--        PLATFORM_LDFLAGS="$PLATFORM_LDFLAGS -lsnappy"
--    fi
-+# Removed tests for TCMALLOC and SNAPPY to prevent additional dependencies.
- 
--    # Test whether tcmalloc is available
--    $CXX $CFLAGS -x c++ - -o /dev/null -ltcmalloc 2>/dev/null  <<EOF
--      int main() {}
--EOF
--    if [ "$?" = 0 ]; then
--        PLATFORM_LDFLAGS="$PLATFORM_LDFLAGS -ltcmalloc"
--    fi
- fi
- 
- PLATFORM_CCFLAGS="$PLATFORM_CCFLAGS $COMMON_FLAGS"
-diff --git a/port/atomic_pointer.h b/port/atomic_pointer.h
-index 35ae550..b4769b3 100644
---- a/port/atomic_pointer.h
-+++ b/port/atomic_pointer.h
-@@ -36,6 +36,8 @@
- #define ARCH_CPU_X86_FAMILY 1
- #elif defined(__ARMEL__)
- #define ARCH_CPU_ARM_FAMILY 1
-+#elif defined(__ppc__) || defined(__powerpc__) || defined(__powerpc64__)
-+#define ARCH_CPU_PPC_FAMILY 1
- #endif
- 
- namespace leveldb {
-@@ -83,6 +85,13 @@ inline void MemoryBarrier() {
- }
- #define LEVELDB_HAVE_MEMORY_BARRIER
- 
-+// PPC
-+#elif defined(ARCH_CPU_PPC_FAMILY) && defined(__GNUC__)
-+inline void MemoryBarrier() {
-+  asm volatile("lwsync" : : : "memory");
-+}
-+#define LEVELDB_HAVE_MEMORY_BARRIER
-+
- #endif
- 
- // AtomicPointer built using platform-specific MemoryBarrier()

http://git-wip-us.apache.org/repos/asf/mesos/blob/74878e25/3rdparty/leveldb-1.4.tar.gz
----------------------------------------------------------------------
diff --git a/3rdparty/leveldb-1.4.tar.gz b/3rdparty/leveldb-1.4.tar.gz
deleted file mode 100644
index 2ddbc0c..0000000
Binary files a/3rdparty/leveldb-1.4.tar.gz and /dev/null differ

http://git-wip-us.apache.org/repos/asf/mesos/blob/74878e25/3rdparty/versions.am
----------------------------------------------------------------------
diff --git a/3rdparty/versions.am b/3rdparty/versions.am
index 26f839c..b814470 100644
--- a/3rdparty/versions.am
+++ b/3rdparty/versions.am
@@ -25,7 +25,7 @@ GLOG_VERSION = 0.3.3
 GMOCK_VERSION = 1.7.0
 GPERFTOOLS_VERSION = 2.5
 HTTP_PARSER_VERSION = 2.6.2
-LEVELDB_VERSION = 1.4
+LEVELDB_VERSION = 1.19
 LIBEV_VERSION = 4.22
 NVML_VERSION = 352.79
 PICOJSON_VERSION = 1.3.0

http://git-wip-us.apache.org/repos/asf/mesos/blob/74878e25/LICENSE
----------------------------------------------------------------------
diff --git a/LICENSE b/LICENSE
index 7946d1d..f11970c 100644
--- a/LICENSE
+++ b/LICENSE
@@ -428,7 +428,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
SUCH DAMAGE.
 
 
 ======================================================================
-For leveldb (3rdparty/leveldb-1.4.tar.gz):
+For leveldb (3rdparty/leveldb-1.19.tar.gz):
 ======================================================================
 
 Copyright (c) 2011 The LevelDB Authors. All rights reserved.

http://git-wip-us.apache.org/repos/asf/mesos/blob/74878e25/src/Makefile.am
----------------------------------------------------------------------
diff --git a/src/Makefile.am b/src/Makefile.am
index c21a073..89fc72b 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -171,7 +171,7 @@ MESOS_CPPFLAGS += -I../$(LEVELDB)/include
 # the installed libmesos.la file to include leveldb in
 # 'dependency_libs' (via '-L../3rdparty/leveldb -lleveldb').
 
-LIB_LEVELDB = ../$(LEVELDB)/libleveldb.a
+LIB_LEVELDB = ../$(LEVELDB)/out-static/libleveldb.a
 else
 LIB_LEVELDB = -lleveldb
 LDADD += -lleveldb

http://git-wip-us.apache.org/repos/asf/mesos/blob/74878e25/src/python/native_common/ext_modules.py.in
----------------------------------------------------------------------
diff --git a/src/python/native_common/ext_modules.py.in 
b/src/python/native_common/ext_modules.py.in
index 2d4a45e..e0bb335 100644
--- a/src/python/native_common/ext_modules.py.in
+++ b/src/python/native_common/ext_modules.py.in
@@ -31,7 +31,7 @@ def _create_module(module_name):
     ext_common_dir = os.path.join(
         'src', 'python', 'native_common')
 
-    leveldb = os.path.join('3rdparty', 'leveldb-1.4')
+    leveldb = os.path.join('3rdparty', 'leveldb-1.19')
     zookeeper = os.path.join('3rdparty', 'zookeeper-3.4.8', 'src', 'c')
     libprocess = os.path.join('3rdparty', 'libprocess')
 
@@ -74,7 +74,7 @@ def _create_module(module_name):
     # For leveldb, we need to check for the presence of libleveldb.a, since
     # it is possible to disable leveldb inside mesos.
     libglog = os.path.join(abs_top_builddir, glog, '.libs', 'libglog.a')
-    libleveldb = os.path.join(abs_top_builddir, leveldb, 'libleveldb.a')
+    libleveldb = os.path.join(abs_top_builddir, leveldb, 'out-static', 
'libleveldb.a')
     libzookeeper = os.path.join(
         abs_top_builddir, zookeeper, '.libs', 'libzookeeper_mt.a')
     libprotobuf = os.path.join(

http://git-wip-us.apache.org/repos/asf/mesos/blob/74878e25/support/mesos-tidy/entrypoint.sh
----------------------------------------------------------------------
diff --git a/support/mesos-tidy/entrypoint.sh b/support/mesos-tidy/entrypoint.sh
index 4f03a60..5dbaa60 100755
--- a/support/mesos-tidy/entrypoint.sh
+++ b/support/mesos-tidy/entrypoint.sh
@@ -45,7 +45,7 @@ cmake --build 3rdparty --target http_parser-2.6.2 -- -j 
$(nproc)
 cmake --build 3rdparty --target libev-4.22 -- -j $(nproc) || true
 cmake --build 3rdparty --target libevent-2.1.5-beta -- -j $(nproc) || true
 
-cmake --build 3rdparty --target leveldb-1.4 -- -j $(nproc)
+cmake --build 3rdparty --target leveldb-1.19 -- -j $(nproc)
 cmake --build 3rdparty --target nvml-352.79 -- -j $(nproc)
 cmake --build 3rdparty --target picojson-1.3.0 -- -j $(nproc)
 cmake --build 3rdparty --target protobuf-2.6.1 -- -j $(nproc)

Reply via email to