summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/applications/networking/sync/unison/default.nix2
-rw-r--r--pkgs/build-support/clang-wrapper/default.nix2
-rw-r--r--pkgs/build-support/gcc-wrapper/default.nix2
-rw-r--r--pkgs/development/compilers/ocaml/3.12.1.nix4
-rw-r--r--pkgs/development/compilers/ocaml/cvs.nix4
-rw-r--r--pkgs/development/interpreters/perl/5.10/default.nix2
-rw-r--r--pkgs/development/interpreters/perl/5.14/default.nix2
-rw-r--r--pkgs/development/libraries/freetype/default.nix2
-rw-r--r--pkgs/development/libraries/glibc/2.13/common.nix2
-rw-r--r--pkgs/development/libraries/glibc/2.14/common.nix2
-rw-r--r--pkgs/development/libraries/glibc/2.9/default.nix2
-rw-r--r--pkgs/development/libraries/glibc/2.9/headers.nix2
-rw-r--r--pkgs/development/libraries/glibc/2.9/locales.nix2
-rw-r--r--pkgs/development/libraries/libxcrypt/default.nix2
-rw-r--r--pkgs/lib/platforms.nix2
-rw-r--r--pkgs/lib/systems.nix1
-rw-r--r--pkgs/os-specific/linux/kbd/default.nix2
-rw-r--r--pkgs/os-specific/linux/kernel-headers/2.4.nix2
-rw-r--r--pkgs/os-specific/linux/kernel-headers/2.6.28.nix2
-rw-r--r--pkgs/os-specific/linux/kernel-headers/2.6.32.nix2
-rw-r--r--pkgs/os-specific/linux/kernel-headers/default.nix2
-rw-r--r--pkgs/os-specific/linux/kernel/generic.nix4
-rw-r--r--pkgs/os-specific/linux/pam/default.nix4
-rw-r--r--pkgs/os-specific/linux/pam_unix2/default.nix2
-rw-r--r--pkgs/os-specific/linux/udev/173.nix2
-rw-r--r--pkgs/stdenv/default.nix1
-rw-r--r--pkgs/stdenv/generic/default.nix4
-rw-r--r--pkgs/stdenv/linux/bootstrap/armv7l/default.nix3
-rw-r--r--pkgs/stdenv/linux/default.nix1
-rw-r--r--pkgs/tools/archivers/gnutar/default.nix9
-rw-r--r--pkgs/top-level/all-packages.nix4
31 files changed, 46 insertions, 33 deletions
diff --git a/pkgs/applications/networking/sync/unison/default.nix b/pkgs/applications/networking/sync/unison/default.nix
index e3b042aa810..b6906c86afe 100644
--- a/pkgs/applications/networking/sync/unison/default.nix
+++ b/pkgs/applications/networking/sync/unison/default.nix
@@ -2,7 +2,7 @@
 , enableX11 ? true}:
 
 let
