Skip to content

Commit

Permalink
mimalloc: fix one final time
Browse files Browse the repository at this point in the history
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 <aseipp@pobox.com>
  • Loading branch information
thoughtpolice committed Dec 7, 2019
1 parent 88f24e8 commit 3c57673
Showing 1 changed file with 10 additions and 6 deletions.
16 changes: 10 additions & 6 deletions pkgs/development/libraries/mimalloc/default.nix
@@ -1,5 +1,5 @@
{ stdenv, fetchFromGitHub, cmake, ninja
, secureBuild ? true
, secureBuild ? false
}:

let
Expand All @@ -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" ];
Expand Down

0 comments on commit 3c57673

Please sign in to comment.