diff options
author | Efraim Flashner <efraim@flashner.co.il> | 2023-05-03 16:13:38 +0300 |
---|---|---|
committer | Efraim Flashner <efraim@flashner.co.il> | 2023-05-07 19:29:43 +0300 |
commit | 956672129235b8d6f44a9bb4e284f58ddb44d4e9 (patch) | |
tree | acefbcb1414a540fe54239e3290efc390fdddbd4 | |
parent | f88591857e68fd9df4acbb7d9addc07dc242f417 (diff) | |
download | guix-956672129235b8d6f44a9bb4e284f58ddb44d4e9.tar.gz guix-956672129235b8d6f44a9bb4e284f58ddb44d4e9.zip |
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.
-rw-r--r-- | gnu/packages/rust.scm | 14 |
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)))) |