Author: ludo
Date: Wed Oct  5 10:52:05 2011
New Revision: 29655
URL: https://ssl.nixos.org/websvn/nix/?rev=29655&sc=1

Log:
Valgrind: Fix Darwin builds.

Modified:
   nixpkgs/trunk/pkgs/development/tools/analysis/valgrind/default.nix

Modified: nixpkgs/trunk/pkgs/development/tools/analysis/valgrind/default.nix
==============================================================================
--- nixpkgs/trunk/pkgs/development/tools/analysis/valgrind/default.nix  Wed Oct 
 5 10:05:46 2011        (r29654)
+++ nixpkgs/trunk/pkgs/development/tools/analysis/valgrind/default.nix  Wed Oct 
 5 10:52:05 2011        (r29655)
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, perl, gdb, autoconf, automake }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (rec {
   name = "valgrind-3.6.1";
 
   src = fetchurl {
@@ -14,7 +14,9 @@
   buildInputs = stdenv.lib.optional (!stdenv.isDarwin) gdb;
 
   configureFlags =
-    if stdenv.system == "x86_64-linux" then ["--enable-only64bit"] else [];
+    if (stdenv.system == "x86_64-linux" || stdenv.system == "x86_64-darwin")
+    then [ "--enable-only64bit" ]
+    else [];
 
   postInstall = ''
     for i in $out/lib/valgrind/*.supp; do
@@ -40,7 +42,39 @@
     license = "GPLv2+";
 
     maintainers = [ stdenv.lib.maintainers.eelco ];
-    
+
     platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
   };
 }
+
+//
+
+(if stdenv.isDarwin
+ then {
+   patchPhase =
+     # Apple's GCC doesn't recognize `-arch' (as of version 4.2.1, build 5666).
+     '' echo "getting rid of the \`-arch' GCC option..."
+        find -name Makefile\* -exec \
+          sed -i {} -e's/DARWIN\(.*\)-arch [^ ]\+/DARWIN\1/g' \;
+
+        sed -i coregrind/link_tool_exe_darwin.in \
+            -e 's/^my \$archstr = .*/my $archstr = "x86_64";/g'
+     '';
+
+   preConfigure =
+     # Shamelessly drag in MIG.
+     '' mkdir -p "$TMPDIR/impure-deps/bin"
+
+        # MIG assumes the standard Darwin core utilities (e.g., `rm -d'), so
+        # let it see the impure directories.
+        cat > "$TMPDIR/impure-deps/bin/mig" <<EOF
+#!/bin/sh
+export PATH="/usr/bin:/bin:\$PATH"
+exec /usr/bin/mig "\$@"
+EOF
+        chmod +x "$TMPDIR/impure-deps/bin/mig"
+
+        export PATH="$TMPDIR/impure-deps/bin:$PATH"
+     '';
+ }
+ else {}))
_______________________________________________
nix-commits mailing list
[email protected]
http://lists.science.uu.nl/mailman/listinfo/nix-commits

Reply via email to