gmp: Fix build on ARM

The config.guess script tries to detect various ARM optimization flags
via /proc/cpuinfo. This is not only impure, but the detection is also
broken on multicore machines; on my quad-core system the machine type is
autodetected as 'neon neon neon neon-unknown-linux-gnueabihf':

checking build system type... Invalid configuration `neon': machine `neon' not recognized
configure: error: /nix/store/bafimhdj1yaxj6m1hvq7wvhwwizc939x-bootstrap-tools/bin/sh ./config.sub neon
neon
neon
neon-unknown-linux-gnueabihf failed
builder for ‘/nix/store/1npm2358bpvclj5w7fqjjwg72vbb0d79-gmp-6.0.0a.drv’ failed with exit code 1

Override the system type with the output of GNU config.guess to avoid
the autodetection.
wip/yesman
Tuomas Tynkkynen 9 years ago
parent 33e70ad68a
commit c240556a24
  1. 9
      pkgs/development/libraries/gmp/5.1.x.nix
  2. 9
      pkgs/development/libraries/gmp/6.x.nix

@ -1,6 +1,6 @@
{ stdenv, fetchurl, m4, cxx ? true, withStatic ? true }:
with { inherit (stdenv.lib) optional; };
with { inherit (stdenv.lib) optional optionalString; };
stdenv.mkDerivation rec {
name = "gmp-5.1.3";
@ -28,6 +28,13 @@ stdenv.mkDerivation rec {
++ optional stdenv.is64bit "--with-pic"
;
# The config.guess in GMP tries to runtime-detect various
# ARM optimization flags via /proc/cpuinfo (and is also
# broken on multicore CPUs). Avoid this impurity.
preConfigure = optionalString stdenv.isArm ''
configureFlagsArray+=("--build=$(./configfsf.guess)")
'';
doCheck = true;
dontDisableStatic = withStatic;

@ -1,6 +1,6 @@
{ stdenv, fetchurl, m4, cxx ? true, withStatic ? true }:
with { inherit (stdenv.lib) optional; };
with { inherit (stdenv.lib) optional optionalString; };
stdenv.mkDerivation rec {
name = "gmp-6.0.0a";
@ -26,6 +26,13 @@ stdenv.mkDerivation rec {
++ optional stdenv.is64bit "--with-pic"
;
# The config.guess in GMP tries to runtime-detect various
# ARM optimization flags via /proc/cpuinfo (and is also
# broken on multicore CPUs). Avoid this impurity.
preConfigure = optionalString stdenv.isArm ''
configureFlagsArray+=("--build=$(./configfsf.guess)")
'';
doCheck = true;
dontDisableStatic = withStatic;

Loading…
Cancel
Save