Author: ludo
Date: Thu Apr 12 13:44:14 2012
New Revision: 33761
URL: https://nixos.org/websvn/nix/?rev=33761&sc=1

Log:
GMP 5.0.3: Really fix FreeBSD builds at hydra.nixos.org.

Patch by Eelco Dolstra, backported from `stdenv-updates'.

Added:
   nixpkgs/trunk/pkgs/development/libraries/gmp/ignore-bad-cpuid.patch
Modified:
   nixpkgs/trunk/pkgs/development/libraries/gmp/5.0.3.nix

Modified: nixpkgs/trunk/pkgs/development/libraries/gmp/5.0.3.nix
==============================================================================
--- nixpkgs/trunk/pkgs/development/libraries/gmp/5.0.3.nix      Thu Apr 12 
13:20:58 2012        (r33760)
+++ nixpkgs/trunk/pkgs/development/libraries/gmp/5.0.3.nix      Thu Apr 12 
13:44:14 2012        (r33761)
@@ -56,16 +56,8 @@
 
 (if stdenv.isFreeBSD
  then {
-   # On FreeBSD, GMP's `config.guess' detects the sub-architecture (e.g.,
-   # "k8") and generates code specific to that sub-architecture, in spite of
-   # `--enable-fat', leading to illegal instructions and similar errors on
-   # machines with a different sub-architecture.
-   # See <http://hydra.nixos.org/build/2269915/nixlog/1/raw>, for an example.
-   # Thus, use GNU's standard `config.guess' so that it assumes the generic
-   # architecture (e.g., "x86_64").
-   preConfigure =
-     '' rm config.guess && ln -s configfsf.guess config.guess
-        chmod +x configfsf.guess
-     '';
+   # The FreeBSD boxes at hydra.nixos.org are VMs run in QEMU.  This patch
+   # allows GMP to work correctly in that environment.
+   patches = [ ./ignore-bad-cpuid.patch ];
  }
  else { }))

Added: nixpkgs/trunk/pkgs/development/libraries/gmp/ignore-bad-cpuid.patch
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ nixpkgs/trunk/pkgs/development/libraries/gmp/ignore-bad-cpuid.patch Thu Apr 
12 13:44:14 2012        (r33761)
@@ -0,0 +1,31 @@
+Don't abort when seeing the default CPU model/platform returned by
+QEMU.
+
+diff -ru -x '*~' gmp-5.0.4-orig/mpn/x86_64/fat/fat.c 
gmp-5.0.4/mpn/x86_64/fat/fat.c
+--- gmp-5.0.4-orig/mpn/x86_64/fat/fat.c        2012-02-10 11:23:05.000000000 
+0100
++++ gmp-5.0.4/mpn/x86_64/fat/fat.c     2012-04-01 21:38:35.843066724 +0200
+@@ -194,13 +194,16 @@
+     {
+       switch (family)
+       {
++#if 0
+       case 4:
+       case 5:
+         abort ();             /* 32-bit processors */
++#endif
+ 
+       case 6:
+         switch (model)
+           {
++#if 0
+           case 0x00:
+           case 0x01:
+           case 0x02:
+@@ -217,6 +220,7 @@
+           case 0x0d:          /* Dothan */
+           case 0x0e:          /* Yonah */
+             abort ();         /* 32-bit processors */
++#endif
+ 
+           case 0x0f:          /* Conroe Merom Kentsfield Allendale */
+           case 0x10:
_______________________________________________
nix-commits mailing list
[email protected]
http://lists.science.uu.nl/mailman/listinfo/nix-commits

Reply via email to