summary refs log tree commit diff
diff options
context:
space:
mode:
authorAnthony Cowley <acowley@gmail.com>2016-09-24 15:28:10 -0400
committerAnthony Cowley <acowley@gmail.com>2016-09-25 20:47:16 -0400
commit3835a1917fe063408658afb5f006bbe2f6f32042 (patch)
treef375f333ba6c3b45f71c431d9f9339ade63d0221
parent0593ad2b1613e22efa88307ee6ee4115563721fb (diff)
downloadnixlib-3835a1917fe063408658afb5f006bbe2f6f32042.tar
nixlib-3835a1917fe063408658afb5f006bbe2f6f32042.tar.gz
nixlib-3835a1917fe063408658afb5f006bbe2f6f32042.tar.bz2
nixlib-3835a1917fe063408658afb5f006bbe2f6f32042.tar.lz
nixlib-3835a1917fe063408658afb5f006bbe2f6f32042.tar.xz
nixlib-3835a1917fe063408658afb5f006bbe2f6f32042.tar.zst
nixlib-3835a1917fe063408658afb5f006bbe2f6f32042.zip
mlton: darwin bootstrap fixes
Allow mlton to compile in a more barren sandbox. The bootstrapping
binaries for darwin have dynamic linking dependencies outside of the nix
store. This patch shifts them to point to the appropriate library within
the nix store.
-rw-r--r--pkgs/development/compilers/mlton/default.nix7
1 files changed, 7 insertions, 0 deletions
diff --git a/pkgs/development/compilers/mlton/default.nix b/pkgs/development/compilers/mlton/default.nix
index 9c5ce109b86b..583f6f80137f 100644
--- a/pkgs/development/compilers/mlton/default.nix
+++ b/pkgs/development/compilers/mlton/default.nix
@@ -63,6 +63,8 @@ stdenv.mkDerivation rec {
     substituteInPlace $(pwd)/../${usr_prefix}/bin/mlton --replace '/${usr_prefix}/lib/mlton' $(pwd)/../${usr_prefix}/lib/mlton
   '' + stdenv.lib.optionalString stdenv.cc.isClang ''
     sed -i "s_	patch -s -p0 <gdtoa.hide-public-fns.patch_	patch -s -p0 <gdtoa.hide-public-fns.patch\n\tsed -i 's|printf(emptyfmt|printf(\"\"|g' ./gdtoa/arithchk.c_" ./runtime/Makefile
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+    sed -i 's|XCFLAGS += -I/usr/local/include -I/sw/include -I/opt/local/include||' ./runtime/Makefile
   '';
 
   preBuild = ''
@@ -83,6 +85,11 @@ stdenv.mkDerivation rec {
     for e in mllex mlyacc ; do
       patchelf --set-interpreter ${dynamic_linker} $(pwd)/../${usr_prefix}/bin/$e
     done
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+    # Patch libgmp linking
+    install_name_tool -change /opt/local/lib/libgmp.10.dylib ${gmp}/lib/libgmp.10.dylib $(pwd)/../${usr_prefix}/lib/mlton/mlton-compile
+    install_name_tool -change /opt/local/lib/libgmp.10.dylib ${gmp}/lib/libgmp.10.dylib $(pwd)/../${usr_prefix}/bin/mlyacc
+    install_name_tool -change /opt/local/lib/libgmp.10.dylib ${gmp}/lib/libgmp.10.dylib $(pwd)/../${usr_prefix}/bin/mllex
   '';
 
   doCheck = true;