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)
