diff options
author | Ludovic Courtès <ludo@gnu.org> | 2011-10-05 10:52:05 +0000 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2011-10-05 10:52:05 +0000 |
commit | ba677f861f3955fd4d64e888889fd4a5e6e54f1e (patch) | |
tree | fa902aa74cab0e723cb9f8ca74d6309d0541562c /pkgs/development/tools/analysis | |
parent | 1b87ef25db3c2486dfc8eba34a4e61afde220093 (diff) |
Valgrind: Fix Darwin builds.
svn path=/nixpkgs/trunk/; revision=29655
Diffstat (limited to 'pkgs/development/tools/analysis')
-rw-r--r-- | pkgs/development/tools/analysis/valgrind/default.nix | 40 |
1 files changed, 37 insertions, 3 deletions
diff --git a/pkgs/development/tools/analysis/valgrind/default.nix b/pkgs/development/tools/analysis/valgrind/default.nix index 6b35cbc4e68e8..9a63037e28463 100644 --- a/pkgs/development/tools/analysis/valgrind/default.nix +++ b/pkgs/development/tools/analysis/valgrind/default.nix @@ -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 @@ stdenv.mkDerivation rec { 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 @@ stdenv.mkDerivation rec { 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 {})) |