summaryrefslogtreecommitdiffstats
path: root/src/rocksdb/build_tools/update_dependencies.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/rocksdb/build_tools/update_dependencies.sh')
-rwxr-xr-xsrc/rocksdb/build_tools/update_dependencies.sh182
1 files changed, 182 insertions, 0 deletions
diff --git a/src/rocksdb/build_tools/update_dependencies.sh b/src/rocksdb/build_tools/update_dependencies.sh
new file mode 100755
index 000000000..99099a406
--- /dev/null
+++ b/src/rocksdb/build_tools/update_dependencies.sh
@@ -0,0 +1,182 @@
+#!/bin/sh
+# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
+#
+# Update dependencies.sh file with the latest avaliable versions
+
+BASEDIR=$(dirname $0)
+OUTPUT=""
+
+function log_header()
+{
+ echo "# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved." >> "$OUTPUT"
+}
+
+
+function log_variable()
+{
+ echo "$1=${!1}" >> "$OUTPUT"
+}
+
+
+TP2_LATEST="/mnt/vol/engshare/fbcode/third-party2"
+## $1 => lib name
+## $2 => lib version (if not provided, will try to pick latest)
+## $3 => platform (if not provided, will try to pick latest gcc)
+##
+## get_lib_base will set a variable named ${LIB_NAME}_BASE to the lib location
+function get_lib_base()
+{
+ local lib_name=$1
+ local lib_version=$2
+ local lib_platform=$3
+
+ local result="$TP2_LATEST/$lib_name/"
+
+ # Lib Version
+ if [ -z "$lib_version" ] || [ "$lib_version" = "LATEST" ]; then
+ # version is not provided, use latest
+ result=`ls -dr1v $result/*/ | head -n1`
+ else
+ result="$result/$lib_version/"
+ fi
+
+ # Lib Platform
+ if [ -z "$lib_platform" ]; then
+ # platform is not provided, use latest gcc
+ result=`ls -dr1v $result/gcc-*[^fb]/ | head -n1`
+ else
+ echo $lib_platform
+ result="$result/$lib_platform/"
+ fi
+
+ result=`ls -1d $result/*/ | head -n1`
+
+ # lib_name => LIB_NAME_BASE
+ local __res_var=${lib_name^^}"_BASE"
+ __res_var=`echo $__res_var | tr - _`
+ # LIB_NAME_BASE=$result
+ eval $__res_var=`readlink -f $result`
+
+ log_variable $__res_var
+}
+
+###########################################################
+# platform007 dependencies #
+###########################################################
+
+OUTPUT="$BASEDIR/dependencies_platform007.sh"
+
+rm -f "$OUTPUT"
+touch "$OUTPUT"
+
+echo "Writing dependencies to $OUTPUT"
+
+# Compilers locations
+GCC_BASE=`readlink -f $TP2_LATEST/gcc/7.x/centos7-native/*/`
+CLANG_BASE=`readlink -f $TP2_LATEST/llvm-fb/stable/centos7-native/*/`
+
+log_header
+log_variable GCC_BASE
+log_variable CLANG_BASE
+
+# Libraries locations
+get_lib_base libgcc 7.x platform007
+get_lib_base glibc 2.26 platform007
+get_lib_base snappy LATEST platform007
+get_lib_base zlib LATEST platform007
+get_lib_base bzip2 LATEST platform007
+get_lib_base lz4 LATEST platform007
+get_lib_base zstd LATEST platform007
+get_lib_base gflags LATEST platform007
+get_lib_base jemalloc LATEST platform007
+get_lib_base numa LATEST platform007
+get_lib_base libunwind LATEST platform007
+get_lib_base tbb LATEST platform007
+get_lib_base liburing LATEST platform007
+
+get_lib_base kernel-headers fb platform007
+get_lib_base binutils LATEST centos7-native
+get_lib_base valgrind LATEST platform007
+get_lib_base lua 5.3.4 platform007
+
+git diff $OUTPUT
+
+###########################################################
+# 5.x dependencies #
+###########################################################
+
+OUTPUT="$BASEDIR/dependencies.sh"
+
+rm -f "$OUTPUT"
+touch "$OUTPUT"
+
+echo "Writing dependencies to $OUTPUT"
+
+# Compilers locations
+GCC_BASE=`readlink -f $TP2_LATEST/gcc/5.x/centos7-native/*/`
+CLANG_BASE=`readlink -f $TP2_LATEST/llvm-fb/stable/centos7-native/*/`
+
+log_header
+log_variable GCC_BASE
+log_variable CLANG_BASE
+
+# Libraries locations
+get_lib_base libgcc 5.x gcc-5-glibc-2.23
+get_lib_base glibc 2.23 gcc-5-glibc-2.23
+get_lib_base snappy LATEST gcc-5-glibc-2.23
+get_lib_base zlib LATEST gcc-5-glibc-2.23
+get_lib_base bzip2 LATEST gcc-5-glibc-2.23
+get_lib_base lz4 LATEST gcc-5-glibc-2.23
+get_lib_base zstd LATEST gcc-5-glibc-2.23
+get_lib_base gflags LATEST gcc-5-glibc-2.23
+get_lib_base jemalloc LATEST gcc-5-glibc-2.23
+get_lib_base numa LATEST gcc-5-glibc-2.23
+get_lib_base libunwind LATEST gcc-5-glibc-2.23
+get_lib_base tbb LATEST gcc-5-glibc-2.23
+
+get_lib_base kernel-headers 4.0.9-36_fbk5_2933_gd092e3f gcc-5-glibc-2.23
+get_lib_base binutils LATEST centos7-native
+get_lib_base valgrind LATEST gcc-5-glibc-2.23
+get_lib_base lua 5.2.3 gcc-5-glibc-2.23
+
+git diff $OUTPUT
+
+###########################################################
+# 4.8.1 dependencies #
+###########################################################
+
+OUTPUT="$BASEDIR/dependencies_4.8.1.sh"
+
+rm -f "$OUTPUT"
+touch "$OUTPUT"
+
+echo "Writing 4.8.1 dependencies to $OUTPUT"
+
+# Compilers locations
+GCC_BASE=`readlink -f $TP2_LATEST/gcc/4.8.1/centos6-native/*/`
+CLANG_BASE=`readlink -f $TP2_LATEST/llvm-fb/stable/centos6-native/*/`
+
+log_header
+log_variable GCC_BASE
+log_variable CLANG_BASE
+
+# Libraries locations
+get_lib_base libgcc 4.8.1 gcc-4.8.1-glibc-2.17
+get_lib_base glibc 2.17 gcc-4.8.1-glibc-2.17
+get_lib_base snappy LATEST gcc-4.8.1-glibc-2.17
+get_lib_base zlib LATEST gcc-4.8.1-glibc-2.17
+get_lib_base bzip2 LATEST gcc-4.8.1-glibc-2.17
+get_lib_base lz4 LATEST gcc-4.8.1-glibc-2.17
+get_lib_base zstd LATEST gcc-4.8.1-glibc-2.17
+get_lib_base gflags LATEST gcc-4.8.1-glibc-2.17
+get_lib_base jemalloc LATEST gcc-4.8.1-glibc-2.17
+get_lib_base numa LATEST gcc-4.8.1-glibc-2.17
+get_lib_base libunwind LATEST gcc-4.8.1-glibc-2.17
+get_lib_base tbb 4.0_update2 gcc-4.8.1-glibc-2.17
+
+get_lib_base kernel-headers LATEST gcc-4.8.1-glibc-2.17
+get_lib_base binutils LATEST centos6-native
+get_lib_base valgrind 3.8.1 gcc-4.8.1-glibc-2.17
+get_lib_base lua 5.2.3 centos6-native
+
+git diff $OUTPUT