diff --git a/pkgs/development/interpreters/spidermonkey/17.0.nix b/pkgs/development/interpreters/spidermonkey/17.0.nix index fc4546bc09e2..74f0fe2b83a4 100644 --- a/pkgs/development/interpreters/spidermonkey/17.0.nix +++ b/pkgs/development/interpreters/spidermonkey/17.0.nix @@ -31,6 +31,10 @@ stdenv.mkDerivation rec { preCheck = '' rm jit-test/tests/sunspider/check-date-format-tofte.js # https://bugzil.la/600522 + # Test broken on ARM. Fedora disables it. + # https://lists.fedoraproject.org/pipermail/scm-commits/Week-of-Mon-20130617/1041155.html + echo -e '#!${stdenv.shell}\nexit 0' > config/find_vanilla_new_calls + paxmark m shell/js17 paxmark mr jsapi-tests/jsapi-tests ''; diff --git a/pkgs/os-specific/linux/kernel/linux-rpi-3.6.nix b/pkgs/os-specific/linux/kernel/linux-rpi.nix similarity index 61% rename from pkgs/os-specific/linux/kernel/linux-rpi-3.6.nix rename to pkgs/os-specific/linux/kernel/linux-rpi.nix index 6d28c376078d..67a51dc767df 100644 --- a/pkgs/os-specific/linux/kernel/linux-rpi-3.6.nix +++ b/pkgs/os-specific/linux/kernel/linux-rpi.nix @@ -2,15 +2,17 @@ let - rev = "7849605f5a"; + rev = "fe4a83540ec73dfc298f16f027277355470ea9a0"; in import ./generic.nix (args // rec { - version = "3.6.y-${rev}"; + version = "3.18.y-${rev}"; + + modDirVersion = "3.18.7-v7"; src = fetchurl { url = "https://api.github.com/repos/raspberrypi/linux/tarball/${rev}"; name = "linux-raspberrypi-${version}.tar.gz"; - sha256 = "1diwc5p6az6ipcldwmkq7hb5f15nvdgwzmypixc2vmzmc4ylarxl"; + sha256 = "05gq40f038hxjqd3sdb1914g2bzw533dyxy59sgdpybs8801x2vb"; }; features.iwlwifi = true; diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix index 6d9baed7f2dd..ea29c7f9e0c8 100644 --- a/pkgs/os-specific/linux/kernel/manual-config.nix +++ b/pkgs/os-specific/linux/kernel/manual-config.nix @@ -118,9 +118,12 @@ let # Some image types need special install targets (e.g. uImage is installed with make uinstall) installTargets = [ (if platform.kernelTarget == "uImage" then "uinstall" else "install") ]; - postInstall = optionalString installsFirmware '' + postInstall = (optionalString installsFirmware '' mkdir -p $out/lib/firmware - '' + (if isModular then '' + '') + (if (platform ? kernelDTB && platform.kernelDTB) then '' + make $makeFlags "''${makeFlagsArray[@]}" dtbs + cp $buildRoot/arch/$karch/boot/dts/*dtb $out + '' else "") + (if isModular then '' make modules_install $makeFlags "''${makeFlagsArray[@]}" \ $installFlags "''${installFlagsArray[@]}" unlink $out/lib/modules/${modDirVersion}/build @@ -222,6 +225,8 @@ stdenv.mkDerivation ((drvAttrs config stdenv.platform (kernelPatches ++ nativeKe "ARCH=${stdenv.platform.kernelArch}" ]; + karch = stdenv.platform.kernelArch; + crossAttrs = let cp = stdenv.cross.platform; in (drvAttrs crossConfig cp (kernelPatches ++ crossKernelPatches) crossConfigfile) // { makeFlags = commonMakeFlags ++ [ @@ -229,6 +234,8 @@ stdenv.mkDerivation ((drvAttrs config stdenv.platform (kernelPatches ++ nativeKe "CROSS_COMPILE=$(crossConfig)-" ]; + karch = cp.kernelArch; + # !!! uboot has messed up cross-compiling, nativeDrv builds arm tools on x86, # crossDrv builds x86 tools on x86 (but arm uboot). If this is fixed, uboot # can just go into buildInputs (but not nativeBuildInputs since cp.uboot diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b3560d5f4428..f1d3983f8d42 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7061,7 +7061,7 @@ let poker-eval = callPackage ../development/libraries/poker-eval { }; polkit = callPackage ../development/libraries/polkit { - spidermonkey = spidermonkey_185; + spidermonkey = spidermonkey_17; }; polkit_qt4 = callPackage ../development/libraries/polkit-qt-1 { @@ -8762,7 +8762,7 @@ let ]; }; - linux_3_6_rpi = makeOverridable (import ../os-specific/linux/kernel/linux-rpi-3.6.nix) { + linux_rpi = makeOverridable (import ../os-specific/linux/kernel/linux-rpi.nix) { inherit fetchurl stdenv perl buildLinux; kernelPatches = [ kernelPatches.bridge_stp_helper ]; }; @@ -8982,7 +8982,7 @@ let # Build the kernel modules for the some of the kernels. linuxPackages_3_2 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_2 linuxPackages_3_2); linuxPackages_3_4 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_4 linuxPackages_3_4); - linuxPackages_3_6_rpi = linuxPackagesFor pkgs.linux_3_6_rpi linuxPackages_3_6_rpi; + linuxPackages_rpi = linuxPackagesFor pkgs.linux_rpi linuxPackages_rpi; linuxPackages_3_10 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_10 linuxPackages_3_10); linuxPackages_3_10_tuxonice = linuxPackagesFor pkgs.linux_3_10_tuxonice linuxPackages_3_10_tuxonice; linuxPackages_3_12 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_12 linuxPackages_3_12); diff --git a/pkgs/top-level/platforms.nix b/pkgs/top-level/platforms.nix index 20cc39692c0b..8bdc4f77302c 100644 --- a/pkgs/top-level/platforms.nix +++ b/pkgs/top-level/platforms.nix @@ -212,6 +212,98 @@ rec { }; }; + raspberrypi2 = { + name = "raspberrypi2"; + kernelMajor = "3.14"; + kernelHeadersBaseConfig = "kirkwood_defconfig"; + kernelBaseConfig = "bcm2709_defconfig"; + kernelArch = "arm"; + kernelDTB = true; + kernelAutoModules = false; + kernelExtraConfig = + '' + BLK_DEV_RAM y + BLK_DEV_INITRD y + BLK_DEV_CRYPTOLOOP m + BLK_DEV_DM m + DM_CRYPT m + MD y + REISERFS_FS m + BTRFS_FS y + XFS_FS m + JFS_FS y + EXT4_FS y + + IP_PNP y + IP_PNP_DHCP y + NFS_FS y + ROOT_NFS y + TUN m + NFS_V4 y + NFS_V4_1 y + NFS_FSCACHE y + NFSD m + NFSD_V2_ACL y + NFSD_V3 y + NFSD_V3_ACL y + NFSD_V4 y + NETFILTER y + IP_NF_IPTABLES y + IP_NF_FILTER y + IP_NF_MATCH_ADDRTYPE y + IP_NF_TARGET_LOG y + IP_NF_MANGLE y + IPV6 m + VLAN_8021Q m + + CIFS y + CIFS_XATTR y + CIFS_POSIX y + CIFS_FSCACHE y + CIFS_ACL y + + ZRAM m + + # Fail to build + DRM n + SCSI_ADVANSYS n + USB_ISP1362_HCD n + SND_SOC n + SND_ALI5451 n + FB_SAVAGE n + SCSI_NSP32 n + ATA_SFF n + SUNGEM n + IRDA n + ATM_HE n + SCSI_ACARD n + BLK_DEV_CMD640_ENHANCED n + + FUSE_FS m + + # nixos mounts some cgroup + CGROUPS y + + # Latencytop + LATENCYTOP y + + # Disable the common config Xen, it doesn't build on ARM + XEN? n + ''; + kernelTarget = "zImage"; + uboot = null; + gcc = { + # For gcc 4.8, the best for rpi2 would be: + # cpu = "cortex-a7"; + # fpu = "neon-vfpv4"; + # But we prefer compatibility with the beaglebone, so both + # can run the same built store paths. + arch = "armv7-a"; + fpu = "vfpv3-d16"; + float = "hard"; + }; + }; + guruplug = sheevaplug // { # Define `CONFIG_MACH_GURUPLUG' (see # )