From 1c7bb464d99301e42cbb0fe438c927c1440800c6 Mon Sep 17 00:00:00 2001 From: Aaron Lindsay Date: Mon, 25 Mar 2019 20:33:39 -0700 Subject: [PATCH] msp430: include vendor headers with stdenv --- lib/systems/default.nix | 1 + pkgs/development/misc/msp430/newlib.nix | 18 ++++++++++++++++++ pkgs/top-level/all-packages.nix | 7 +++++++ 3 files changed, 26 insertions(+) create mode 100644 pkgs/development/misc/msp430/newlib.nix diff --git a/lib/systems/default.nix b/lib/systems/default.nix index b3f7363fe61..9c6b51400dc 100644 --- a/lib/systems/default.nix +++ b/lib/systems/default.nix @@ -34,6 +34,7 @@ rec { else if final.isUClibc then "uclibc" else if final.isAndroid then "bionic" else if final.isLinux /* default */ then "glibc" + else if final.isMsp430 then "newlib" else if final.isAvr then "avrlibc" # TODO(@Ericson2314) think more about other operating systems else "native/impure"; diff --git a/pkgs/development/misc/msp430/newlib.nix b/pkgs/development/misc/msp430/newlib.nix new file mode 100644 index 00000000000..9586a2ff21d --- /dev/null +++ b/pkgs/development/misc/msp430/newlib.nix @@ -0,0 +1,18 @@ +{ runCommand, lndir, newlib, msp430GccSupport }: + +runCommand "msp430-${newlib.name}" { + inherit newlib; + inherit msp430GccSupport; + + preferLocalBuild = true; + allowSubstitutes = false; + + passthru = { + inherit (newlib) incdir libdir; + }; +} '' + mkdir $out + ${lndir}/bin/lndir -silent $newlib $out + ${lndir}/bin/lndir -silent $msp430GccSupport/include $out/${newlib.incdir} + ${lndir}/bin/lndir -silent $msp430GccSupport/lib $out/${newlib.libdir} +'' diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f7fdc29556c..08eb5a91c8a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8374,6 +8374,12 @@ in msp430GccSupport = callPackage ../development/misc/msp430/gcc-support.nix { }; + msp430Newlib = callPackage ../development/misc/msp430/newlib.nix { }; + msp430NewlibCross = callPackage ../development/misc/msp430/newlib.nix { + inherit (pkgs.buildPackages.xorg) lndir; + newlib = pkgs.newlibCross; + }; + pharo-vms = callPackage ../development/pharo/vm { }; pharo = pharo-vms.multi-vm-wrapper; pharo-cog32 = pharo-vms.cog32; @@ -10146,6 +10152,7 @@ in else if name == "bionic" then targetPackages.bionic or bionic else if name == "uclibc" then targetPackages.uclibcCross or uclibcCross else if name == "avrlibc" then targetPackages.avrlibcCross or avrlibcCross + else if name == "newlib" && stdenv.targetPlatform.isMsp430 then targetPackages.msp430NewlibCross or msp430NewlibCross else if name == "newlib" then targetPackages.newlibCross or newlibCross else if name == "musl" then targetPackages.muslCross or muslCross else if name == "msvcrt" then targetPackages.windows.mingw_w64 or windows.mingw_w64