diff options
author | Vika <kisik21@fireburn.ru> | 2019-08-29 17:12:06 +0300 |
---|---|---|
committer | Vika <kisik21@fireburn.ru> | 2019-08-29 17:12:06 +0300 |
commit | 4b5fc2cfae20913472aceb0a08bda11c93d63578 (patch) | |
tree | 9959ef3e47ec56267ec9c701f07a40b314030006 /pkgs/servers/nosql | |
parent | ff6b4b12b74c47786c2d8fab70e76a2212201a42 (diff) | |
download | nixpkgs-4b5fc2cfae20913472aceb0a08bda11c93d63578.tar nixpkgs-4b5fc2cfae20913472aceb0a08bda11c93d63578.tar.gz nixpkgs-4b5fc2cfae20913472aceb0a08bda11c93d63578.tar.bz2 nixpkgs-4b5fc2cfae20913472aceb0a08bda11c93d63578.tar.lz nixpkgs-4b5fc2cfae20913472aceb0a08bda11c93d63578.tar.xz nixpkgs-4b5fc2cfae20913472aceb0a08bda11c93d63578.tar.zst nixpkgs-4b5fc2cfae20913472aceb0a08bda11c93d63578.zip |
redis: Try to fix cross-compilation
**Note**: This makes redis use libc malloc when cross-compiling to ARM. This may or may not degrade performance. The reason for this is vendored jemalloc with Redis' patches. The makefile for deps has hardcoded configure flags for jemalloc, and as a result, it is unable to cross-compile it.
Diffstat (limited to 'pkgs/servers/nosql')
-rw-r--r-- | pkgs/servers/nosql/redis/default.nix | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/pkgs/servers/nosql/redis/default.nix b/pkgs/servers/nosql/redis/default.nix index 20a6321e0a8..118edb60156 100644 --- a/pkgs/servers/nosql/redis/default.nix +++ b/pkgs/servers/nosql/redis/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, lua }: +{ stdenv, fetchurl, lua, jemalloc }: stdenv.mkDerivation rec { version = "5.0.5"; @@ -9,8 +9,21 @@ stdenv.mkDerivation rec { sha256 = "0xd3ak527cnkz2cn422l2ag9nsa6mhv7y2y49zwqy7fjk6bh0f91"; }; + # Cross-compiling fixes + configurePhase = '' + ${stdenv.lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + # This fixes hiredis, which has the AR awkwardly coded. + # Probably a good candidate for a patch upstream. + makeFlagsArray+=('STLIB_MAKE_CMD=${stdenv.cc.targetPrefix}ar rcs $(STLIBNAME)') + ''} + ''; + buildInputs = [ lua ]; - makeFlags = "PREFIX=$(out)"; + # More cross-compiling fixes. + # Note: this enables libc malloc as a temporary fix for cross-compiling. + # Due to hardcoded configure flags in jemalloc, we can't cross-compile vendored jemalloc properly, and so we're forced to use libc allocator. + # It's weird that the build isn't failing because of failure to compile dependencies, it's from failure to link them! + makeFlags = "PREFIX=$(out)" + stdenv.lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) " AR=${stdenv.cc.targetPrefix}ar RANLIB=${stdenv.cc.targetPrefix}ranlib MALLOC=libc"; enableParallelBuilding = true; |