···11-{ stdenv, fetchurl, buildPackages }:
11+{ stdenv, fetchurl, buildPackages
22+, # "newlib-nano" is what the official ARM embedded toolchain calls this build
33+ # configuration that prioritizes low space usage. We include it as a preset
44+ # for embedded projects striving for a similar configuration.
55+ nanoizeNewlib ? false
66+}:
2738stdenv.mkDerivation rec {
49 pname = "newlib";
···22272328 "--disable-newlib-supplied-syscalls"
2429 "--disable-nls"
3030+ "--enable-newlib-retargetable-locking"
3131+ ] ++ (if !nanoizeNewlib then [
2532 "--enable-newlib-io-long-long"
2633 "--enable-newlib-register-fini"
2727- "--enable-newlib-retargetable-locking"
2828- ];
3434+ ] else [
3535+ "--enable-newlib-reent-small"
3636+ "--disable-newlib-fvwrite-in-streamio"
3737+ "--disable-newlib-fseek-optimization"
3838+ "--disable-newlib-wide-orient"
3939+ "--enable-newlib-nano-malloc"
4040+ "--disable-newlib-unbuf-stream-opt"
4141+ "--enable-lite-exit"
4242+ "--enable-newlib-global-atexit"
4343+ "--enable-newlib-nano-formatted-io"
4444+ ]);
29453046 dontDisableStatic = true;
3147
+10-1
pkgs/top-level/all-packages.nix
···1608616086 else if name == "newlib" && stdenv.targetPlatform.isVc4 then targetPackages.vc4-newlib or vc4-newlib
1608716087 else if name == "newlib" && stdenv.targetPlatform.isOr1k then targetPackages.or1k-newlib or or1k-newlib
1608816088 else if name == "newlib" then targetPackages.newlibCross or newlibCross
1608916089+ else if name == "newlib-nano" then targetPackages.newlib-nanoCross or newlib-nanoCross
1608916090 else if name == "musl" then targetPackages.muslCross or muslCross
1609016091 else if name == "msvcrt" then targetPackages.windows.mingw_w64 or windows.mingw_w64
1609116092 else if name == "libSystem" then
···3297432975 newlib = callPackage ../development/misc/newlib { };
3297532976 newlibCross = callPackage ../development/misc/newlib {
3297632977 stdenv = crossLibcStdenv;
3297732977- };
3297832978+ };
3297932979+3298032980+ newlib-nano = callPackage ../development/misc/newlib {
3298132981+ nanoizeNewlib = true;
3298232982+ };
3298332983+ newlib-nanoCross = callPackage ../development/misc/newlib {
3298432984+ nanoizeNewlib = true;
3298532985+ stdenv = crossLibcStdenv;
3298632986+ };
32978329873297932988 omnisharp-roslyn = callPackage ../development/tools/omnisharp-roslyn { dotnet-sdk = dotnet-sdk_5; };
3298032989