From 3c5767335e5224cb45114f23772d4a119ce5997a Mon Sep 17 00:00:00 2001 From: Austin Seipp Date: Fri, 6 Dec 2019 18:16:56 -0600 Subject: [PATCH] mimalloc: fix one final time The library link name is embedded in the ELF executable, so renaming the file doesn't work. This patch just bites the bullet and writes two separate code paths for the secure vs non-secure build... Signed-off-by: Austin Seipp --- pkgs/development/libraries/mimalloc/default.nix | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/pkgs/development/libraries/mimalloc/default.nix b/pkgs/development/libraries/mimalloc/default.nix index 2d38d7e539461d..b3f63ec7e9b91d 100644 --- a/pkgs/development/libraries/mimalloc/default.nix +++ b/pkgs/development/libraries/mimalloc/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchFromGitHub, cmake, ninja -, secureBuild ? true +, secureBuild ? false }: let @@ -25,17 +25,21 @@ stdenv.mkDerivation rec { mkdir -p $dev mv $out/lib/*/include $dev/include - # move everything else into place - mv $out/lib/mimalloc-1.0/libmimalloc*${soext}.1.0 $out/lib/libmimalloc${soext} + # move .a and .o files into place mv $out/lib/mimalloc-1.0/libmimalloc*.a $out/lib/libmimalloc.a mv $out/lib/mimalloc-1.0/mimalloc*.o $out/lib/mimalloc.o + '' + (if secureBuild then '' + mv $out/lib/mimalloc-1.0/libmimalloc-secure${soext}.1.0 $out/lib/libmimalloc-secure${soext}.1.0 + ln -sfv $out/lib/libmimalloc-secure${soext}.1.0 $out/lib/libmimalloc-secure${soext} + ln -sfv $out/lib/libmimalloc-secure${soext}.1.0 $out/lib/libmimalloc${soext} + '' else '' + mv $out/lib/mimalloc-1.0/libmimalloc${soext}.1.0 $out/lib/libmimalloc${soext}.1.0 + ln -sfv $out/lib/libmimalloc${soext}.1.0 $out/lib/libmimalloc${soext} + '') + '' # remote duplicate dir. FIXME: try to fix the .cmake file distribution # so we can re-use it for dependencies... rm -rf $out/lib/mimalloc-1.0 - '' + stdenv.lib.optionalString secureBuild '' - # fix a broken symlink for the -secure alias - ln -sfv $out/lib/libmimalloc.so $out/lib/libmimalloc-secure.so ''; outputs = [ "out" "dev" ];