From 8b94e22f33b10a9aed8df676b1833dd39c30cc1d Mon Sep 17 00:00:00 2001 From: "ambrop7@gmail.com" Date: Sat, 29 Mar 2014 11:00:26 +0100 Subject: [PATCH] Add gcc-arm-embedded. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These are packages for precompiled ARM microcontroller compilers from https://launchpad.net/gcc-arm-embedded. [Bjørn: modify commit message (add paragraph).] --- .../compilers/gcc-arm-embedded/default.nix | 40 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 12 ++++++ 2 files changed, 52 insertions(+) create mode 100644 pkgs/development/compilers/gcc-arm-embedded/default.nix diff --git a/pkgs/development/compilers/gcc-arm-embedded/default.nix b/pkgs/development/compilers/gcc-arm-embedded/default.nix new file mode 100644 index 000000000000..2a71405e2b9a --- /dev/null +++ b/pkgs/development/compilers/gcc-arm-embedded/default.nix @@ -0,0 +1,40 @@ +{ stdenv, bzip2, patchelf, glibc, gcc, fetchurl, version, releaseType, sha256 }: +with stdenv.lib; +let + versionParts = splitString "-" version; # 4.7 2013q3 20130916 + majorVersion = elemAt versionParts 0; # 4.7 + yearQuarter = elemAt versionParts 1; # 2013q3 + underscoreVersion = replaceChars ["."] ["_"] version; # 4_7-2013q3-20130916 + yearQuarterParts = splitString "q" yearQuarter; # 2013 3 + year = elemAt yearQuarterParts 0; # 2013 + quarter = elemAt yearQuarterParts 1; # 3 + subdirName = "${majorVersion}-${year}-q${quarter}-${releaseType}"; # 4.7-2013-q3-update +in +stdenv.mkDerivation { + name = "gcc-arm-embedded-${version}"; + + src = fetchurl { + url = "https://launchpad.net/gcc-arm-embedded/${majorVersion}/${subdirName}/+download/gcc-arm-none-eabi-${underscoreVersion}-linux.tar.bz2"; + sha256 = sha256; + }; + + buildInputs = [ bzip2 patchelf ]; + + dontPatchELF = true; + + phases = "unpackPhase patchPhase installPhase"; + + installPhase = '' + mkdir -pv $out + cp -r ./* $out + + for f in $(find $out); do + if [ -f "$f" ] && patchelf "$f" 2> /dev/null; then + patchelf --set-interpreter ${glibc}/lib/ld-linux.so.2 \ + --set-rpath $out/lib:${gcc}/lib \ + "$f" || true + fi + done + ''; +} + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6d1d908e935e..f927145c4d02 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2722,6 +2722,18 @@ let regexCompat HsSyck random; }; + gcc-arm-embedded-4_7 = callPackage_i686 ../development/compilers/gcc-arm-embedded { + version = "4.7-2013q3-20130916"; + releaseType = "update"; + sha256 = "1bd9bi9q80xn2rpy0rn1vvj70rh15kb7dmah0qs4q2rv78fqj40d"; + }; + gcc-arm-embedded-4_8 = callPackage_i686 ../development/compilers/gcc-arm-embedded { + version = "4.8-2014q1-20140314"; + releaseType = "update"; + sha256 = "ce92859550819d4a3d1a6e2672ea64882b30afa2c08cf67fa8e1d93788c2c577"; + }; + gcc-arm-embedded = gcc-arm-embedded-4_8; + # Haskell and GHC # Import Haskell infrastructure.