-  nativeCode = if stdenv.system == "armv5tel-linux" then false else true;
+  nativeCode = if stdenv.isArm then false else true;
 in
 stdenv.mkDerivation (rec {
 
diff --git a/pkgs/build-support/clang-wrapper/default.nix b/pkgs/build-support/clang-wrapper/default.nix
index 8e9fb4d9de4..165e3bace90 100644
--- a/pkgs/build-support/clang-wrapper/default.nix
+++ b/pkgs/build-support/clang-wrapper/default.nix
@@ -76,7 +76,7 @@ stdenv.mkDerivation {
     if !nativeLibc then
       (if stdenv.system == "i686-linux" then "ld-linux.so.2" else
        if stdenv.system == "x86_64-linux" then "ld-linux-x86-64.so.2" else
-       if stdenv.system == "armv5tel-linux" then "ld-linux.so.3" else
+       if stdenv.isArm then "ld-linux.so.3" else
        if stdenv.system == "powerpc-linux" then "ld.so.1" else
        if stdenv.system == "mips64el-linux" then "ld.so.1" else
        abort "don't know the name of the dynamic linker for this platform")
diff --git a/pkgs/build-support/gcc-wrapper/default.nix b/pkgs/build-support/gcc-wrapper/default.nix
index f0062f8191e..d3fe5a0569f 100644
--- a/pkgs/build-support/gcc-wrapper/default.nix
+++ b/pkgs/build-support/gcc-wrapper/default.nix
@@ -84,7 +84,7 @@ stdenv.mkDerivation {
     if !nativeLibc then
       (if stdenv.system == "i686-linux" then "ld-linux.so.2" else
        if stdenv.system == "x86_64-linux" then "ld-linux-x86-64.so.2" else
-       if stdenv.system == "armv5tel-linux" then "ld-linux.so.3" else
+       if stdenv.isArm then "ld-linux.so.3" else
        if stdenv.system == "powerpc-linux" then "ld.so.1" else
        if stdenv.system == "mips64el-linux" then "ld.so.1" else
        abort "don't know the name of the dynamic linker for this platform")
diff --git a/pkgs/development/compilers/ocaml/3.12.1.nix b/pkgs/development/compilers/ocaml/3.12.1.nix
index 155523ebe56..44fe2d139d8 100644
--- a/pkgs/development/compilers/ocaml/3.12.1.nix
+++ b/pkgs/development/compilers/ocaml/3.12.1.nix
@@ -1,8 +1,8 @@
 { stdenv, fetchurl, ncurses, x11 }:
 
 let
-   useX11 = stdenv.system != "armv5tel-linux";
-   useNativeCompilers = stdenv.system != "armv5tel-linux";
+   useX11 = !stdenv.isArm;
+   useNativeCompilers = !stdenv.isArm;
    inherit (stdenv.lib) optionals optionalString;
 in
 
diff --git a/pkgs/development/compilers/ocaml/cvs.nix b/pkgs/development/compilers/ocaml/cvs.nix
index 475a1d46d58..cc40ca9aac5 100644
--- a/pkgs/development/compilers/ocaml/cvs.nix
+++ b/pkgs/development/compilers/ocaml/cvs.nix
@@ -14,9 +14,9 @@ stdenv.mkDerivation (rec {
   prefixKey = "-prefix ";
   configureFlags = ["-no-tk"];
   buildFlags = "world" +
-    (if (stdenv.system != "armv5tel-linux") then "bootstrap world.opt" else "");
+    (if !stdenv.isArm then "bootstrap world.opt" else "");
   buildInputs = [ncurses];
-  installTargets = "install" + (if (stdenv.system != "armv5tel-linux") then "installopt" else ""); 
+  installTargets = "install" + (if !stdenv.isArm then "installopt" else "");
   patchPhase = ''
     CAT=$(type -tp cat)
     sed -e "s@/bin/cat@$CAT@" -i config/auto-aux/sharpbang
diff --git a/pkgs/development/interpreters/perl/5.10/default.nix b/pkgs/development/interpreters/perl/5.10/default.nix
index 76928d10448..92e3d00e02d 100644
--- a/pkgs/development/interpreters/perl/5.10/default.nix
+++ b/pkgs/development/interpreters/perl/5.10/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
     ''
       configureFlags="$configureFlags -Dprefix=$out -Dman1dir=$out/share/man/man1 -Dman3dir=$out/share/man/man3"
 
-      ${stdenv.lib.optionalString (stdenv.system == "armv5tel-linux") ''
+      ${stdenv.lib.optionalString stdenv.isArm ''
         configureFlagsArray=(-Dldflags="-lm -lrt")
       ''}
     '';
diff --git a/pkgs/development/interpreters/perl/5.14/default.nix b/pkgs/development/interpreters/perl/5.14/default.nix
index 75b15da3efd..00eaac6b1da 100644
--- a/pkgs/development/interpreters/perl/5.14/default.nix
+++ b/pkgs/development/interpreters/perl/5.14/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
     ''
       configureFlags="$configureFlags -Dprefix=$out -Dman1dir=$out/share/man/man1 -Dman3dir=$out/share/man/man3"
 
-      ${stdenv.lib.optionalString (stdenv.system == "armv5tel-linux") ''
+      ${stdenv.lib.optionalString stdenv.isArm ''
         configureFlagsArray=(-Dldflags="-lm -lrt")
       ''}
     '';
diff --git a/pkgs/development/libraries/freetype/default.nix b/pkgs/development/libraries/freetype/default.nix
index 895d2585b67..e53a3c297ff 100644
--- a/pkgs/development/libraries/freetype/default.nix
+++ b/pkgs/development/libraries/freetype/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation (rec {
     "-DFT_CONFIG_OPTION_SUBPIXEL_RENDERING=1";
 
   # The asm for armel is written with the 'asm' keyword.
-  CFLAGS = stdenv.lib.optionalString (stdenv.system == "armv5tel-linux") "-std=gnu99";
+  CFLAGS = stdenv.lib.optionalString stdenv.isArm "-std=gnu99";
 
   meta = {
     description = "A font rendering engine";
diff --git a/pkgs/development/libraries/glibc/2.13/common.nix b/pkgs/development/libraries/glibc/2.13/common.nix
index 6cb663d7f12..840c6054552 100644
--- a/pkgs/development/libraries/glibc/2.13/common.nix
+++ b/pkgs/development/libraries/glibc/2.13/common.nix
@@ -105,7 +105,7 @@ stdenv.mkDerivation ({
     (if cross.float == "soft" then "--without-fp" else "--with-fp")
     "--enable-kernel=2.6.0"
     "--with-__thread"
-  ] ++ stdenv.lib.optionals (stdenv.system == "armv5tel-linux") [
+  ] ++ stdenv.lib.optionals stdenv.isArm [
     "--host=arm-linux-gnueabi"
     "--build=arm-linux-gnueabi"
     "--without-fp"
diff --git a/pkgs/development/libraries/glibc/2.14/common.nix b/pkgs/development/libraries/glibc/2.14/common.nix
index 4ded6e4edd8..8edbbd1125a 100644
--- a/pkgs/development/libraries/glibc/2.14/common.nix
+++ b/pkgs/development/libraries/glibc/2.14/common.nix
@@ -105,7 +105,7 @@ stdenv.mkDerivation ({
     (if cross.float == "soft" then "--without-fp" else "--with-fp")
     "--enable-kernel=2.6.0"
     "--with-__thread"
-  ] ++ stdenv.lib.optionals (stdenv.system == "armv5tel-linux") [
+  ] ++ stdenv.lib.optionals stdenv.isArm [
     "--host=arm-linux-gnueabi"
     "--build=arm-linux-gnueabi"
     "--without-fp"
diff --git a/pkgs/development/libraries/glibc/2.9/default.nix b/pkgs/development/libraries/glibc/2.9/default.nix
index b778743147e..7d42825206e 100644
--- a/pkgs/development/libraries/glibc/2.9/default.nix
+++ b/pkgs/development/libraries/glibc/2.9/default.nix
@@ -72,7 +72,7 @@ stdenv.mkDerivation rec {
     "--enable-kernel=2.6.0"
     "--without-fp"
     "--with-__thread"
-  ] ++ (if (stdenv.system == "armv5tel-linux") then [
+  ] ++ (if stdenv.isArm then [
     "--host=arm-linux-gnueabi"
     "--build=arm-linux-gnueabi"
     "--without-fp"
diff --git a/pkgs/development/libraries/glibc/2.9/headers.nix b/pkgs/development/libraries/glibc/2.9/headers.nix
index adb9a22f481..7adeb11c8bc 100644
--- a/pkgs/development/libraries/glibc/2.9/headers.nix
+++ b/pkgs/development/libraries/glibc/2.9/headers.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     "--disable-sanity-checks"
     "--enable-hacker-mode"
     (if profilingLibraries then "--enable-profile" else "--disable-profile")
-  ] ++ (if (stdenv.system == "armv5tel-linux") then [
+  ] ++ (if stdenv.isArm then [
     "--host=arm-linux-gnueabi"
     "--build=arm-linux-gnueabi"
     "--without-fp"
diff --git a/pkgs/development/libraries/glibc/2.9/locales.nix b/pkgs/development/libraries/glibc/2.9/locales.nix
index c7b1bb2bff0..a1fe9f82f14 100644
--- a/pkgs/development/libraries/glibc/2.9/locales.nix
+++ b/pkgs/development/libraries/glibc/2.9/locales.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     "--enable-add-ons"
     "--without-headers"
     "--disable-profile"
-  ] ++ (if (stdenv.system == "armv5tel-linux") then [
+  ] ++ (if stdenv.isArm then [
     "--host=arm-linux-gnueabi"
     "--build=arm-linux-gnueabi"
     "--without-fp"
diff --git a/pkgs/development/libraries/libxcrypt/default.nix b/pkgs/development/libraries/libxcrypt/default.nix
index 9122335b34a..536d30992bb 100644
--- a/pkgs/development/libraries/libxcrypt/default.nix
+++ b/pkgs/development/libraries/libxcrypt/default.nix
@@ -1,7 +1,7 @@
 {stdenv, fetchurl}:
 
 # I could not build it in armv5tel-linux or the fuloon2f
-assert stdenv.system != "armv5tel-linux";
+assert !stdenv.isArm;
 assert stdenv.system != "mips64el-linux";
    
 stdenv.mkDerivation {
diff --git a/pkgs/lib/platforms.nix b/pkgs/lib/platforms.nix
index c10d0e63a97..c79e8468b23 100644
--- a/pkgs/lib/platforms.nix
+++ b/pkgs/lib/platforms.nix
@@ -3,7 +3,7 @@ let lists = import ./lists.nix; in
 rec {
   gnu = linux; /* ++ hurd ++ kfreebsd ++ ... */
   linux = ["i686-linux" "x86_64-linux" "powerpc-linux" "armv5tel-linux"
-    "mips64el-linux"];
+    "armv7l-linux" "mips64el-linux"];
   darwin = ["i686-darwin" "powerpc-darwin" "x86_64-darwin"];
   freebsd = ["i686-freebsd" "x86_64-freebsd" "powerpc-freebsd"];
   openbsd = ["i686-openbsd" "x86_64-openbsd"];
diff --git a/pkgs/lib/systems.nix b/pkgs/lib/systems.nix
index 41fdaacde44..09d04042f1c 100644
--- a/pkgs/lib/systems.nix
+++ b/pkgs/lib/systems.nix
@@ -30,6 +30,7 @@ rec {
     setTypes "cpu-type" {
       arm =      { bits = 32; significantByte = littleEndian; };
       armv5tel = { bits = 32; significantByte = littleEndian; };
+      armv7l   = { bits = 32; significantByte = littleEndian; };
       i686 =     { bits = 32; significantByte = littleEndian; };
       powerpc =  { bits = 32; significantByte = bigEndian; };
       x86_64 =   { bits = 64; significantByte = littleEndian; };
diff --git a/pkgs/os-specific/linux/kbd/default.nix b/pkgs/os-specific/linux/kbd/default.nix
index cc95a6cff16..da45b39cee1 100644
--- a/pkgs/os-specific/linux/kbd/default.nix
+++ b/pkgs/os-specific/linux/kbd/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   # We get a warning in armv5tel-linux and the fuloong2f,
   # so we disable -Werror in it
-  patchPhase = if (stdenv.system == "armv5tel-linux" ||
+  patchPhase = if (stdenv.isArm ||
     stdenv.system == "mips64el-linux")
     then ''
       sed -i s/-Werror// src/Makefile.am
diff --git a/pkgs/os-specific/linux/kernel-headers/2.4.nix b/pkgs/os-specific/linux/kernel-headers/2.4.nix
index 32daf5633f7..c5926ff2e47 100644
--- a/pkgs/os-specific/linux/kernel-headers/2.4.nix
+++ b/pkgs/os-specific/linux/kernel-headers/2.4.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation {
     if stdenv.system == "i686-linux" then "i386" else
     if stdenv.system == "x86_64-linux" then "x86_64" else
     if stdenv.system == "powerpc-linux" then "powerpc" else
-    if stdenv.system == "armv5tel-linux" then "arm" else
+    if stdenv.isArm then "arm" else
     abort "don't know what the kernel include directory is called for this platform";
 
   buildInputs = [perl];
diff --git a/pkgs/os-specific/linux/kernel-headers/2.6.28.nix b/pkgs/os-specific/linux/kernel-headers/2.6.28.nix
index fdbe6cf1bce..b576b68773c 100644
--- a/pkgs/os-specific/linux/kernel-headers/2.6.28.nix
+++ b/pkgs/os-specific/linux/kernel-headers/2.6.28.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
     if stdenv.system == "i686-linux" then "i386" else
     if stdenv.system == "x86_64-linux" then "x86_64" else
     if stdenv.system == "powerpc-linux" then "powerpc" else
-    if stdenv.system == "armv5tel-linux" then "arm" else
+    if stdenv.isArm then "arm" else
     if stdenv.system == "mips64el-linux" then "mips" else
     abort "don't know what the kernel include directory is called for this platform";
 
diff --git a/pkgs/os-specific/linux/kernel-headers/2.6.32.nix b/pkgs/os-specific/linux/kernel-headers/2.6.32.nix
index a7ec522b3d6..a2fc597eaac 100644
--- a/pkgs/os-specific/linux/kernel-headers/2.6.32.nix
+++ b/pkgs/os-specific/linux/kernel-headers/2.6.32.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation {
     if stdenv.system == "i686-linux" then "i386" else
     if stdenv.system == "x86_64-linux" then "x86_64" else
     if stdenv.system == "powerpc-linux" then "powerpc" else
-    if stdenv.system == "armv5tel-linux" then "arm" else
+    if stdenv.isArm then "arm" else
     if stdenv.platform ? kernelArch then stdenv.platform.kernelArch else
     abort "don't know what the kernel include directory is called for this platform";
 
diff --git a/pkgs/os-specific/linux/kernel-headers/default.nix b/pkgs/os-specific/linux/kernel-headers/default.nix
index f5fec3d8620..3fb5ef8ef2d 100644
--- a/pkgs/os-specific/linux/kernel-headers/default.nix
+++ b/pkgs/os-specific/linux/kernel-headers/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation {
     if stdenv.system == "i686-linux" then "i386" else
     if stdenv.system == "x86_64-linux" then "x86_64" else
     if stdenv.system == "powerpc-linux" then "powerpc" else
-    if stdenv.system == "armv5tel-linux" then "arm" else
+    if stdenv.isArm then "arm" else
     if stdenv.platform ? kernelArch then stdenv.platform.kernelArch else
     abort "don't know what the kernel include directory is called for this platform";
 
diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix
index 223a38da54e..9e8ee74acb1 100644
--- a/pkgs/os-specific/linux/kernel/generic.nix
+++ b/pkgs/os-specific/linux/kernel/generic.nix
@@ -46,7 +46,7 @@
 }:
 
 assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux"
-  || stdenv.system == "armv5tel-linux" || stdenv.system == "mips64el-linux";
+  || stdenv.isArm || stdenv.system == "mips64el-linux";
 
 assert stdenv.platform.name == "sheevaplug" -> stdenv.platform.uboot != null;
 
@@ -101,7 +101,7 @@ stdenv.mkDerivation {
     if userModeLinux then "um" else
     if stdenv.system == "i686-linux" then "i386" else
     if stdenv.system == "x86_64-linux" then "x86_64" else
-    if stdenv.system == "armv5tel-linux" then "arm" else
+    if stdenv.isArm then "arm" else
     if stdenv.system == "mips64el-linux" then "mips" else
     abort "Platform ${stdenv.system} is not supported.";
 
diff --git a/pkgs/os-specific/linux/pam/default.nix b/pkgs/os-specific/linux/pam/default.nix
index 6ac14095103..d7d4f1a43d4 100644
--- a/pkgs/os-specific/linux/pam/default.nix
+++ b/pkgs/os-specific/linux/pam/default.nix
@@ -11,11 +11,11 @@ stdenv.mkDerivation rec {
   buildNativeInputs = [ flex ];
   buildInputs = [ cracklib ]
     ++ stdenv.lib.optional
-      (stdenv.system != "armv5tel-linux" && stdenv.system != "mips64el-linux")
+      (stdenv.isArm && stdenv.system != "mips64el-linux")
       libxcrypt;
 
   crossAttrs = {
-    # Skip libxcrypt cross-building, as it fails for mips and armv5tel
+    # Skip libxcrypt cross-building, as it fails for mips and arm
     propagatedBuildInputs = [ flex.hostDrv cracklib.hostDrv ];
     preConfigure = preConfigure + ''
       ar x ${flex.hostDrv}/lib/libfl.a
diff --git a/pkgs/os-specific/linux/pam_unix2/default.nix b/pkgs/os-specific/linux/pam_unix2/default.nix
index d48598afd0d..c2eec4a2e4b 100644
--- a/pkgs/os-specific/linux/pam_unix2/default.nix
+++ b/pkgs/os-specific/linux/pam_unix2/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     sha256 = "067xnyd3q8ik73glxwyx1lydk4bgl78lzq44mnqqp4jrpnpd04ml";
   };
 
-  buildInputs = [ pam ] ++ stdenv.lib.optional (stdenv.system != "armv5tel-linux") libxcrypt;
+  buildInputs = [ pam ] ++ stdenv.lib.optional (!stdenv.isArm) libxcrypt;
 
   meta = {
     homepage = ftp://ftp.suse.com/pub/people/kukuk/pam/pam_unix2;
diff --git a/pkgs/os-specific/linux/udev/173.nix b/pkgs/os-specific/linux/udev/173.nix
index 41b17777edc..795826cf6bf 100644
--- a/pkgs/os-specific/linux/udev/173.nix
+++ b/pkgs/os-specific/linux/udev/173.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
       url = https://bugs.archlinux.org/task/25356?getfile=7281;
       sha256 = "01xib1pfdbwacgx8dqxgrf67a0mwkpm4kxy9f9v3df93v0m4pmbm";
     })] ++
-    stdenv.lib.optional (stdenv.system == "armv5tel-linux") ./pre-accept4-kernel.patch;
+    stdenv.lib.optional stdenv.isArm ./pre-accept4-kernel.patch;
 
   meta = {
     homepage = http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html;
diff --git a/pkgs/stdenv/default.nix b/pkgs/stdenv/default.nix
index 03f14d6d57b..c454204f897 100644
--- a/pkgs/stdenv/default.nix
+++ b/pkgs/stdenv/default.nix
@@ -55,6 +55,7 @@ rec {
     if stdenvType == "i686-linux" then stdenvLinux else
     if stdenvType == "x86_64-linux" then stdenvLinux else
     if stdenvType == "armv5tel-linux" then stdenvLinux else
+    if stdenvType == "armv7l-linux" then stdenvLinux else
     if stdenvType == "mips64el-linux" then stdenvLinux else
     if stdenvType == "powerpc-linux" then /* stdenvLinux */ stdenvNative else
     if stdenvType == "i686-mingw" then stdenvMinGW else
diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix
index 2cfdf30a171..749de01deff 100644
--- a/pkgs/stdenv/generic/default.nix
+++ b/pkgs/stdenv/generic/default.nix
@@ -93,6 +93,7 @@ let
                || result.system == "x86_64-linux"
                || result.system == "powerpc-linux"
                || result.system == "armv5tel-linux"
+               || result.system == "armv7l-linux"
                || result.system == "mips64el-linux";
         isGNU = result.system == "i686-gnu";      # GNU/Hurd
         isSunOS = result.system == "i686-solaris"
@@ -120,7 +121,8 @@ let
                 || result.system == "x86_64-darwin";
         isMips = result.system == "mips-linux"
                 || result.system == "mips64el-linux";
-        isArm = result.system == "armv5tel-linux";
+        isArm = result.system == "armv5tel-linux"
+             || result.system == "armv7l-linux";
 
         # Utility function: allow stdenv to be easily regenerated with
         # a different setup script.  (See all-packages.nix for an
diff --git a/pkgs/stdenv/linux/bootstrap/armv7l/default.nix b/pkgs/stdenv/linux/bootstrap/armv7l/default.nix
new file mode 100644
index 00000000000..0fc2002068e
--- /dev/null
+++ b/pkgs/stdenv/linux/bootstrap/armv7l/default.nix
@@ -0,0 +1,3 @@
+# rely on ARM backward compatibility to build armv7l binaries with the
+# bootstrap tools of armv5tel.
+import ../armv5tel
\ No newline at end of file
diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix
index 8b6599e6bc0..3105e76f817 100644
--- a/pkgs/stdenv/linux/default.nix
+++ b/pkgs/stdenv/linux/default.nix
@@ -16,6 +16,7 @@ rec {
     else if system == "x86_64-linux" then import ./bootstrap/x86_64
     else if system == "powerpc-linux" then import ./bootstrap/powerpc
     else if system == "armv5tel-linux" then import ./bootstrap/armv5tel
+    else if system == "armv7l-linux" then import ./bootstrap/armv5tel
     else if system == "mips64el-linux" then import ./bootstrap/loongson2f
     else abort "unsupported platform for the pure Linux stdenv";
 
diff --git a/pkgs/tools/archivers/gnutar/default.nix b/pkgs/tools/archivers/gnutar/default.nix
index cb322e82f39..1db426669bb 100644
--- a/pkgs/tools/archivers/gnutar/default.nix
+++ b/pkgs/tools/archivers/gnutar/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (rec {
   name = "gnutar-1.26";
 
   src = fetchurl {
@@ -32,4 +32,9 @@ stdenv.mkDerivation rec {
     maintainers = [ stdenv.lib.maintainers.ludo ];
     platforms = stdenv.lib.platforms.all;
   };
-}
\ No newline at end of file
+}
+  # May have some issues with root compilation because the bootstrap tool
+  # cannot be used as a login shell for now.
+// stdenv.lib.optionalAttrs (stdenv.system == "armv7l-linux") {
+  FORCE_UNSAFE_CONFIGURE = 1;
+})
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 6124f927aea..78473fed050 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1883,7 +1883,7 @@ let
       gettext which noSysDirs;
     # bootstrapping a profiled compiler does not work in the sheevaplug:
     # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43944
-    profiledCompiler = if stdenv.system == "armv5tel-linux" then false else true;
+    profiledCompiler = if stdenv.isArm then false else true;
 
     # When building `gcc.hostDrv' (a "Canadian cross", with host == target
     # and host != build), `cross' must be null but the cross-libc must still
@@ -1912,7 +1912,7 @@ let
 
     # bootstrapping a profiled compiler does not work in the sheevaplug:
     # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43944
-    profiledCompiler = if stdenv.system == "armv5tel-linux" then false else true;
+    profiledCompiler = if stdenv.isArm then false else true;
 
     # When building `gcc.hostDrv' (a "Canadian cross", with host == target
     # and host != build), `cross' must be null but the cross-libc must still