From b579f4fd5c7355f22fde853e90fa160f89514b2a Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Fri, 25 Mar 2011 12:55:37 +0000 Subject: [PATCH] ghc-7.0.2: fix build on Darwin There were two problems preventing GHC 7.0.2 from being built on MacOS. For one, the 'configure' script automatically added the flag -isysroot /Developer/SDKs/MacOSX10.5.sdk to the command-line that's being passed to GCC. This setting doesn't work with our GCC, and resulted in build errors because standard headers like could no longer be found. Secondly, the build depends on install_name_tool, which has been added as a buildInput. These changes trigger a re-build on all platforms, not just on Darwin. I realize that this could have been avoided by adding some cruft. However, I didn't want to add cruft, so there you are. svn path=/nixpkgs/trunk/; revision=26513 --- pkgs/development/compilers/ghc/7.0.2.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkgs/development/compilers/ghc/7.0.2.nix b/pkgs/development/compilers/ghc/7.0.2.nix index 6dc061cd8c1..8e7a2bc574d 100644 --- a/pkgs/development/compilers/ghc/7.0.2.nix +++ b/pkgs/development/compilers/ghc/7.0.2.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl, ghc, perl, gmp, ncurses}: +{stdenv, fetchurl, ghc, perl, gmp, ncurses, darwinInstallNameToolUtility}: stdenv.mkDerivation rec { version = "7.0.2"; @@ -13,7 +13,8 @@ stdenv.mkDerivation rec { sha256 = "f0551f1af2f008a8a14a888b70c0557e00dd04f9ae309ac91897306cd04a6668"; }; - buildInputs = [ghc perl gmp ncurses]; + buildInputs = [ghc perl gmp ncurses] ++ + (if stdenv.isDarwin then [darwinInstallNameToolUtility] else []); buildMK = '' libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib" @@ -22,6 +23,7 @@ stdenv.mkDerivation rec { preConfigure = '' echo "${buildMK}" > mk/build.mk + sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure ''; configureFlags=[ @@ -39,7 +41,7 @@ stdenv.mkDerivation rec { stdenv.lib.maintainers.marcweber stdenv.lib.maintainers.andres ]; - platforms = stdenv.lib.platforms.linux; + platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin; }; }