mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-18 11:44:07 +00:00
985098d4be
svn path=/nixpkgs/trunk/; revision=6245
36 lines
1.4 KiB
Plaintext
36 lines
1.4 KiB
Plaintext
Upgrading the standard initial environment
|
|
|
|
For Nix on i686-linux we make use of an environment of statically linked
|
|
tools (see $nixpkgs/stdenv/linux). The first version of these tools were
|
|
compiled outside of Nix, in an impure environment. They are used as some
|
|
magical ingredient to make everything work. To keep these tools more in
|
|
synchronization with the rest of nixpkgs and to make porting of nixpkgs
|
|
to other platforms easier the static versions are now also built with Nix
|
|
and nixpkgs.
|
|
|
|
The tools can be found in nixpkgs in:
|
|
|
|
- shells/bash-static
|
|
- tools/networking/curl-diet
|
|
- tools/archivers/gnutar-diet
|
|
- tools/compression/gzip-diet
|
|
- tools/compression/bzip2-static
|
|
- tools/text/gnused-diet
|
|
- tools/text/diffutils-diet
|
|
- tools/text/gnupatch-diet
|
|
- tools/misc/findutils-static
|
|
|
|
and
|
|
- development/compilers/gcc-static-3.4
|
|
|
|
Most packages are compiled with dietlibc, an alternate C library, apart
|
|
from bash and findutils, which are statically linked to glibc. The reason
|
|
we chose dietlibc has various reasons. First of all, curl cannot be built
|
|
statically with glibc. If we do, we get a static binary, but it cannot resolve
|
|
hostnames to IP addresses. glibc dynamically loads functionality at runtime
|
|
to do resolving. When linking with dietlibc this doesn't happen.
|
|
|
|
The static tools are not used as part of the input hashing (see Eelco's
|
|
PhD thesis, paragraph 5.4.1), so changing them does not change anything and
|
|
will not force a massive rebuild.
|