···1+{ stdenv, fetchurl, buildPackages
2+, # "newlib-nano" is what the official ARM embedded toolchain calls this build
3+ # configuration that prioritizes low space usage. We include it as a preset
4+ # for embedded projects striving for a similar configuration.
5+ nanoizeNewlib ? false
6+}:
78stdenv.mkDerivation rec {
9 pname = "newlib";
···2728 "--disable-newlib-supplied-syscalls"
29 "--disable-nls"
30+ "--enable-newlib-retargetable-locking"
31+ ] ++ (if !nanoizeNewlib then [
32 "--enable-newlib-io-long-long"
33 "--enable-newlib-register-fini"
34+ ] else [
35+ "--enable-newlib-reent-small"
36+ "--disable-newlib-fvwrite-in-streamio"
37+ "--disable-newlib-fseek-optimization"
38+ "--disable-newlib-wide-orient"
39+ "--enable-newlib-nano-malloc"
40+ "--disable-newlib-unbuf-stream-opt"
41+ "--enable-lite-exit"
42+ "--enable-newlib-global-atexit"
43+ "--enable-newlib-nano-formatted-io"
44+ ]);
4546 dontDisableStatic = true;
47
+10-1
pkgs/top-level/all-packages.nix
···16086 else if name == "newlib" && stdenv.targetPlatform.isVc4 then targetPackages.vc4-newlib or vc4-newlib
16087 else if name == "newlib" && stdenv.targetPlatform.isOr1k then targetPackages.or1k-newlib or or1k-newlib
16088 else if name == "newlib" then targetPackages.newlibCross or newlibCross
016089 else if name == "musl" then targetPackages.muslCross or muslCross
16090 else if name == "msvcrt" then targetPackages.windows.mingw_w64 or windows.mingw_w64
16091 else if name == "libSystem" then
···32974 newlib = callPackage ../development/misc/newlib { };
32975 newlibCross = callPackage ../development/misc/newlib {
32976 stdenv = crossLibcStdenv;
32977- };
000000003297832979 omnisharp-roslyn = callPackage ../development/tools/omnisharp-roslyn { dotnet-sdk = dotnet-sdk_5; };
32980
···16086 else if name == "newlib" && stdenv.targetPlatform.isVc4 then targetPackages.vc4-newlib or vc4-newlib
16087 else if name == "newlib" && stdenv.targetPlatform.isOr1k then targetPackages.or1k-newlib or or1k-newlib
16088 else if name == "newlib" then targetPackages.newlibCross or newlibCross
16089+ else if name == "newlib-nano" then targetPackages.newlib-nanoCross or newlib-nanoCross
16090 else if name == "musl" then targetPackages.muslCross or muslCross
16091 else if name == "msvcrt" then targetPackages.windows.mingw_w64 or windows.mingw_w64
16092 else if name == "libSystem" then
···32975 newlib = callPackage ../development/misc/newlib { };
32976 newlibCross = callPackage ../development/misc/newlib {
32977 stdenv = crossLibcStdenv;
32978+ };
32979+32980+ newlib-nano = callPackage ../development/misc/newlib {
32981+ nanoizeNewlib = true;
32982+ };
32983+ newlib-nanoCross = callPackage ../development/misc/newlib {
32984+ nanoizeNewlib = true;
32985+ stdenv = crossLibcStdenv;
32986+ };
3298732988 omnisharp-roslyn = callPackage ../development/tools/omnisharp-roslyn { dotnet-sdk = dotnet-sdk_5; };
32989