summary refs log tree commit diff
diff options
context:
space:
mode:
authorNikolay Amiantov <ab@fmap.me>2016-03-15 19:35:07 +0300
committerNikolay Amiantov <ab@fmap.me>2016-03-24 20:16:17 +0300
commit0c6db0ca48612f18e5c2b744dfa385ba8eecc950 (patch)
treeb09a03993f3aabe6d2f6635e345eb3ee044f7f47
parent89693e71b9c89b348ef2173180c4965c0e7d8357 (diff)
downloadnixpkgs-0c6db0ca48612f18e5c2b744dfa385ba8eecc950.tar
nixpkgs-0c6db0ca48612f18e5c2b744dfa385ba8eecc950.tar.gz
nixpkgs-0c6db0ca48612f18e5c2b744dfa385ba8eecc950.tar.bz2
nixpkgs-0c6db0ca48612f18e5c2b744dfa385ba8eecc950.tar.lz
nixpkgs-0c6db0ca48612f18e5c2b744dfa385ba8eecc950.tar.xz
nixpkgs-0c6db0ca48612f18e5c2b744dfa385ba8eecc950.tar.zst
nixpkgs-0c6db0ca48612f18e5c2b744dfa385ba8eecc950.zip
cc-wrapper: add option to skip flags for native optimizations
-rw-r--r--pkgs/build-support/cc-wrapper/cc-wrapper.sh14
-rw-r--r--pkgs/build-support/cc-wrapper/gnat-wrapper.sh14
-rw-r--r--pkgs/development/libraries/crypto++/default.nix1
-rw-r--r--pkgs/misc/emulators/higan/0001-change-flags.diff9
-rw-r--r--pkgs/stdenv/darwin/default.nix1
-rw-r--r--pkgs/stdenv/linux/default.nix1
-rw-r--r--pkgs/stdenv/native/default.nix1
-rw-r--r--pkgs/stdenv/nix/default.nix1
-rw-r--r--pkgs/tools/networking/pingtcp/default.nix5
-rw-r--r--pkgs/tools/security/crackxls/default.nix6
10 files changed, 32 insertions, 21 deletions
diff --git a/pkgs/build-support/cc-wrapper/cc-wrapper.sh b/pkgs/build-support/cc-wrapper/cc-wrapper.sh
index 41567fde269..3b6f2acfee8 100644
--- a/pkgs/build-support/cc-wrapper/cc-wrapper.sh
+++ b/pkgs/build-support/cc-wrapper/cc-wrapper.sh
@@ -91,6 +91,20 @@ if [ "$NIX_ENFORCE_PURITY" = 1 -a -n "$NIX_STORE" ]; then
     params=("${rest[@]}")
 fi
 
+
+# Clear march/mtune=native -- they bring impurity.
+if [ "$NIX_ENFORCE_NO_NATIVE" = 1 ]; then
+    rest=()
+    for i in "${params[@]}"; do
+        if [[ "$i" = -m*=native ]]; then
+            skip $i
+        else
+            rest=("${rest[@]}" "$i")
+        fi
+    done
+    params=("${rest[@]}")
+fi
+
 if [[ "$isCpp" = 1 ]]; then
     NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE ${NIX_CXXSTDLIB_COMPILE-@default_cxx_stdlib_compile@}"
     NIX_CFLAGS_LINK="$NIX_CFLAGS_LINK $NIX_CXXSTDLIB_LINK"
diff --git a/pkgs/build-support/cc-wrapper/gnat-wrapper.sh b/pkgs/build-support/cc-wrapper/gnat-wrapper.sh
index ae46b40ac63..4b3ba386917 100644
--- a/pkgs/build-support/cc-wrapper/gnat-wrapper.sh
+++ b/pkgs/build-support/cc-wrapper/gnat-wrapper.sh
@@ -70,6 +70,20 @@ if [ "$NIX_ENFORCE_PURITY" = 1 -a -n "$NIX_STORE" ]; then
 fi
 
 
+# Clear march/mtune=native -- they bring impurity.
+if [ "$NIX_ENFORCE_NO_NATIVE" = 1 ]; then
+    rest=()
+    for i in "${params[@]}"; do
+        if [[ "$i" = -m*=native ]]; then
+            skip $i
+        else
+            rest=("${rest[@]}" "$i")
+        fi
+    done
+    params=("${rest[@]}")
+fi
+
+
 # Add the flags for the GNAT compiler proper.
 extraAfter=($NIX_GNATFLAGS_COMPILE)
 extraBefore=()
