Hi Christoph, > [Are customized build time optimisations] possible in NixOS, e.g. by > modifying/overwriting the stdenv expression which most other > expressions depend on, or not?
it is possible to customize default build flags. I don't know what the current best practice is, but a while ago, I used nixpkgs.conf to modify stdenv as follows: replaceStdenv = { stdenv, overrideSetup }: stdenv // { mkDerivation = args: stdenv.mkDerivation (args // { makeFlags = (if args ? makeFlags then args.makeFlags else "") + "-j8 -l8"; }); }; However, although it is possible to customize the default build flags, it is practically unfeasible. In Gentoo, ebuilds contain a lot of know-how that deals with problematic settings. For instance, some packages break if they're being compiled with -O3. If you have -O3 in /etc/make.conf, then Gentoo will automatically downgrade that setting to, say -O2, for building that particular package. Nix, on the other hand, doesn't do any of that, so if you specify default flags that break certain packages, then those packages will be broken. Furthermore, those default settings will be incorporated into the hashes of every package you build with them, so you'll have store paths that differ from everyone else's (unless they happen to use the exact same settings). This means that you'll never ever be able to use binary packages from the build farm. Also, if you ever change those flags, then you'll have to re-build your entire system. Take care, Peter _______________________________________________ nix-dev mailing list nix-dev@cs.uu.nl https://mail.cs.uu.nl/mailman/listinfo/nix-dev