summaryrefslogtreecommitdiff
path: root/gnu/packages/rust.scm
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2023-05-03 16:13:38 +0300
committerEfraim Flashner <efraim@flashner.co.il>2023-05-07 19:29:43 +0300
commit956672129235b8d6f44a9bb4e284f58ddb44d4e9 (patch)
treeacefbcb1414a540fe54239e3290efc390fdddbd4 /gnu/packages/rust.scm
parentf88591857e68fd9df4acbb7d9addc07dc242f417 (diff)
gnu: rust: Re-enable aarch64-linux support.
* gnu/packages/rust.scm (rust)[arguments]: Only enable parallel-builds on x86_64-linux. Add a make-flag to adjust CFLAGS. In the custom 'build phase remove an unneeded environment variable. [supported-architectures]: Add aarch64-linux.
Diffstat (limited to 'gnu/packages/rust.scm')
-rw-r--r--gnu/packages/rust.scm14
1 files changed, 10 insertions, 4 deletions
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index f564133ecd..8e106a9927 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -197,6 +197,9 @@
;; Rust's own .so library files are not found in any RUNPATH, but
;; that doesn't seem to cause issues.
#:validate-runpath? #f
+ ;; Most of the build is single-threaded. This also improves the
+ ;; build time on machines with "only" 8GB of RAM.
+ #:parallel-build? ,(target-x86-64?)
#:make-flags
(list ,(string-append "RUSTC_TARGET="
(or (%current-target-system)
@@ -204,6 +207,10 @@
,(string-append "RUSTC_VERSION=" version)
,(string-append "MRUSTC_TARGET_VER="
(version-major+minor version))
+ ;; mrustc expects a C11 compatible compiler. Use the default
+ ;; C language dialect from the GCC-10 compiler.
+ ;; This is necessary for some architectures.
+ "CFLAGS=-std=gnu11"
"OUTDIR_SUF=") ;do not add version suffix to output dir
#:phases
(modify-phases %standard-phases
@@ -302,7 +309,6 @@
;; Use PARLEVEL since both minicargo and mrustc use it
;; to set the level of parallelism.
(setenv "PARLEVEL" (number->string job-count))
- (setenv "CARGO_BUILD_JOBS" (number->string job-count))
(display "Building mrustc...\n")
(apply invoke "make" make-flags)
@@ -354,9 +360,9 @@ safety and thread safety guarantees.")
;; therefore the build process needs 8GB of RAM while building.
;; It may support i686 soon:
;; <https://github.com/thepowersgang/mrustc/issues/78>.
- ;; XXX: The rust bootstrap is currently broken on aarch64 and riscv64,
- ;; remove them until this is fixed.
- (supported-systems '("x86_64-linux"))
+ ;; XXX: The rust bootstrap is currently broken on riscv64,
+ ;; remove it until this is fixed.
+ (supported-systems '("x86_64-linux" "aarch64-linux"))
;; Dual licensed.
(license (list license:asl2.0 license:expat))))