Guile: Fix cross-compilation

(cherry picked from commit f79fa77941)
This commit is contained in:
Shea Levy 2018-02-25 20:36:43 -05:00 committed by John Ericson
parent f2004e6287
commit 0fcad047b9
3 changed files with 23 additions and 10 deletions

View File

@ -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);

View File

@ -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);

View 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)))))