[Nix-dev] Re: [Nix-commits] SVN commit: nix - 18468 - NicolasPierron - nixpkgs/branches/stdenv-updates/pkgs/lib

Lluís Batlle viriketo at gmail.com
Fri Nov 20 12:09:47 CET 2009


2009/11/20 Ludovic Courtès <ludo at gnu.org>:
> Nicolas Pierron
> This would mean that the main (only?) purpose of this API you’re
> designing is to build U-Boot.  That’s what I call “overdesign”.

In order to build U-boot, I already used the "platform" attribute in
nixpkgs, out of this.

An important part of the system.nix expressions developed by Nicolas
concerns the usage of nixpkgs on cross compiling. That needs as much
information as the compiler may need.
Nicolas wanted the information for the cross compiler, which needs to
be quite specific, to be available also about the native system, and
then use for both the same kind of attribute sets and operations.

This would also allow having a more detailed information about the
build system, and allow, on native systems, users to specify build
details. For example, some arms and mips can arbitrarily deal with
little or big endian. Arms can run programs compiled with thumb
instructions, instead of the non-thumb. For PCs, different processors
have additional instruction sets, and "i686" no more became a full
definition for the processor. Pentium 2, 3 and 4, fall into i686,
although they have sse, sse2 and sse3. Those fell out of the
"processor type" to get into the "processor features" list, in
GNU/Linux systems.

Those details have a strong meaning when building the compiler for
that platform. And as the autotools don't provide that information to
build systems, many people wrote their own checks for processor
features. It is worth mentioning that many features of the gcc
compiler can be set at run time, not only at gcc build-time, at least
about floating point and EABI I think. The most problematic part may
be what comes into the field of "multilib gcc", for libgcc and others,
that results from some unchangeable settings at gcc build time.

Regards,
Lluís.



More information about the nix-dev mailing list