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

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

svn path=/nixpkgs/trunk/; revision=33761
This commit is contained in:
Ludovic Courtès 2012-04-12 13:44:14 +00:00
parent fcc5136cfc
commit 054382bbfe
2 changed files with 34 additions and 11 deletions

View File

@ -56,16 +56,8 @@ stdenv.mkDerivation (rec {
(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 { }))

View File

@ -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: