Guile: Fix cross-compilation
This commit is contained in:
parent
dcab8d611d
commit
f79fa77941
@ -1,6 +1,6 @@
|
|||||||
{ fetchurl, stdenv, libtool, readline, gmp, pkgconfig, boehmgc, libunistring
|
{ fetchurl, stdenv, libtool, readline, gmp, pkgconfig, boehmgc, libunistring
|
||||||
, libffi, gawk, makeWrapper, fetchpatch, coverageAnalysis ? null, gnu ? null
|
, libffi, gawk, makeWrapper, fetchpatch, coverageAnalysis ? null, gnu ? null
|
||||||
, hostPlatform
|
, hostPlatform, buildPackages
|
||||||
}:
|
}:
|
||||||
|
|
||||||
# Do either a coverage analysis build or a standard build.
|
# Do either a coverage analysis build or a standard build.
|
||||||
@ -19,7 +19,9 @@
|
|||||||
outputs = [ "out" "dev" "info" ];
|
outputs = [ "out" "dev" "info" ];
|
||||||
setOutputFlags = false; # $dev gets into the library otherwise
|
setOutputFlags = false; # $dev gets into the library otherwise
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper gawk pkgconfig ];
|
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
||||||
|
nativeBuildInputs = [ makeWrapper gawk pkgconfig ] ++
|
||||||
|
stdenv.lib.optional stdenv.isCross buildPackages.buildPackages.guile_2_0;
|
||||||
buildInputs = [ readline libtool libunistring libffi ];
|
buildInputs = [ readline libtool libunistring libffi ];
|
||||||
propagatedBuildInputs = [ gmp boehmgc ]
|
propagatedBuildInputs = [ gmp boehmgc ]
|
||||||
|
|
||||||
@ -29,9 +31,6 @@
|
|||||||
# see below.
|
# see below.
|
||||||
++ [ libtool libunistring ];
|
++ [ libtool libunistring ];
|
||||||
|
|
||||||
# A native Guile 2.0 is needed to cross-build Guile.
|
|
||||||
selfNativeBuildInput = true;
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
patches = [ ./disable-gc-sensitive-tests.patch ./eai_system.patch ./clang.patch
|
patches = [ ./disable-gc-sensitive-tests.patch ./eai_system.patch ./clang.patch
|
||||||
@ -40,6 +39,7 @@
|
|||||||
url = "http://git.savannah.gnu.org/cgit/guile.git/patch/?id=2fbde7f02adb8c6585e9baf6e293ee49cd23d4c4";
|
url = "http://git.savannah.gnu.org/cgit/guile.git/patch/?id=2fbde7f02adb8c6585e9baf6e293ee49cd23d4c4";
|
||||||
sha256 = "0p6c1lmw1iniq03z7x5m65kg3lq543kgvdb4nrxsaxjqf3zhl77v";
|
sha256 = "0p6c1lmw1iniq03z7x5m65kg3lq543kgvdb4nrxsaxjqf3zhl77v";
|
||||||
})
|
})
|
||||||
|
./riscv.patch
|
||||||
] ++
|
] ++
|
||||||
(stdenv.lib.optional (coverageAnalysis != null) ./gcov-file-name.patch);
|
(stdenv.lib.optional (coverageAnalysis != null) ./gcov-file-name.patch);
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{ fetchurl, stdenv, libtool, readline, gmp, pkgconfig, boehmgc, libunistring
|
{ fetchurl, stdenv, libtool, readline, gmp, pkgconfig, boehmgc, libunistring
|
||||||
, libffi, gawk, makeWrapper, fetchpatch, coverageAnalysis ? null, gnu ? null
|
, libffi, gawk, makeWrapper, fetchpatch, coverageAnalysis ? null, gnu ? null
|
||||||
, hostPlatform
|
, hostPlatform, buildPackages
|
||||||
}:
|
}:
|
||||||
|
|
||||||
# Do either a coverage analysis build or a standard build.
|
# Do either a coverage analysis build or a standard build.
|
||||||
@ -20,7 +20,9 @@
|
|||||||
outputs = [ "out" "dev" "info" ];
|
outputs = [ "out" "dev" "info" ];
|
||||||
setOutputFlags = false; # $dev gets into the library otherwise
|
setOutputFlags = false; # $dev gets into the library otherwise
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper gawk pkgconfig ];
|
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
||||||
|
nativeBuildInputs = [ makeWrapper gawk pkgconfig ] ++
|
||||||
|
stdenv.lib.optional stdenv.isCross buildPackages.buildPackages.guile;
|
||||||
buildInputs = [ readline libtool libunistring libffi ];
|
buildInputs = [ readline libtool libunistring libffi ];
|
||||||
|
|
||||||
propagatedBuildInputs = [ gmp boehmgc ]
|
propagatedBuildInputs = [ gmp boehmgc ]
|
||||||
@ -30,13 +32,11 @@
|
|||||||
# see below.
|
# see below.
|
||||||
++ [ libtool libunistring ];
|
++ [ libtool libunistring ];
|
||||||
|
|
||||||
# A native Guile 2.0 is needed to cross-build Guile.
|
|
||||||
selfNativeBuildInput = true;
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
./eai_system.patch
|
./eai_system.patch
|
||||||
|
./riscv.patch
|
||||||
] ++
|
] ++
|
||||||
(stdenv.lib.optional (coverageAnalysis != null) ./gcov-file-name.patch);
|
(stdenv.lib.optional (coverageAnalysis != null) ./gcov-file-name.patch);
|
||||||
|
|
||||||
|
13
pkgs/development/interpreters/guile/riscv.patch
Normal file
13
pkgs/development/interpreters/guile/riscv.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/module/system/base/target.scm b/module/system/base/target.scm
|
||||||
|
index 95ab8d8c9..93616f4a3 100644
|
||||||
|
--- a/module/system/base/target.scm
|
||||||
|
+++ b/module/system/base/target.scm
|
||||||
|
@@ -86,6 +86,8 @@
|
||||||
|
(endianness big))
|
||||||
|
((string=? "aarch64" cpu)
|
||||||
|
(endianness little))
|
||||||
|
+ ((string-match "riscv[1-9][0-9]*" cpu)
|
||||||
|
+ (endianness little))
|
||||||
|
(else
|
||||||
|
(error "unknown CPU endianness" cpu)))))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user