git.iko.soy/typeable/nixpkgs
on master help sign in
Merge pull request #140055 from obsidiansystems/newlib-nano

newlib: Add parameter for "nano" variant

commit927a438a16c30774aaeff1c39418bce1f71b5ffc authorJohn Ericson <git@JohnEricson.me> dateMon 4 Oct 2021, 11:11 (5 years ago) parent381107ee3ff618
2 files changed+29−4
pkgs/development/misc/newlib/default.nix+19−3 pkgs/top-level/all-packages.nix+10−1
pkgs/development/misc/newlib/default.nix+19−3
@@ -1,4 +1,9 @@
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+}:
27
38stdenv.mkDerivation rec {
49 pname = "newlib";
@@ -22,10 +27,21 @@ stdenv.mkDerivation rec {
2227
2328 "--disable-newlib-supplied-syscalls"
2429 "--disable-nls"
30+ "--enable-newlib-retargetable-locking"
31+ ] ++ (if !nanoizeNewlib then [
2532 "--enable-newlib-io-long-long"
2633 "--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+ ]);
2945
3046 dontDisableStatic = true;
3147
pkgs/top-level/all-packages.nix+10−1
@@ -16086,6 +16086,7 @@ with pkgs;
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
16089+ 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
@@ -32974,7 +32975,15 @@ with pkgs;
3297432975 newlib = callPackage ../development/misc/newlib { };
3297532976 newlibCross = callPackage ../development/misc/newlib {
3297632977 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+ };
3297832987
3297932988 omnisharp-roslyn = callPackage ../development/tools/omnisharp-roslyn { dotnet-sdk = dotnet-sdk_5; };
3298032989