diff --git a/pkgs/development/libraries/crypto++/default.nix b/pkgs/development/libraries/crypto++/default.nix
index 788d488659a..940af8c44e9 100644
--- a/pkgs/development/libraries/crypto++/default.nix
+++ b/pkgs/development/libraries/crypto++/default.nix
@@ -25,7 +25,6 @@ stdenv.mkDerivation rec {
     ''
       sed -i GNUmakefile \
         -e 's|-march=native|${marchflags} -fPIC|g' \
-        -e 's|-mtune=native||g' \
         -e '/^CXXFLAGS =/s|-g ||'
     '';
 
diff --git a/pkgs/misc/emulators/higan/0001-change-flags.diff b/pkgs/misc/emulators/higan/0001-change-flags.diff
index 78f4a248c5f..9d7608b9328 100644
--- a/pkgs/misc/emulators/higan/0001-change-flags.diff
+++ b/pkgs/misc/emulators/higan/0001-change-flags.diff
@@ -11,15 +11,6 @@ diff -rupN higan_v095-source.orig/GNUmakefile higan_v095-source/GNUmakefile
  objects := libco
  
  # profile-guided optimization mode
-@@ -43,7 +44,7 @@ ifeq ($(platform),windows)
- else ifeq ($(platform),macosx)
-   flags += -march=native
- else ifeq ($(platform),linux)
--  flags += -march=native -fopenmp
-+  flags += -fopenmp
-   link += -fopenmp
-   link += -Wl,-export-dynamic
-   link += -lX11 -lXext -ldl
 diff -rupN higan_v095-source.orig/icarus/GNUmakefile higan_v095-source/icarus/GNUmakefile
 --- higan_v095-source.orig/icarus/GNUmakefile	2015-11-04 10:28:26.186486119 +0100
 +++ higan_v095-source/icarus/GNUmakefile	2015-11-04 10:28:48.755059317 +0100
diff --git a/pkgs/stdenv/darwin/default.nix b/pkgs/stdenv/darwin/default.nix
index e73e3969253..6f82fceae52 100644
--- a/pkgs/stdenv/darwin/default.nix
+++ b/pkgs/stdenv/darwin/default.nix
@@ -26,6 +26,7 @@ in rec {
 
   commonPreHook = ''
     export NIX_ENFORCE_PURITY="''${NIX_ENFORCE_PURITY-1}"
+    export NIX_ENFORCE_NO_NATIVE="''${NIX_ENFORCE_NO_NATIVE-1}"
     export NIX_IGNORE_LD_THROUGH_GCC=1
     stripAllFlags=" " # the Darwin "strip" command doesn't know "-s"
     export MACOSX_DEPLOYMENT_TARGET=10.7
diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix
index 1841c3a0693..24d8ccec61a 100644
--- a/pkgs/stdenv/linux/default.nix
+++ b/pkgs/stdenv/linux/default.nix
@@ -23,6 +23,7 @@ rec {
   commonPreHook =
     ''
       export NIX_ENFORCE_PURITY="''${NIX_ENFORCE_PURITY-1}"
+      export NIX_ENFORCE_NO_NATIVE="''${NIX_ENFORCE_NO_NATIVE-1}"
       ${if system == "x86_64-linux" then "NIX_LIB64_IN_SELF_RPATH=1" else ""}
       ${if system == "mips64el-linux" then "NIX_LIB32_IN_SELF_RPATH=1" else ""}
     '';
diff --git a/pkgs/stdenv/native/default.nix b/pkgs/stdenv/native/default.nix
index bd90d580d3f..291ef5a5079 100644
--- a/pkgs/stdenv/native/default.nix
+++ b/pkgs/stdenv/native/default.nix
@@ -16,6 +16,7 @@ rec {
     # Disable purity tests; it's allowed (even needed) to link to
     # libraries outside the Nix store (like the C library).
     export NIX_ENFORCE_PURITY=
+    export NIX_ENFORCE_NO_NATIVE="''${NIX_ENFORCE_NO_NATIVE-1}"
   '';
 
   prehookFreeBSD = ''
diff --git a/pkgs/stdenv/nix/default.nix b/pkgs/stdenv/nix/default.nix
index 0e3434be017..e58972e5c8a 100644
--- a/pkgs/stdenv/nix/default.nix
+++ b/pkgs/stdenv/nix/default.nix
@@ -6,6 +6,7 @@ import ../generic rec {
   preHook =
     ''
       export NIX_ENFORCE_PURITY="''${NIX_ENFORCE_PURITY-1}"
+      export NIX_ENFORCE_NO_NATIVE="''${NIX_ENFORCE_NO_NATIVE-1}"
       export NIX_IGNORE_LD_THROUGH_GCC=1
     '';
 
diff --git a/pkgs/tools/networking/pingtcp/default.nix b/pkgs/tools/networking/pingtcp/default.nix
index 4d99eaaeff6..a1b1f549ee4 100644
--- a/pkgs/tools/networking/pingtcp/default.nix
+++ b/pkgs/tools/networking/pingtcp/default.nix
@@ -13,11 +13,6 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
-  postPatch = ''
-    substituteInPlace {.,pfcquirks}/CMakeLists.txt \
-      --replace "-march=native" ""
-  '';
-
   enableParallelBuilding = true;
 
   doCheck = false;
diff --git a/pkgs/tools/security/crackxls/default.nix b/pkgs/tools/security/crackxls/default.nix
index c8ea45a39db..f4c92ac701f 100644
--- a/pkgs/tools/security/crackxls/default.nix
+++ b/pkgs/tools/security/crackxls/default.nix
@@ -13,12 +13,6 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ pkgconfig autoconf automake openssl libgsf gmp ];
 
-  patchPhase = ''
-    substituteInPlace Makefile.in \
-      --replace '-march=native' "" \
-      --replace '-mtune=native' ""
-  '';
-
   installPhase =
   ''
     mkdir -p $out/bin