diff options
author | John Ericson <John.Ericson@Obsidian.Systems> | 2017-09-23 10:13:21 -0400 |
---|---|---|
committer | Domen Kožar <domen@dev.si> | 2017-12-25 16:36:47 +0000 |
commit | b6867f71f4d20e544372114350f00ceb1fdca74a (patch) | |
tree | 0d70a96a9c6bd045007bfed92ae9c5d3782c6831 /pkgs/development/compilers | |
parent | 150255e318ce9d945684baafa657fee436e649fd (diff) | |
download | nixlib-b6867f71f4d20e544372114350f00ceb1fdca74a.tar nixlib-b6867f71f4d20e544372114350f00ceb1fdca74a.tar.gz nixlib-b6867f71f4d20e544372114350f00ceb1fdca74a.tar.bz2 nixlib-b6867f71f4d20e544372114350f00ceb1fdca74a.tar.lz nixlib-b6867f71f4d20e544372114350f00ceb1fdca74a.tar.xz nixlib-b6867f71f4d20e544372114350f00ceb1fdca74a.tar.zst nixlib-b6867f71f4d20e544372114350f00ceb1fdca74a.zip |
ghc prebuilt: Simplify and harden Darwin fixup
- Patch all executables and libraries, while skipping scripts. Base at least uses libiconv, so should need this too---I suspect it wasn't a problem before as we got away with the immpurity. - Rather than hardcoding the symlinks to add, do one per mach-o as needed TEMP no -L no script
Diffstat (limited to 'pkgs/development/compilers')
-rw-r--r-- | pkgs/development/compilers/ghc/7.0.4-binary.nix | 13 | ||||
-rw-r--r-- | pkgs/development/compilers/ghc/7.4.2-binary.nix | 13 |
2 files changed, 8 insertions, 18 deletions
diff --git a/pkgs/development/compilers/ghc/7.0.4-binary.nix b/pkgs/development/compilers/ghc/7.0.4-binary.nix index bb592a6cfe33..c518c67d16b1 100644 --- a/pkgs/development/compilers/ghc/7.0.4-binary.nix +++ b/pkgs/development/compilers/ghc/7.0.4-binary.nix @@ -106,15 +106,10 @@ stdenv.mkDerivation rec { -exec patchelf --set-rpath "${libPath}" {} \; '' + stdenv.lib.optionalString stdenv.isDarwin '' # not enough room in the object files for the full path to libiconv :( - ln -s ${libiconv}/lib/libiconv.dylib $out/bin - ln -s ${libiconv}/lib/libiconv.dylib $out/lib/ghc-${version}/libiconv.dylib - - fix () { - install_name_tool -change /usr/lib/libiconv.2.dylib @executable_path/libiconv.dylib $1 - } - - for file in ghc-cabal ghc-pwd ghc-stage2 ghc-pkg haddock hsc2hs hpc; do - fix $(find "$out" -type f -name $file) + for exe in $(find "$out" -type f -executable); do + isScript $exe && continue + ln -fs ${libiconv}/lib/libiconv.dylib $(dirname $exe)/libiconv.dylib + install_name_tool -change /usr/lib/libiconv.2.dylib @executable_path/libiconv.dylib $exe done for file in $(find "$out" -name setup-config); do diff --git a/pkgs/development/compilers/ghc/7.4.2-binary.nix b/pkgs/development/compilers/ghc/7.4.2-binary.nix index 65a3d2a7f730..3cb28e2c8207 100644 --- a/pkgs/development/compilers/ghc/7.4.2-binary.nix +++ b/pkgs/development/compilers/ghc/7.4.2-binary.nix @@ -107,15 +107,10 @@ stdenv.mkDerivation rec { -exec patchelf --set-rpath "${libPath}" {} \; '' + stdenv.lib.optionalString stdenv.isDarwin '' # not enough room in the object files for the full path to libiconv :( - ln -s ${libiconv}/lib/libiconv.dylib $out/bin - ln -s ${libiconv}/lib/libiconv.dylib $out/lib/ghc-${version}/libiconv.dylib - - fix () { - install_name_tool -change /usr/lib/libiconv.2.dylib @executable_path/libiconv.dylib $1 - } - - for file in ghc-cabal ghc-pwd ghc-stage2 ghc-pkg haddock hsc2hs hpc; do - fix $(find "$out" -type f -name $file) + for exe in $(find "$out" -type f -executable); do + isScript $exe && continue + ln -fs ${libiconv}/lib/libiconv.dylib $(dirname $exe)/libiconv.dylib + install_name_tool -change /usr/lib/libiconv.2.dylib @executable_path/libiconv.dylib $exe done for file in $(find "$out" -name setup-config); do |