diff --git a/pkgs/applications/networking/sync/unison/default.nix b/pkgs/applications/networking/sync/unison/default.nix index e3b042aa810e..b6906c86afe2 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 8e9fb4d9de49..165e3bace906 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 f0062f8191ed..d3fe5a0569f9 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 155523ebe560..44fe2d139d8b 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 475a1d46d589..cc40ca9aac54 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 76928d104481..92e3d00e02d0 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 75b15da3efd0..00eaac6b1da8 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 895d2585b674..e53a3c297ff1 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 6cb663d7f127..840c60545524 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 4ded6e4edd8b..8edbbd1125a4 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 b778743147e6..7d42825206e2 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 adb9a22f4810..7adeb11c8bc1 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 c7b1bb2bff0a..a1fe9f82f143 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 9122335b34ac..536d30992bbd 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 c10d0e63a97a..c79e8468b23d 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 41fdaacde448..09d04042f1cf 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 cc95a6cff16b..da45b39cee1e 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 32daf5633f79..c5926ff2e477 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 fdbe6cf1bce6..b576b68773c8 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 a7ec522b3d66..a2fc597eaac7 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 f5fec3d8620c..3fb5ef8ef2df 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 223a38da54e7..9e8ee74acb17 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 6ac140951037..d7d4f1a43d49 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 d48598afd0d3..c2eec4a2e4b6 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 41b17777edcb..795826cf6bf3 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 03f14d6d57b2..c454204f8977 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 2cfdf30a171c..749de01deff6 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 000000000000..0fc2002068ef --- /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 8b6599e6bc03..3105e76f8177 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 cb322e82f398..1db426669bb9 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 6124f927aead..78473fed050b 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