diff --git a/pkgs/build-support/cc-wrapper/cc-wrapper.sh b/pkgs/build-support/cc-wrapper/cc-wrapper.sh index 41567fde2694..3b6f2acfee8b 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 ae46b40ac631..4b3ba386917c 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 788d488659af..940af8c44e91 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 78f4a248c5fd..9d7608b93281 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 e73e39692533..6f82fceae529 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 1841c3a06931..24d8ccec61a6 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 bd90d580d3f5..291ef5a5079f 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 0e3434be0175..e58972e5c8a6 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 4d99eaaeff66..a1b1f549ee4a 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 c8ea45a39dbe..f4c92ac701f4 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