ghc binaries: compile on darwin
This commit is contained in:
parent
e4c05ae25a
commit
bd7c8ea255
|
@ -2,6 +2,7 @@
|
||||||
, fetchurl, perl
|
, fetchurl, perl
|
||||||
, ncurses5, gmp, libiconv
|
, ncurses5, gmp, libiconv
|
||||||
, enableIntegerSimple ? false
|
, enableIntegerSimple ? false
|
||||||
|
, gcc
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
@ -50,6 +51,12 @@ stdenv.mkDerivation rec {
|
||||||
# during linking
|
# during linking
|
||||||
stdenv.lib.optionalString stdenv.isDarwin ''
|
stdenv.lib.optionalString stdenv.isDarwin ''
|
||||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
||||||
|
# not enough room in the object files for the full path to libiconv :(
|
||||||
|
for exe in $(find . -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 -change /usr/local/lib/gcc/5/libgcc_s.1.dylib ${gcc.cc.lib}/lib/libgcc_s.1.dylib $exe
|
||||||
|
done
|
||||||
'' +
|
'' +
|
||||||
|
|
||||||
# Some scripts used during the build need to have their shebangs patched
|
# Some scripts used during the build need to have their shebangs patched
|
||||||
|
@ -118,7 +125,7 @@ stdenv.mkDerivation rec {
|
||||||
for exe in $(find "$out" -type f -executable); do
|
for exe in $(find "$out" -type f -executable); do
|
||||||
isScript $exe && continue
|
isScript $exe && continue
|
||||||
ln -fs ${libiconv}/lib/libiconv.dylib $(dirname $exe)/libiconv.dylib
|
ln -fs ${libiconv}/lib/libiconv.dylib $(dirname $exe)/libiconv.dylib
|
||||||
install_name_tool -change /usr/lib/libiconv.2.dylib @executable_path/libiconv.dylib $exe
|
install_name_tool -change /usr/lib/libiconv.2.dylib @executable_path/libiconv.dylib -change /usr/local/lib/gcc/5/libgcc_s.1.dylib ${gcc.cc.lib}/lib/libgcc_s.1.dylib $exe
|
||||||
done
|
done
|
||||||
|
|
||||||
for file in $(find "$out" -name setup-config); do
|
for file in $(find "$out" -name setup-config); do
|
||||||
|
|
|
@ -46,6 +46,15 @@ stdenv.mkDerivation rec {
|
||||||
# during linking
|
# during linking
|
||||||
stdenv.lib.optionalString stdenv.isDarwin ''
|
stdenv.lib.optionalString stdenv.isDarwin ''
|
||||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
||||||
|
# not enough room in the object files for the full path to libiconv :(
|
||||||
|
for exe in $(find . -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
|
||||||
|
for file in $(find . -name setup-config); do
|
||||||
|
substituteInPlace $file --replace /usr/bin/ranlib "$(type -P ranlib)"
|
||||||
|
done
|
||||||
|
done
|
||||||
'' +
|
'' +
|
||||||
|
|
||||||
# Some scripts used during the build need to have their shebangs patched
|
# Some scripts used during the build need to have their shebangs patched
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{ stdenv
|
{ stdenv
|
||||||
, fetchurl, perl
|
, fetchurl, perl, gcc
|
||||||
, ncurses5, gmp, libiconv
|
, ncurses5, gmp, libiconv
|
||||||
, enableIntegerSimple ? false
|
, enableIntegerSimple ? false
|
||||||
}:
|
}:
|
||||||
|
@ -54,6 +54,12 @@ stdenv.mkDerivation rec {
|
||||||
# during linking
|
# during linking
|
||||||
stdenv.lib.optionalString stdenv.isDarwin ''
|
stdenv.lib.optionalString stdenv.isDarwin ''
|
||||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
||||||
|
# not enough room in the object files for the full path to libiconv :(
|
||||||
|
for exe in $(find . -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 -change /usr/local/lib/gcc/6/libgcc_s.1.dylib ${gcc.cc.lib}/lib/libgcc_s.1.dylib $exe
|
||||||
|
done
|
||||||
'' +
|
'' +
|
||||||
|
|
||||||
# Some scripts used during the build need to have their shebangs patched
|
# Some scripts used during the build need to have their shebangs patched
|
||||||
|
@ -122,7 +128,7 @@ stdenv.mkDerivation rec {
|
||||||
for exe in $(find "$out" -type f -executable); do
|
for exe in $(find "$out" -type f -executable); do
|
||||||
isScript $exe && continue
|
isScript $exe && continue
|
||||||
ln -fs ${libiconv}/lib/libiconv.dylib $(dirname $exe)/libiconv.dylib
|
ln -fs ${libiconv}/lib/libiconv.dylib $(dirname $exe)/libiconv.dylib
|
||||||
install_name_tool -change /usr/lib/libiconv.2.dylib @executable_path/libiconv.dylib $exe
|
install_name_tool -change /usr/lib/libiconv.2.dylib @executable_path/libiconv.dylib -change /usr/local/lib/gcc/6/libgcc_s.1.dylib ${gcc.cc.lib}/lib/libgcc_s.1.dylib $exe
|
||||||
done
|
done
|
||||||
|
|
||||||
for file in $(find "$out" -name setup-config); do
|
for file in $(find "$out" -name setup-config); do
|
||||||
|
|
Loading…
Reference in a new issue