Merge pull request #140055 from obsidiansystems/newlib-nano

newlib: Add parameter for "nano" variant

authored by

John Ericson and committed by
GitHub
927a438a 381107eb

+29 -4
+19 -3
pkgs/development/misc/newlib/default.nix
··· 1 - { stdenv, fetchurl, buildPackages }: 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 + }: 2 7 3 8 stdenv.mkDerivation rec { 4 9 pname = "newlib"; ··· 22 27 23 28 "--disable-newlib-supplied-syscalls" 24 29 "--disable-nls" 30 + "--enable-newlib-retargetable-locking" 31 + ] ++ (if !nanoizeNewlib then [ 25 32 "--enable-newlib-io-long-long" 26 33 "--enable-newlib-register-fini" 27 - "--enable-newlib-retargetable-locking" 28 - ]; 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 + ]); 29 45 30 46 dontDisableStatic = true; 31 47
+10 -1
pkgs/top-level/all-packages.nix
··· 16086 16086 else if name == "newlib" && stdenv.targetPlatform.isVc4 then targetPackages.vc4-newlib or vc4-newlib 16087 16087 else if name == "newlib" && stdenv.targetPlatform.isOr1k then targetPackages.or1k-newlib or or1k-newlib 16088 16088 else if name == "newlib" then targetPackages.newlibCross or newlibCross 16089 + else if name == "newlib-nano" then targetPackages.newlib-nanoCross or newlib-nanoCross 16089 16090 else if name == "musl" then targetPackages.muslCross or muslCross 16090 16091 else if name == "msvcrt" then targetPackages.windows.mingw_w64 or windows.mingw_w64 16091 16092 else if name == "libSystem" then ··· 32974 32975 newlib = callPackage ../development/misc/newlib { }; 32975 32976 newlibCross = callPackage ../development/misc/newlib { 32976 32977 stdenv = crossLibcStdenv; 32977 - }; 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 + }; 32978 32987 32979 32988 omnisharp-roslyn = callPackage ../development/tools/omnisharp-roslyn { dotnet-sdk = dotnet-sdk_5; }; 32980 32989