diff --git a/.gitmodules b/.gitmodules index a3a9ba8b..8f818e9e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,9 @@ [submodule "rocksdb"] path = cozorocks/rocksdb url = https://github.com/facebook/rocksdb +[submodule "cozorocks/rocksdb"] + path = cozorocks/rocksdb + url = https://github.com/facebook/rocksdb +[submodule "cozorocks/jemalloc"] + path = cozorocks/jemalloc + url = https://github.com/jemalloc/jemalloc diff --git a/.idea/vcs.xml b/.idea/vcs.xml index c96caebf..7b5a68f8 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -2,6 +2,7 @@ - + + \ No newline at end of file diff --git a/build_rocksdb.sh b/build_rocksdb.sh deleted file mode 100644 index 4dbacfb1..00000000 --- a/build_rocksdb.sh +++ /dev/null @@ -1,19 +0,0 @@ -cd rocksdb || exit -make clean -INSTALL_DIR=$(readlink -f ../deps) -echo "$INSTALL_DIR" -rm -fr "$INSTALL_DIR" -mkdir "$INSTALL_DIR" - -export JEMALLOC_BASE=/opt/homebrew - -JEMALLOC_INCLUDE=" -I $JEMALLOC_BASE/include/" \ -JEMALLOC_LIB=" $JEMALLOC_BASE/lib/libjemalloc.a" \ -USE_RTTI=1 \ -USE_CLANG=1 \ -JEMALLOC=1 \ -PREFIX=$INSTALL_DIR \ -make install-static - -DEBUG_LEVEL=0 make libz.a libsnappy.a liblz4.a libzstd.a -mv ./*.a ../deps/lib \ No newline at end of file diff --git a/cozorocks/CMakeLists.txt b/cozorocks/CMakeLists.txt index 6fabc705..a2351d83 100644 --- a/cozorocks/CMakeLists.txt +++ b/cozorocks/CMakeLists.txt @@ -4,7 +4,7 @@ project(cozorocks) set(CMAKE_CXX_STANDARD 17) include_directories("bridge") -include_directories("../deps/include") +include_directories("deps/include") include_directories("../target/cxxbridge") add_library(cozorocks "bridge/cozorocks.cc" "bridge/cozorocks.h") \ No newline at end of file diff --git a/cozorocks/Cargo.toml b/cozorocks/Cargo.toml index 814637a9..0f6afcd3 100644 --- a/cozorocks/Cargo.toml +++ b/cozorocks/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" [dependencies] cxx = "1.0.69" -tikv-jemalloc-sys = { "version" = "0.5", "features" = ["unprefixed_malloc_on_supported_platforms"] } +#tikv-jemalloc-sys = { "version" = "0.5", "features" = ["unprefixed_malloc_on_supported_platforms"] } [build-dependencies] cxx-build = "1.0.69" \ No newline at end of file diff --git a/cozorocks/build.rs b/cozorocks/build.rs index 21bf8f13..8baade7c 100644 --- a/cozorocks/build.rs +++ b/cozorocks/build.rs @@ -3,7 +3,6 @@ use std::env::var; fn main() { let manifest_dir = var("CARGO_MANIFEST_DIR").unwrap(); - // println!("cargo:rustc-link-search=/opt/homebrew/lib/"); println!("cargo:rustc-link-search={}/deps/lib/", manifest_dir); println!("cargo:rustc-link-lib=rocksdb"); println!("cargo:rustc-link-lib=z"); diff --git a/cozorocks/build_rocksdb.sh b/cozorocks/build_rocksdb.sh new file mode 100644 index 00000000..94e01ab2 --- /dev/null +++ b/cozorocks/build_rocksdb.sh @@ -0,0 +1,29 @@ +mkdir -p deps +INSTALL_DIR=$(readlink -f deps) +echo "$INSTALL_DIR" + +cd jemalloc || exit + +./autogen.sh --disable-debug --prefix="$INSTALL_DIR" --with-jemalloc-prefix="" +make +make install + +cd .. + +cd rocksdb || exit +make clean + +export JEMALLOC_BASE=$INSTALL_DIR + +DEBUG_LEVEL=0 \ +JEMALLOC_INCLUDE=" -I $JEMALLOC_BASE/include/" \ +JEMALLOC_LIB=" $JEMALLOC_BASE/lib/libjemalloc.a" \ +USE_RTTI=1 \ +USE_CLANG=1 \ +JEMALLOC=1 \ +PREFIX=$INSTALL_DIR \ +make install-static || exit + +DEBUG_LEVEL=0 make libz.a libsnappy.a liblz4.a libzstd.a +mv ./*.a ../deps/lib || exit +make clean \ No newline at end of file diff --git a/cozorocks/jemalloc b/cozorocks/jemalloc new file mode 160000 index 00000000..54eaed1d --- /dev/null +++ b/cozorocks/jemalloc @@ -0,0 +1 @@ +Subproject commit 54eaed1d8b56b1aa528be3bdd1877e59c56fa90c diff --git a/cozorocks/rocksdb b/cozorocks/rocksdb new file mode 160000 index 00000000..8e0f4952 --- /dev/null +++ b/cozorocks/rocksdb @@ -0,0 +1 @@ +Subproject commit 8e0f495253f62904a4ca6d3ec6a03391a12b0a45