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

Nicolas Pierron nicolas.b.pierron at gmail.com
Fri Nov 20 17:53:10 CET 2009


On Fri, Nov 20, 2009 at 15:13, Ludovic Courtès <ludo at gnu.org> wrote:
> Lluís Batlle <viriketo at gmail.com> writes:
>> 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.
>
> glibc, mplayer, etc. all detect this at run time.
>
>> Those details have a strong meaning when building the compiler for
>> that platform.
>
> For x86 I believe GCC won’t use SSE et al. unless explicitly told to do
> so with ‘-msse’ or similar.

I will answer again for both of these.  The runtime is not the build-time.

In Nix we CANNOT accept that a program gets compiled with missing
dependencies.  Imagine that software A use in its configure something
to detect the hardware properties (for example sse flags).  This can
break the binary distribution.  How ...?  Simple, if the buildfarm has
sse3 and your computer does not have it, the program will only work on
sse3 hardware and it may cause illegal instructions on others.

Now, if you have to mention that your system support the sse3
intructions, then non-sse3 hardware will not download it from the
buildfarm because this dependency is explicit.

PS: I am running NixOS on a computer without any see flags.

-- 
Nicolas Pierron
http://www.linkedin.com/in/nicolasbpierron - http://nbp.name/
If you are doing something twice then you should try to do it once.



More information about the nix-dev mailing list