From b89f310c7a3347359e66a61a7366db1b70a8b2c3 Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Wed, 28 Jul 2010 13:03:11 +0000 Subject: [PATCH] pkgs/development/libraries/crypto++: fixed build impurity * Don't build with "-march=native", because the generated binaries won't work reliably on systems with a different CPU. Instead, "--march=i686" is used on x86, and "--march=nocona" an x86_64. Otherwise, "--march" remains unset. * Compile with -O3 instead of -O2. This code is performance-critical. * Don't build with '-g'. svn path=/nixpkgs/trunk/; revision=22785 --- pkgs/development/libraries/crypto++/default.nix | 11 +++++++++++ pkgs/top-level/all-packages.nix | 1 - 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/crypto++/default.nix b/pkgs/development/libraries/crypto++/default.nix index f1c5db1caf10..a609e43b775e 100644 --- a/pkgs/development/libraries/crypto++/default.nix +++ b/pkgs/development/libraries/crypto++/default.nix @@ -24,6 +24,17 @@ stdenv.mkDerivation rec { sourceRoot="$PWD/${name}" ''; + cxxflags = if stdenv.isi686 then "-march=i686" else + if stdenv.isx86_64 then "-march=nocona" else + ""; + + configurePhase = '' + sed -i GNUmakefile \ + -e 's|-march=native|${cxxflags}|g' \ + -e 's|-mtune=native||g' \ + -e '/^CXXFLAGS =/s|-g -O2|-O3|' + ''; + # Deal with one of the crappiest build system around there. buildPhase = '' # These guys forgot a file or something. diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 342b38b2aa8e..1b3a12ffedc5 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3761,7 +3761,6 @@ let }; cryptopp = import ../development/libraries/crypto++ { - # SIDE-EFFECT WARNING: crypto++-5.6.0 is compiled with "-O2 -march=native -mtune=native". inherit fetchurl stdenv unzip libtool; };