[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
13/14: gnu: rust: Add support for building 32-bit packages on 64-bit hos
From: |
Ludovic Courtès |
Subject: |
13/14: gnu: rust: Add support for building 32-bit packages on 64-bit hosts. |
Date: |
Fri, 1 Jun 2018 07:52:20 -0400 (EDT) |
civodul pushed a commit to branch master
in repository guix.
commit 514026d7de36b299238aff9dfcc2f898fb04072a
Author: Robin Templeton <address@hidden>
Date: Tue May 29 12:02:41 2018 -0400
gnu: rust: Add support for building 32-bit packages on 64-bit hosts.
* gnu/packages/rust.scm (rust-bootstrap, rust-1.23): Use
nix-system->gnu-triplet to determine the system type.
(rust-1.19): Use readelf instead of nm in the atomic-lock-free test.
(rust-1.23): Disable the cargo_test_env test. Disable parallel execution of
tests.
Signed-off-by: Ludovic Courtès <address@hidden>
---
gnu/packages/rust.scm | 62 +++++++++++++++++++++++++++++++--------------------
1 file changed, 38 insertions(+), 24 deletions(-)
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 51d4f6c..62b5ee5 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -63,32 +63,34 @@
(package
(name "rust-bootstrap")
(version "1.22.1")
- (source (origin
- (method url-fetch)
- (uri (string-append
- "https://static.rust-lang.org/dist/"
- "rust-" version "-" %host-type ".tar.gz"))
- (sha256
- (base32
- (match %host-type
- ("i686-unknown-linux-gnu"
- "15zqbx86nm13d5vq2gm69b7av4vg479f74b5by64hs3bcwwm08pr")
- ("x86_64-unknown-linux-gnu"
- "1yll78x6b3abnvgjf2b66gvp6mmcb9y9jdiqcwhmgc0z0i0fix4c")
- ("armv7-unknown-linux-gnueabihf"
- "138a8l528kzp5wyk1mgjaxs304ac5ms8vlpq0ggjaznm6bn2j7a5")
- ("aarch64-unknown-linux-gnu"
- "0z6m9m1rx4d96nvybbfmpscq4dv616m615ijy16d5wh2vx0p4na8")
- ("mips64el-unknown-linux-gnuabi64"
- "07k4pcv7jvfa48cscdj8752lby7m7xdl88v3a6na1vs675lhgja2")
- (_ ""))))))
+ (source #f)
(build-system gnu-build-system)
(native-inputs
`(("patchelf" ,patchelf)))
(inputs
`(("gcc" ,(canonical-package gcc))
("gcc:lib" ,(canonical-package gcc) "lib")
- ("zlib" ,zlib)))
+ ("zlib" ,zlib)
+ ("source"
+ ,(origin
+ (method url-fetch)
+ (uri (string-append
+ "https://static.rust-lang.org/dist/"
+ "rust-" version "-" (nix-system->gnu-triplet) ".tar.gz"))
+ (sha256
+ (base32
+ (match (nix-system->gnu-triplet)
+ ("i686-unknown-linux-gnu"
+ "15zqbx86nm13d5vq2gm69b7av4vg479f74b5by64hs3bcwwm08pr")
+ ("x86_64-unknown-linux-gnu"
+ "1yll78x6b3abnvgjf2b66gvp6mmcb9y9jdiqcwhmgc0z0i0fix4c")
+ ("armv7-unknown-linux-gnueabihf"
+ "138a8l528kzp5wyk1mgjaxs304ac5ms8vlpq0ggjaznm6bn2j7a5")
+ ("aarch64-unknown-linux-gnu"
+ "0z6m9m1rx4d96nvybbfmpscq4dv616m615ijy16d5wh2vx0p4na8")
+ ("mips64el-unknown-linux-gnuabi64"
+ "07k4pcv7jvfa48cscdj8752lby7m7xdl88v3a6na1vs675lhgja2")
+ (_ ""))))))))
(outputs '("out" "cargo"))
(arguments
`(#:tests? #f
@@ -117,7 +119,7 @@
(invoke "bash" "install.sh"
(string-append "--prefix=" out)
(string-append "--components=rustc,"
- "rust-std-" %host-type))
+ "rust-std-" ,(nix-system->gnu-triplet)))
;; Instal cargo
(invoke "bash" "install.sh"
(string-append "--prefix=" cargo-out)
@@ -196,6 +198,12 @@ in turn be used to build the final Rust.")
;; This test is known to fail on aarch64 and powerpc64le:
;; https://github.com/rust-lang/rust/issues/45410
(("fn test_loading_cosine") "#[ignore]\nfn
test_loading_cosine"))
+ ;; nm doesn't recognize the file format because of the
+ ;; nonstandard sections used by the Rust compiler, but readelf
+ ;; ignores them.
+ (substitute* "src/test/run-make/atomic-lock-free/Makefile"
+ (("\tnm ")
+ "\treadelf -c "))
#t)))
(add-after 'patch-source-shebangs 'patch-cargo-checksums
(lambda* _
@@ -386,6 +394,10 @@ safety and thread safety guarantees.")
(substitute* "src/tools/cargo/tests/death.rs"
;; This is stuck when built in container.
(("fn ctrl_c_kills_everyone") "#[ignore]\nfn
ctrl_c_kills_everyone"))
+ ;; Prints test output in the wrong order when built on
+ ;; i686-linux.
+ (substitute* "src/tools/cargo/tests/test.rs"
+ (("fn cargo_test_env") "#[ignore]\nfn cargo_test_env"))
#t))
(add-after 'patch-cargo-tests 'fix-mtime-bug
(lambda* _
@@ -433,7 +445,7 @@ rpath = true
# codegen/mainsubprogram.rs and codegen/mainsubprogramstart.rs
# This tests required patched LLVM
codegen-tests = false
-[target." %host-type "]
+[target." ,(nix-system->gnu-triplet) "]
llvm-config = \"" llvm "/bin/llvm-config" "\"
cc = \"" gcc "/bin/gcc" "\"
cxx = \"" gcc "/bin/g++" "\"
@@ -456,8 +468,10 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
(invoke "./x.py" "build" "src/tools/cargo")))
(replace 'check
(lambda* _
- (invoke "./x.py" "test")
- (invoke "./x.py" "test" "src/tools/cargo")))
+ ;; Disable parallel execution to prevent EAGAIN errors when
+ ;; running tests.
+ (invoke "./x.py" "-j1" "test")
+ (invoke "./x.py" "-j1" "test" "src/tools/cargo")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(invoke "./x.py" "install")
- branch master updated (8674abb -> 5d66988), Ludovic Courtès, 2018/06/01
- 07/14: gnu: Add ghc-ifelse., Ludovic Courtès, 2018/06/01
- 02/14: marionette: Add 'wait-for-tcp-port'., Ludovic Courtès, 2018/06/01
- 01/14: gnu: emacs-w3m: Update and allow builds with Emacs 26., Ludovic Courtès, 2018/06/01
- 05/14: gnu: Add ghc-bloomfilter., Ludovic Courtès, 2018/06/01
- 08/14: gnu: Add ghc-esqueleto., Ludovic Courtès, 2018/06/01
- 10/14: gnu: ghc-psqueues: Allow building with newer versions of QuickCheck., Ludovic Courtès, 2018/06/01
- 13/14: gnu: rust: Add support for building 32-bit packages on 64-bit hosts.,
Ludovic Courtès <=
- 09/14: gnu: Add ghc-safesemaphore., Ludovic Courtès, 2018/06/01
- 03/14: gnu: Add hpcguix-web., Ludovic Courtès, 2018/06/01
- 06/14: gnu: Add ghc-feed., Ludovic Courtès, 2018/06/01
- 11/14: gnu: Add ghc-disk-free-space., Ludovic Courtès, 2018/06/01
- 04/14: services: Add hpcguix-web., Ludovic Courtès, 2018/06/01
- 14/14: gexp: 'compiled-modules' no longer overrides (guix build utils)., Ludovic Courtès, 2018/06/01
- 12/14: gnu: Add git-annex., Ludovic Courtès, 2018/06/01