Make sure we use the liburing of the platform we're building for
Signed-off-by: morguldir <morguldir@protonmail.com>
This commit is contained in:
parent
70047ff26d
commit
8ba9b33a95
2 changed files with 13 additions and 10 deletions
|
@ -42,12 +42,6 @@
|
||||||
(builtins.fromJSON (builtins.readFile ./flake.lock))
|
(builtins.fromJSON (builtins.readFile ./flake.lock))
|
||||||
.nodes.rocksdb.original.ref;
|
.nodes.rocksdb.original.ref;
|
||||||
});
|
});
|
||||||
# liburing's configure file is handwritten so the default assumptions don't apply
|
|
||||||
liburing = pkgs.liburing.overrideAttrs {
|
|
||||||
dontAddStaticConfigureFlags = true;
|
|
||||||
dontDisableStatic = true;
|
|
||||||
configureFlags = [];
|
|
||||||
};
|
|
||||||
});
|
});
|
||||||
|
|
||||||
scopeHost = mkScope pkgsHost;
|
scopeHost = mkScope pkgsHost;
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
, rust
|
, rust
|
||||||
, rust-jemalloc-sys
|
, rust-jemalloc-sys
|
||||||
, stdenv
|
, stdenv
|
||||||
|
, pkgsStatic
|
||||||
|
|
||||||
# Options (keep sorted)
|
# Options (keep sorted)
|
||||||
, default_features ? true
|
, default_features ? true
|
||||||
|
@ -55,11 +56,15 @@ rust-jemalloc-sys' = (rust-jemalloc-sys.override {
|
||||||
# tikv-jemalloc-sys/profiling feature
|
# tikv-jemalloc-sys/profiling feature
|
||||||
lib.optional (featureEnabled "jemalloc_prof") "--enable-prof";
|
lib.optional (featureEnabled "jemalloc_prof") "--enable-prof";
|
||||||
});
|
});
|
||||||
|
liburing' = pkgsStatic.liburing.overrideAttrs {
|
||||||
|
configureFlags = []; # liburing's configure file is handwritten so the default assumptions don't apply
|
||||||
|
isStatic = true;
|
||||||
|
};
|
||||||
|
|
||||||
buildDepsOnlyEnv =
|
buildDepsOnlyEnv =
|
||||||
let
|
let
|
||||||
uring = featureEnabled "io_uring";
|
uring = featureEnabled "io_uring" && stdenv.isLinux;
|
||||||
extraDeps = lib.optionals uring [pkgsBuildHost.liburing.dev pkgsBuildHost.liburing.out];
|
extraDeps = lib.optionals uring [ liburing'.dev liburing'.out];
|
||||||
rocksdb' = (rocksdb.override {
|
rocksdb' = (rocksdb.override {
|
||||||
jemalloc = rust-jemalloc-sys';
|
jemalloc = rust-jemalloc-sys';
|
||||||
# rocksdb fails to build with prefixed jemalloc, which is required on
|
# rocksdb fails to build with prefixed jemalloc, which is required on
|
||||||
|
@ -96,10 +101,14 @@ buildPackageEnv = {
|
||||||
} // buildDepsOnlyEnv // {
|
} // buildDepsOnlyEnv // {
|
||||||
CARGO_BUILD_RUSTFLAGS =
|
CARGO_BUILD_RUSTFLAGS =
|
||||||
let
|
let
|
||||||
uring = default_features || builtins.elem "io_uring" features;
|
uring = featureEnabled "io_uring";
|
||||||
|
valid = (stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isx86_64)
|
||||||
|
&& stdenv.hostPlatform.isStatic
|
||||||
|
&& !stdenv.isDarwin
|
||||||
|
&& !stdenv.cc.bintools.isLLVM;
|
||||||
in
|
in
|
||||||
buildDepsOnlyEnv.CARGO_BUILD_RUSTFLAGS
|
buildDepsOnlyEnv.CARGO_BUILD_RUSTFLAGS
|
||||||
+ lib.optionalString uring " -L${pkgsBuildHost.liburing}/lib/ -luring";
|
+ lib.optionalString (uring && valid) " -L${lib.getLib liburing'}/lib/ -luring";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue