Package: guix-patches;
Reported by: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Date: Sun, 18 May 2025 16:08:02 UTC
Severity: normal
Tags: patch
To reply to this bug, email your comments to 78484 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
divya <at> subvertising.org, efraim <at> flashner.co.il, hako <at> ultrarare.space, steve <at> futurile.net, guix-patches <at> gnu.org
:bug#78484
; Package guix-patches
.
(Sun, 18 May 2025 16:08:02 GMT) Full text and rfc822 format available.Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
:divya <at> subvertising.org, efraim <at> flashner.co.il, hako <at> ultrarare.space, steve <at> futurile.net, guix-patches <at> gnu.org
.
(Sun, 18 May 2025 16:08:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> To: guix-patches <at> gnu.org Cc: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> Subject: [PATCH] rust: Bootstrap from version 1.74.0. Date: Mon, 19 May 2025 01:06:42 +0900
This is made possible thanks to mrustc's continued advances. * gnu/packages/rust.scm (%mrustc-commit): Update. (%mrustc-source): Update to version 0.11.2. (rust-bootstrap): Update to 1.74.0. [source]: Update snippet. [inputs]: Replace llvm-13 with llvm-15. Replace openssl-1.1 with openssl. (rust-1.55): Adapt into... (rust-1.75): ... this. (rust-1.76) [arguments] <#:phases>: Add patch-cargo-checksums. [source]: Do not inherit modules, snippet. Clear patches. [inputs]: Replace llvm-13 with llvm-15. (rust-1.56, rust-1.57, rust-1.58, rust-1.59, rust-1.60) (rust-1.61, rust-1.62, rust-1.63, rust-1.64, rust-1.65) (rust-1.66, rust-1.67, rust-1.68, rust-1.69, rust-1.70) (rust-1.71, rust-1.72, rust-1.73, rust-1.74): Delete variables. Change-Id: Ifdf13f83103a087a5ff7ea8b44206a2ef310dafc --- gnu/packages/rust.scm | 480 ++++-------------------------------------- 1 file changed, 38 insertions(+), 442 deletions(-) diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index abaf7166fd5..37afe2f2861 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2020, 2021 Jakub Kądziołka <kuba <at> kadziolka.net> ;;; Copyright © 2020 Pierre Langlois <pierre.langlois <at> gmx.com> ;;; Copyright © 2020 Matthew James Kraai <kraai <at> ftbfs.org> -;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer <at> gmail.com> +;;; Copyright © 2021, 2025 Maxim Cournoyer <maxim.cournoyer <at> gmail.com> ;;; Copyright © 2021 (unmatched parenthesis <paren <at> disroot.org> ;;; Copyright © 2022 Zheng Junjie <873216071 <at> qq.com> ;;; Copyright © 2022 Jim Newsome <jnewsome <at> torproject.org> @@ -128,11 +128,11 @@ (define* (rust-bootstrapped-package base-rust version checksum) ;;; Note: mrustc's only purpose is to be able to bootstap Rust; it's designed ;;; to be used in source form. -(define %mrustc-commit "5e01a76097265f4bb27b18885b9af3f2778180f9") +(define %mrustc-commit "2a9ab55bbaa706544858ab0968180e665fe7ff4a") (define %mrustc-source - (let* ((version "0.11.0") + (let* ((version "0.11.2") (commit %mrustc-commit) - (revision "1") + (revision "0") (name "mrustc")) (origin (method git-fetch) @@ -141,7 +141,7 @@ (define %mrustc-source (commit %mrustc-commit))) (file-name (git-file-name name (git-version version revision commit))) (sha256 - (base32 "1yyjfl1z6d5r9sv7zl90kqyjw1lqd2cqzwh2syi7yvrpslhihrhy")) + (base32 "177c4yr62gh9g85h3w472ybkl9mh2cx6hpp3k6n7i2zbcpd7wvqx")) (patches (search-patches "mrustc-patches.patch")) (modules '((guix build utils))) (snippet @@ -155,17 +155,17 @@ (define %mrustc-source (substitute* "minicargo.mk" (("--features vendored-openssl") ""))))))) -;;; Rust 1.54 is special in that it is built with mrustc, which shortens the +;;; Rust 1.74 is special in that it is built with mrustc, which shortens the ;;; bootstrap path. (define-public rust-bootstrap (package (name "rust") - (version "1.54.0") + (version "1.74.0") (source (origin (method url-fetch) (uri (rust-uri version)) - (sha256 (base32 "0xk9dhfff16caambmwij67zgshd8v9djw6ha0fnnanlv7rii31dc")) + (sha256 (base32 "0j8hrwjjjjf7spy0hy7gami96swhfzr6kandfzzdri91qd5mhaw8")) (modules '((guix build utils))) (snippet '(begin @@ -175,17 +175,14 @@ (define-public rust-bootstrap "vendor/tikv-jemalloc-sys/jemalloc")) ;; Remove vendored dynamically linked libraries. ;; find . -not -type d -executable -exec file {} \+ | grep ELF - (delete-file "vendor/vte/vim10m_match") - (delete-file "vendor/vte/vim10m_table") ;; Also remove the bundled (mostly Windows) libraries. - ;; find vendor -not -type d -exec file {} \+ | grep PE32 (for-each delete-file (find-files "vendor" "\\.(a|dll|exe|lib)$")) - ;; Adjust some sources for llvm-13, see llvm commit - ;; acce401068e78a8c5dc9e06802111ffad3da763f - (substitute* (find-files "." "powerpc64le_unknown_linux_gnu.rs") - (("e-m:e-i64:64-n32:64-v256:256:256-v512:512:512") - "e-m:e-i64:64-n32:64-S128-v256:256:256-v512:512:512")))))) + ;; Adjust vendored dependency to explicitly use rustix with libc backend. + (substitute* "vendor/tempfile/Cargo.toml" + (("features = \\[\"fs\"" all) + (string-append all ", \"use-libc\""))))) + (patches (search-patches "rust-1.70-fix-rustix-build.patch")))) (outputs '("out" "cargo")) (properties '((hidden? . #t) (timeout . 129600) ;36 hours @@ -193,8 +190,8 @@ (define-public rust-bootstrap (build-system gnu-build-system) (inputs (list bash-minimal - llvm-13 - openssl-1.1 + llvm-15 + openssl zlib)) (native-inputs `(("pkg-config" ,pkg-config) @@ -212,14 +209,14 @@ (define-public rust-bootstrap ,#~(let ((source #$(package-source this-package))) (list (string-append "RUSTC_TARGET=" #$(platform-rust-target - (lookup-platform-by-target-or-system - (or (%current-target-system) - (%current-system))))) + (lookup-platform-by-target-or-system + (or (%current-target-system) + (%current-system))))) (string-append "RUSTC_VERSION=" #$version) (string-append "MRUSTC_TARGET_VER=" #$(version-major+minor version)) (string-append "RUSTC_SRC_TARBALL=" source) - "OUTDIR_SUF=")) ;do not add version suffix to output dir + "OUTDIR_SUF=")) ;do not add version suffix to output dir #:phases (modify-phases %standard-phases (replace 'unpack @@ -274,7 +271,7 @@ (define-public rust-bootstrap (parallel-job-count) 1))) ;; Adapted from: - ;; https://github.com/dtolnay/bootstrap/blob/master/build-1.54.0.sh. + ;; https://github.com/dtolnay/bootstrap/blob/master/build-1.74.0.sh. ;; Use PARLEVEL since both minicargo and mrustc use it ;; to set the level of parallelism. (setenv "PARLEVEL" (number->string job-count)) @@ -290,7 +287,6 @@ (define-public rust-bootstrap (display "Building LIBS...\n") (apply invoke "make" "-f" "minicargo.mk" "LIBS" make-flags) - ;; The psm crate FTBFS on ppc64le with gcc. (display "Building rustc...\n") (apply invoke "make" "-f" "minicargo.mk" "output/rustc" make-flags) @@ -311,11 +307,11 @@ (define-public rust-bootstrap (cargo-bin (string-append cargo "/bin")) (lib (string-append out "/lib")) (system-lib-prefix - (string-append lib "/rustlib/" - ,(platform-rust-target - (lookup-platform-by-target-or-system - (or (%current-target-system) - (%current-system)))) "/lib"))) + (string-append lib "/rustlib/" + ,(platform-rust-target + (lookup-platform-by-target-or-system + (or (%current-target-system) + (%current-system)))) "/lib"))) (mkdir-p (dirname rustc)) (copy-file "run_rustc/output/prefix/bin/rustc_binary" rustc) (wrap-program rustc @@ -339,34 +335,18 @@ (define-public rust-bootstrap ;; Dual licensed. (license (list license:asl2.0 license:expat)))) -(define-public rust-1.55 +(define-public rust-1.75 (package (name "rust") - (version "1.55.0") + (version "1.75.0") (source (origin + (inherit (package-source rust-bootstrap)) (method url-fetch) (uri (rust-uri version)) - (sha256 (base32 "07l28f7grdmi65naq71pbmvdd61hwcpi40ry7kp7dy7m233rldxj")) - (modules '((guix build utils))) - (snippet - '(begin - (for-each delete-file-recursively - '("src/llvm-project" - "vendor/openssl-src/openssl" - "vendor/tikv-jemalloc-sys/jemalloc")) - ;; Remove vendored dynamically linked libraries. - ;; find . -not -type d -executable -exec file {} \+ | grep ELF - (delete-file "vendor/vte/vim10m_match") - (delete-file "vendor/vte/vim10m_table") - ;; Also remove the bundled (mostly Windows) libraries. - ;; find vendor -not -type d -exec file {} \+ | grep PE32 - (for-each delete-file - (find-files "vendor" "\\.(a|dll|exe|lib)$")) - ;; Add support for riscv64-linux. - (substitute* "vendor/tikv-jemallocator/src/lib.rs" - ((" target_arch = \"s390x\"," all) - (string-append all "\n target_arch = \"riscv64\","))))))) + (sha256 + (base32 "1260mf3066ki6y55pvr35lnf54am6z96a3ap3hniwd4xpi2rywsv")) + (patches '()))) (outputs '("out" "cargo")) (properties '((hidden? . #t) (timeout . 72000) ;20 hours @@ -492,7 +472,7 @@ (define-public rust-1.55 ("cargo-bootstrap" ,rust-bootstrap "cargo"))) (inputs `(("bash" ,bash-minimal) - ("llvm" ,llvm-13) + ("llvm" ,llvm-15) ("openssl" ,openssl))) ;; rustc invokes gcc, so we need to set its search paths accordingly. (native-search-paths @@ -506,411 +486,27 @@ (define-public rust-1.55 ;; Dual licensed. (license (list license:asl2.0 license:expat)))) -(define-public rust-1.56 +(define-public rust-1.76 (let ((base-rust (rust-bootstrapped-package - rust-1.55 "1.56.1" - "04cmqx7nn63hzz7z27b2b0dj2qx18rck9ifvip43s6dampx8v2f3"))) - (package - (inherit base-rust) - (arguments - (substitute-keyword-arguments - (strip-keyword-arguments '(#:validate-runpath?) - (package-arguments base-rust)) - ((#:phases phases) - `(modify-phases ,phases - (delete 'add-cc-shim-to-path) - (add-after 'patch-generated-file-shebangs 'patch-cargo-checksums - (lambda _ - (substitute* "Cargo.lock" - (("(checksum = )\".*\"" all name) - (string-append name "\"" ,%cargo-reference-hash "\""))) - (generate-all-checksums "vendor")))))))))) - -(define-public rust-1.57 - (rust-bootstrapped-package - ;; Verified that it *doesn't* build with 1.55. e.g.: - ;; * feature `edition2021` is required - rust-1.56 "1.57.0" "06jw8ka2p3kls8p0gd4p0chhhb1ia1mlvj96zn78n7qvp71zjiim")) - -(define-public rust-1.58 - (rust-bootstrapped-package - ;; Verified that it *doesn't* build with 1.56. e.g.: - ;; * error: attributes starting with `rustc` are reserved for use by the - ;; `rustc` compiler - ;; * error: cannot find attribute `rustc_do_not_const_check` in this scope - ;; * error[E0522]: definition of an unknown language item: - ;; `const_eval_select_ct` - rust-1.57 "1.58.1" "1iq7kj16qfpkx8gvw50d8rf7glbm6s0pj2y1qkrz7mi56vfsyfd8")) - -(define-public rust-1.59 - (let ((base-rust - (rust-bootstrapped-package - ;; Verified that it *doesn't* build with 1.57. e.g.: - ;; * error: `doc(primitive)` should never have been stable - ;; * error[E0522]: definition of an unknown language item: - ;; `generator_return` - ;; * error[E0206]: the trait `Copy` may not be implemented for this type - rust-1.58 "1.59.0" "1yc5bwcbmbwyvpfq7zvra78l0r8y3lbv60kbr62fzz2vx2pfxj57"))) - (package - (inherit base-rust) - (arguments - (if (target-riscv64?) - (substitute-keyword-arguments (package-arguments base-rust) - ((#:phases phases) - `(modify-phases ,phases - (add-after 'unpack 'revert-riscv-pause-instruction - (lambda _ - ;; This fails with: - ;; error: unknown directive, referring to '.insn'. - ;; This is due to building with llvm < 14. - ;; https://github.com/rust-lang/stdarch/issues/1291 - ;; Partial roll-back from this commit: - ;; https://github.com/rust-lang/stdarch/pull/1271 - (substitute* - "library/stdarch/crates/core_arch/src/riscv_shared/mod.rs" - (("\\.insn i 0x0F, 0, x0, x0, 0x010") ".word 0x0100000F"))))))) - (package-arguments base-rust)))))) - -(define-public rust-1.60 - (rust-bootstrapped-package - ;; Verified that it *doesn't* build with 1.58. e.g.: - ;; * error: unknown codegen option: `symbol-mangling-version` - rust-1.59 "1.60.0" "1drqr0a26x1rb2w3kj0i6abhgbs3jx5qqkrcwbwdlx7n3inq5ji0")) - -(define-public rust-1.61 - (let ((base-rust - (rust-bootstrapped-package - rust-1.60 "1.61.0" "1vfs05hkf9ilk19b2vahqn8l6k17pl9nc1ky9kgspaascx8l62xd"))) - (package - (inherit base-rust) - (source - (origin - (inherit (package-source base-rust)) - (snippet - '(begin - (for-each delete-file-recursively - '("src/llvm-project" - "vendor/openssl-src/openssl" - "vendor/tikv-jemalloc-sys/jemalloc")) - ;; Remove vendored dynamically linked libraries. - ;; find . -not -type d -executable -exec file {} \+ | grep ELF - (delete-file "vendor/vte/vim10m_match") - (delete-file "vendor/vte/vim10m_table") - ;; Also remove the bundled (mostly Windows) libraries. - (for-each delete-file - (find-files "vendor" "\\.(a|dll|exe|lib)$"))))))))) - -(define-public rust-1.62 - (rust-bootstrapped-package - rust-1.61 "1.62.1" "0gqkg34ic77dcvsz69qbdng6g3zfhl6hnhx7ha1mjkyrzipvxb3j")) - -(define-public rust-1.63 - (rust-bootstrapped-package - rust-1.62 "1.63.0" "1l4rrbzhxv88pnfq94nbyb9m6lfnjwixma3mwjkmvvs2aqlq158z")) - -(define-public rust-1.64 - (let ((base-rust - (rust-bootstrapped-package - rust-1.63 "1.64.0" "018j720b2n12slp4xk64jc6shkncd46d621qdyzh2a8s3r49zkdk"))) - (package - (inherit base-rust) - (source - (origin - (inherit (package-source base-rust)) - (snippet - '(begin - (for-each delete-file-recursively - '("src/llvm-project" - "vendor/openssl-src/openssl" - "vendor/tikv-jemalloc-sys/jemalloc")) - ;; ERROR: could not find native static library - ;; `rustix_outline_powerpc64`, perhaps an -L flag is missing? - ;; Adjust rustix to always build with cc. - (substitute* "src/bootstrap/Cargo.lock" - (("\"errno\",") "\"cc\",\n \"errno\",")) - ;; Add a dependency on the the 'cc' feature of rustix. - (substitute* "vendor/fd-lock/Cargo.toml" - (("\"fs\"") "\"fs\", \"cc\"")) - ;; Remove vendored dynamically linked libraries. - ;; find . -not -type d -executable -exec file {} \+ | grep ELF - (delete-file "vendor/vte/vim10m_match") - (delete-file "vendor/vte/vim10m_table") - ;; Also remove the bundled (mostly Windows) libraries. - (for-each delete-file - (find-files "vendor" "\\.(a|dll|exe|lib)$")))) - (patches (search-patches "rust-1.64-fix-riscv64-bootstrap.patch")) - (patch-flags '("-p1" "--reverse")))) - (arguments - (substitute-keyword-arguments (package-arguments base-rust) - ((#:phases phases) - `(modify-phases ,phases - (replace 'patch-cargo-checksums - (lambda _ - (substitute* '("Cargo.lock" - "src/bootstrap/Cargo.lock" - "src/tools/rust-analyzer/Cargo.lock") - (("(checksum = )\".*\"" all name) - (string-append name "\"" ,%cargo-reference-hash "\""))) - (generate-all-checksums "vendor")))))))))) - -(define-public rust-1.65 - (let ((base-rust - (rust-bootstrapped-package - rust-1.64 "1.65.0" "0f005kc0vl7qyy298f443i78ibz71hmmh820726bzskpyrkvna2q"))) - (package - (inherit base-rust) - (source - (origin - (inherit (package-source base-rust)) - (patches '()) - (patch-flags '("-p1"))))))) - -(define-public rust-1.66 - (rust-bootstrapped-package - rust-1.65 "1.66.1" "1fjr94gsicsxd2ypz4zm8aad1zdbiccr7qjfbmq8f8f7jhx96g2v")) - -(define-public rust-1.67 - (let ((base-rust - (rust-bootstrapped-package - rust-1.66 "1.67.1" "0vpzv6rm3w1wbni17ryvcw83k5klhghklylfdza3nnp8blz3sj26"))) - (package - (inherit base-rust) - (source - (origin - (inherit (package-source base-rust)) - (snippet - '(begin - (for-each delete-file-recursively - '("src/llvm-project" - "vendor/openssl-src/openssl" - "vendor/tikv-jemalloc-sys/jemalloc")) - ;; Adjust rustix to always build with cc. - (substitute* '("Cargo.lock" - "src/bootstrap/Cargo.lock") - (("\"errno\",") "\"cc\",\n \"errno\",")) - ;; Add a dependency on the the 'cc' feature of rustix. - (substitute* "vendor/fd-lock/Cargo.toml" - (("\"fs\"") "\"fs\", \"cc\"")) - (substitute* "vendor/is-terminal/Cargo.toml" - (("\"termios\"") "\"termios\", \"cc\"")) - ;; Remove vendored dynamically linked libraries. - ;; find . -not -type d -executable -exec file {} \+ | grep ELF - (delete-file "vendor/vte/vim10m_match") - (delete-file "vendor/vte/vim10m_table") - ;; Also remove the bundled (mostly Windows) libraries. - (for-each delete-file - (find-files "vendor" "\\.(a|dll|exe|lib)$")))))) - (inputs (modify-inputs (package-inputs base-rust) - (replace "llvm" llvm-15)))))) - -(define-public rust-1.68 - (rust-bootstrapped-package - rust-1.67 "1.68.2" "15ifyd5jj8rd979dkakp887hgmhndr68pqaqvd2hqkfdywirqcwk")) - -(define-public rust-1.69 - (let ((base-rust - (rust-bootstrapped-package - rust-1.68 "1.69.0" - "03zn7kx5bi5mdfsqfccj4h8gd6abm7spj0kjsfxwlv5dcwc9f1gv"))) - (package - (inherit base-rust) - (source - (origin - (inherit (package-source base-rust)) - (snippet - '(begin - (for-each delete-file-recursively - '("src/llvm-project" - "vendor/openssl-src/openssl" - "vendor/tikv-jemalloc-sys/jemalloc")) - ;; Adjust rustix to always build with cc. - (substitute* '("Cargo.lock" - "src/bootstrap/Cargo.lock") - (("\"errno\",") "\"cc\",\n \"errno\",")) - ;; Add a dependency on the the 'cc' feature of rustix. - (substitute* "vendor/fd-lock/Cargo.toml" - (("\"fs\"") "\"fs\", \"cc\"")) - (substitute* "vendor/is-terminal/Cargo.toml" - (("\"termios\"") "\"termios\", \"cc\"")) - ;; Also remove the bundled (mostly Windows) libraries. - (for-each delete-file - (find-files "vendor" "\\.(a|dll|exe|lib)$"))))))))) - -(define-public rust-1.70 - (let ((base-rust - (rust-bootstrapped-package - rust-1.69 "1.70.0" - "0z6j7d0ni0rmfznv0w3mrf882m11kyh51g2bxkj40l3s1c0axgxj"))) - (package - (inherit base-rust) - (source - (origin - (inherit (package-source base-rust)) - (snippet - '(begin - (for-each delete-file-recursively - '("src/llvm-project" - "vendor/openssl-src/openssl" - "vendor/tikv-jemalloc-sys/jemalloc")) - ;; Adjust rustix to always build with cc. - (substitute* "Cargo.lock" - (("\"errno\",") "\"cc\",\n \"errno\",")) - ;; Add a dependency on the the 'cc' feature of rustix. - (substitute* '("vendor/is-terminal/Cargo.toml" - "vendor/is-terminal-0.4.4/Cargo.toml") - (("\"termios\"") "\"termios\", \"cc\"")) - ;; Also remove the bundled (mostly Windows) libraries. - (for-each delete-file - (find-files "vendor" "\\.(a|dll|exe|lib)$")))) - ;; Rust 1.70 adds the rustix library which depends on the vendored - ;; fd-lock crate. The fd-lock crate uses Outline assembly which expects - ;; a precompiled static library. Enabling the "cc" feature tells the - ;; build.rs script to compile the assembly files instead of searching - ;; for a precompiled library. - (patches (search-patches "rust-1.70-fix-rustix-build.patch"))))))) - -(define-public rust-1.71 - (let ((base-rust - (rust-bootstrapped-package - rust-1.70 "1.71.1" "0bj79syjap1kgpg9pc0r4jxc0zkxwm6phjf3digsfafms580vabg"))) + rust-1.75 "1.76.0" + "08f06shp6l72qrv5fwg1is7yzr6kwj8av0l9h5k243bz781zyp4y"))) (package (inherit base-rust) - (source - (origin - (inherit (package-source base-rust)) - (snippet - '(begin - (for-each delete-file-recursively - '("src/llvm-project" - "vendor/openssl-src/openssl" - "vendor/tikv-jemalloc-sys/jemalloc")) - ;; Adjust rustix to always build with cc. - (substitute* '("Cargo.lock" - "src/tools/cargo/Cargo.lock") - (("\"errno\",") "\"cc\",\n \"errno\",")) - ;; Add a dependency on the the 'cc' feature of rustix. - (substitute* '("vendor/is-terminal/Cargo.toml" - "vendor/is-terminal-0.4.6/Cargo.toml") - (("\"termios\"") "\"termios\", \"cc\"")) - ;; Also remove the bundled (mostly Windows) libraries. - (for-each delete-file - (find-files "vendor" "\\.(a|dll|exe|lib)$")))))) (arguments (substitute-keyword-arguments (package-arguments base-rust) ((#:phases phases) `(modify-phases ,phases - (replace 'patch-cargo-checksums + (add-after 'patch-generated-file-shebangs 'patch-cargo-checksums (lambda _ (substitute* (cons* "Cargo.lock" "src/bootstrap/Cargo.lock" (find-files "src/tools" "Cargo.lock")) (("(checksum = )\".*\"" all name) (string-append name "\"" ,%cargo-reference-hash "\""))) - (generate-all-checksums "vendor")))))))))) - -(define-public rust-1.72 - (let ((base-rust - (rust-bootstrapped-package - rust-1.71 "1.72.1" "15gqd1jzhnc16a7gjmav4x1v83jjbzyjh1gvcdfvpkajd9gq8j3z"))) - (package - (inherit base-rust) - (source - (origin - (inherit (package-source base-rust)) - (snippet - '(begin - (for-each delete-file-recursively - '("src/llvm-project" - "vendor/openssl-src/openssl" - "vendor/tikv-jemalloc-sys/jemalloc")) - ;; Remove vendored dynamically linked libraries. - ;; find . -not -type d -executable -exec file {} \+ | grep ELF - ;; Also remove the bundled (mostly Windows) libraries. - (for-each delete-file - (find-files "vendor" "\\.(a|dll|exe|lib)$")) - ;; Adjust some crates to explicitly use rustix with the libc backend. - (substitute* '("vendor/is-terminal/Cargo.toml" - "vendor/is-terminal-0.4.7/Cargo.toml") - (("\"termios\"") "\"termios\", \"use-libc\"")) - (substitute* "compiler/rustc_driver/Cargo.toml" - (("rustix = \"=0.37.11\"") - (string-append "rustix = { version = \"=0.37.11\"," - " features = [\"use-libc\"] }")))))))))) - -(define-public rust-1.73 - (let ((base-rust (rust-bootstrapped-package rust-1.72 "1.73.0" - "0fmvn7vg3qg9xprgfwv10g3ygy8i4j4bkcxcr1xdy89d3xnjxmln"))) - (package - (inherit base-rust) - (source - (origin - (inherit (package-source base-rust)) - (snippet - '(begin - (for-each delete-file-recursively - '("src/llvm-project" - "vendor/openssl-src/openssl" - "vendor/tikv-jemalloc-sys/jemalloc")) - ;; Remove vendored dynamically linked libraries. - ;; find . -not -type d -executable -exec file {} \+ | grep ELF - ;; Also remove the bundled (mostly Windows) libraries. - (for-each delete-file - (find-files "vendor" "\\.(a|dll|exe|lib)$")) - ;; Adjust vendored dependency to explicitly use rustix with libc backend. - (substitute* "vendor/tempfile-3.6.0/Cargo.toml" - (("features = \\[\"fs\"" all) - (string-append all ", \"use-libc\"")))))))))) - -(define-public rust-1.74 - (let ((base-rust (rust-bootstrapped-package rust-1.73 "1.74.1" - "07930r17dkj3dnsrmilywb6p9i2g2jx56ndfpa2wh8crzhi3xnv7"))) - (package - (inherit base-rust) - (source - (origin - (inherit (package-source base-rust)) - (snippet - '(begin - (for-each delete-file-recursively - '("src/llvm-project" - "vendor/openssl-src/openssl" - "vendor/tikv-jemalloc-sys/jemalloc")) - ;; Remove vendored dynamically linked libraries. - ;; find . -not -type d -executable -exec file {} \+ | grep ELF - ;; Also remove the bundled (mostly Windows) libraries. - (for-each delete-file - (find-files "vendor" "\\.(a|dll|exe|lib)$")) - ;; Adjust vendored dependency to explicitly use rustix with libc backend. - (substitute* "vendor/tempfile/Cargo.toml" - (("features = \\[\"fs\"" all) - (string-append all ", \"use-libc\""))))))) - (arguments - (if (target-riscv64?) - (substitute-keyword-arguments (package-arguments base-rust) - ((#:phases phases) - `(modify-phases ,phases - ;; This phase is no longer needed. - (delete 'revert-riscv-pause-instruction)))) - (package-arguments base-rust)))))) - -(define-public rust-1.75 - (let ((base-rust (rust-bootstrapped-package rust-1.74 "1.75.0" - "1260mf3066ki6y55pvr35lnf54am6z96a3ap3hniwd4xpi2rywsv"))) - (package - (inherit base-rust) - (source - (origin - (inherit (package-source base-rust)) - (patches '())))))) - -(define-public rust-1.76 - (let ((base-rust (rust-bootstrapped-package rust-1.75 "1.76.0" - "08f06shp6l72qrv5fwg1is7yzr6kwj8av0l9h5k243bz781zyp4y"))) - (package - (inherit base-rust) + (generate-all-checksums "vendor"))))))) ;; Need llvm >= 16.0 (inputs (modify-inputs (package-inputs base-rust) - (replace "llvm" llvm-17)))))) + (replace "llvm" llvm-17)))))) (define-public rust-1.77 (let ((base-rust (rust-bootstrapped-package rust-1.76 "1.77.1" base-commit: 6b5fc4812981f2cadffcc5d39e48cd8e02ee73af -- 2.49.0
guix-patches <at> gnu.org
:bug#78484
; Package guix-patches
.
(Mon, 19 May 2025 17:21:01 GMT) Full text and rfc822 format available.Message #8 received at 78484 <at> debbugs.gnu.org (full text, mbox):
From: Danny Milosavljevic <dannym <at> friendly-machines.com> To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> Cc: 78484 <at> debbugs.gnu.org, Hilton Chain <hako <at> ultrarare.space>, Steve George <steve <at> futurile.net>, Efraim Flashner <efraim <at> flashner.co.il>, Divya Ranjan Pattanaik <divya <at> subvertising.org> Subject: Re: [bug#78484] [PATCH] rust: Bootstrap from version 1.74.0. Date: Mon, 19 May 2025 19:20:28 +0200
Hi, I've tested it and first time around I got the following. Compiling std_detect v0.1.5 (/tmp/guix-build-rust-1.78.0.drv-0/rustc-1.78.0-src/library/stdarch/crates/std_detect) Compiling addr2line v0.21.0 error: rustc interrupted by SIGSEGV, printing backtrace /gnu/store/4vcl4ssmvd4wz6aaipkyy4zqv8kqrwdl-rust-1.77.1/lib/librustc_driver-b6c81eef2f88e71b.so(+0x7f0346)[0x7ffff41f0346] /gnu/store/zvlp3n8iwa1svxmwv4q22pv1pb1c9pjq-glibc-2.39/lib/libc.so.6(+0x3e560)[0x7ffff3860560] /gnu/store/4vcl4ssmvd4wz6aaipkyy4zqv8kqrwdl-rust-1.77.1/lib/librustc_driver-b6c81eef2f88e71b.so(+0x11847c5)[0x7ffff4b847c5] /gnu/store/4vcl4ssmvd4wz6aaipkyy4zqv8kqrwdl-rust-1.77.1/lib/librustc_driver-b6c81eef2f88e71b.so(_RNvXs1_NtCs12SYDhWUoCW_19rustc_mir_transform3gvnNtB5_7VnStateNtNtNtCslJ9B1MvaQX0_12rustc_middle3mir5visit10MutVisitor15visit_statement+0xfc)[0x7ffff4b8498c] /gnu/store/4vcl4ssmvd4wz6aaipkyy4zqv8kqrwdl-rust-1.77.1/lib/librustc_driver-b6c81eef2f88e71b.so(_RNvXNtCs12SYDhWUoCW_19rustc_mir_transform3gvnNtB2_3GVNNtNtCslJ9B1MvaQX0_12rustc_middle3mir7MirPass8run_pass+0x7e6)[0x7ffff4b865b6] /gnu/store/4vcl4ssmvd4wz6aaipkyy4zqv8kqrwdl-rust-1.77.1/lib/librustc_driver-b6c81eef2f88e71b.so(+0x111febb)[0x7ffff4b1febb] /gnu/store/4vcl4ssmvd4wz6aaipkyy4zqv8kqrwdl-rust-1.77.1/lib/librustc_driver-b6c81eef2f88e71b.so(_RNvCs12SYDhWUoCW_19rustc_mir_transform13optimized_mir+0x737)[0x7ffff4b2e667] /gnu/store/4vcl4ssmvd4wz6aaipkyy4zqv8kqrwdl-rust-1.77.1/lib/librustc_driver-b6c81eef2f88e71b.so(+0x1d70bce)[0x7ffff5770bce] /gnu/store/4vcl4ssmvd4wz6aaipkyy4zqv8kqrwdl-rust-1.77.1/lib/librustc_driver-b6c81eef2f88e71b.so(+0x1da6810)[0x7ffff57a6810] /gnu/store/4vcl4ssmvd4wz6aaipkyy4zqv8kqrwdl-rust-1.77.1/lib/librustc_driver-b6c81eef2f88e71b.so(+0x1f7a4c8)[0x7ffff597a4c8] /gnu/store/4vcl4ssmvd4wz6aaipkyy4zqv8kqrwdl-rust-1.77.1/lib/librustc_driver-b6c81eef2f88e71b.so(+0x1dd8f59)[0x7ffff57d8f59] /gnu/store/4vcl4ssmvd4wz6aaipkyy4zqv8kqrwdl-rust-1.77.1/lib/librustc_driver-b6c81eef2f88e71b.so(+0x2825576)[0x7ffff6225576] /gnu/store/4vcl4ssmvd4wz6aaipkyy4zqv8kqrwdl-rust-1.77.1/lib/librustc_driver-b6c81eef2f88e71b.so(_RNvNtNtCs3HcOcE3jXp0_14rustc_metadata5rmeta7encoder15encode_metadata+0x1331)[0x7ffff6233aa1] /gnu/store/4vcl4ssmvd4wz6aaipkyy4zqv8kqrwdl-rust-1.77.1/lib/librustc_driver-b6c81eef2f88e71b.so(_RNvNtCs3HcOcE3jXp0_14rustc_metadata2fs25encode_and_write_metadata+0x1c2)[0x7ffff6210452] /gnu/store/4vcl4ssmvd4wz6aaipkyy4zqv8kqrwdl-rust-1.77.1/lib/librustc_driver-b6c81eef2f88e71b.so(_RNvNtCsg4NmrJqdB1j_15rustc_interface6passes13start_codegen+0x197)[0x7ffff4360017] /gnu/store/4vcl4ssmvd4wz6aaipkyy4zqv8kqrwdl-rust-1.77.1/lib/librustc_driver-b6c81eef2f88e71b.so(+0x9d5988)[0x7ffff43d5988] /gnu/store/4vcl4ssmvd4wz6aaipkyy4zqv8kqrwdl-rust-1.77.1/lib/librustc_driver-b6c81eef2f88e71b.so(_RNvMs3_NtCsg4NmrJqdB1j_15rustc_interface7queriesNtB5_7Queries24codegen_and_build_linker+0x30)[0x7ffff43bad70] /gnu/store/4vcl4ssmvd4wz6aaipkyy4zqv8kqrwdl-rust-1.77.1/lib/librustc_driver-b6c81eef2f88e71b.so(+0x7a5553)[0x7ffff41a5553] /gnu/store/4vcl4ssmvd4wz6aaipkyy4zqv8kqrwdl-rust-1.77.1/lib/librustc_driver-b6c81eef2f88e71b.so(+0x7bf541)[0x7ffff41bf541] /gnu/store/4vcl4ssmvd4wz6aaipkyy4zqv8kqrwdl-rust-1.77.1/lib/librustc_driver-b6c81eef2f88e71b.so(+0x7e7380)[0x7ffff41e7380] /gnu/store/4vcl4ssmvd4wz6aaipkyy4zqv8kqrwdl-rust-1.77.1/lib/librustc_driver-b6c81eef2f88e71b.so(+0x7c7941)[0x7ffff41c7941] /gnu/store/4vcl4ssmvd4wz6aaipkyy4zqv8kqrwdl-rust-1.77.1/lib/libstd-2f49e6c5f8c62b26.so(rust_metadata_std_88c4550c1155c094+0x64535)[0x7ffff7edc535] /gnu/store/zvlp3n8iwa1svxmwv4q22pv1pb1c9pjq-glibc-2.39/lib/libc.so.6(+0x867f4)[0x7ffff38a87f4] /gnu/store/zvlp3n8iwa1svxmwv4q22pv1pb1c9pjq-glibc-2.39/lib/libc.so.6(+0xfd5e8)[0x7ffff391f5e8] note: we would appreciate a report at https://github.com/rust-lang/rust note: backtrace dumped due to SIGSEGV! resuming signal rustc exited with signal: 11 (SIGSEGV) error: could not compile `std` (lib) Caused by: process didn't exit successfully: `/tmp/guix-build-rust-1.78.0.drv-0/rustc-1.78.0-src/build/bootstrap/debug/rustc /tmp/guix-build-rust-1.78.0.drv-0/rustc-1.78.0-src/build/bootstrap/debug/rustc --crate-name std --edition=2021 library/std/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type dylib --crate-type rlib --emit=dep-info,link -C prefer-dynamic -C opt-level=3 -C embed-bitcode=no --cfg 'feature="addr2line"' --cfg 'feature="backtrace"' --cfg 'feature="gimli-symbolize"' --cfg 'feature="miniz_oxide"' --cfg 'feature="object"' --cfg 'feature="panic_unwind"' --cfg 'feature="std_detect_dlsym_getauxval"' --cfg 'feature="std_detect_file_io"' -Zunstable-options --check-cfg 'cfg(feature, values("addr2line", "backtrace", "compiler-builtins-c", "compiler-builtins-mangled-names", "compiler-builtins-mem", "compiler-builtins-no-asm", "compiler-builtins-weak-intrinsics", "gimli-symbolize", "llvm-libunwind", "miniz_oxide", "object", "panic-unwind", "panic_immediate_abort", "panic_unwind", "profiler", "profiler_builtins", "std_detect_dlsym_getauxval", "std_detect_env_override", "std_detect_file_io", "system-llvm-libunwind"))' -C metadata=5bd25c808e006461 -C extra-filename=-5bd25c808e006461 --out-dir /tmp/guix-build-rust-1.78.0.drv-0/rustc-1.78.0-src/build/x86_64-unknown-linux-gnu/stage0-std/x86_64-unknown-linux-gnu/release/deps --target x86_64-unknown-linux-gnu -L dependency=/tmp/guix-build-rust-1.78.0.drv-0/rustc-1.78.0-src/build/x86_64-unknown-linux-gnu/stage0-std/x86_64-unknown-linux-gnu/release/deps -L dependency=/tmp/guix-build-rust-1.78.0.drv-0/rustc-1.78.0-src/build/x86_64-unknown-linux-gnu/stage0-std/release/deps --extern 'priv:addr2line=/tmp/guix-build-rust-1.78.0.drv-0/rustc-1.78.0-src/build/x86_64-unknown-linux-gnu/stage0-std/x86_64-unknown-linux-gnu/release/deps/libaddr2line-57e69f6cf50b537d.rlib' --extern alloc=/tmp/guix-build-rust-1.78.0.drv-0/rustc-1.78.0-src/build/x86_64-unknown-linux-gnu/stage0-std/x86_64-unknown-linux-gnu/release/deps/liballoc-d53df70cb8adbb00.rlib --extern 'priv:cfg_if=/tmp/guix-build-rust-1.78.0.drv-0/rustc-1.78.0-src/build/x86_64-unknown-linux-gnu/stage0-std/x86_64-unknown-linux-gnu/release/deps/libcfg_if-5dc786e7f7c2e692.rlib' --extern 'priv:compiler_builtins=/tmp/guix-build-rust-1.78.0.drv-0/rustc-1.78.0-src/build/x86_64-unknown-linux-gnu/stage0-std/x86_64-unknown-linux-gnu/release/deps/libcompiler_builtins-886e136a2fd55680.rlib' --extern core=/tmp/guix-build-rust-1.78.0.drv-0/rustc-1.78.0-src/build/x86_64-unknown-linux-gnu/stage0-std/x86_64-unknown-linux-gnu/release/deps/libcore-8c94e8d207d10fe9.rlib --extern 'priv:hashbrown=/tmp/guix-build-rust-1.78.0.drv-0/rustc-1.78.0-src/build/x86_64-unknown-linux-gnu/stage0-std/x86_64-unknown-linux-gnu/release/deps/libhashbrown-1fb491793304cd78.rlib' --extern libc=/tmp/guix-build-rust-1.78.0.drv-0/rustc-1.78.0-src/build/x86_64-unknown-linux-gnu/stage0-std/x86_64-unknown-linux-gnu/release/deps/liblibc-3e25b89e388ac0b7.rlib --extern 'priv:miniz_oxide=/tmp/guix-build-rust-1.78.0.drv-0/rustc-1.78.0-src/build/x86_64-unknown-linux-gnu/stage0-std/x86_64-unknown-linux-gnu/release/deps/libminiz_oxide-b4f398c72f07b575.rlib' --extern 'priv:object=/tmp/guix-build-rust-1.78.0.drv-0/rustc-1.78.0-src/build/x86_64-unknown-linux-gnu/stage0-std/x86_64-unknown-linux-gnu/release/deps/libobject-9088b5375e33ed28.rlib' --extern 'priv:panic_abort=/tmp/guix-build-rust-1.78.0.drv-0/rustc-1.78.0-src/build/x86_64-unknown-linux-gnu/stage0-std/x86_64-unknown-linux-gnu/release/deps/libpanic_abort-4507de92ecd6bf32.rlib' --extern 'priv:panic_unwind=/tmp/guix-build-rust-1.78.0.drv-0/rustc-1.78.0-src/build/x86_64-unknown-linux-gnu/stage0-std/x86_64-unknown-linux-gnu/release/deps/libpanic_unwind-7518274129638bff.rlib' --extern 'priv:rustc_demangle=/tmp/guix-build-rust-1.78.0.drv-0/rustc-1.78.0-src/build/x86_64-unknown-linux-gnu/stage0-std/x86_64-unknown-linux-gnu/release/deps/librustc_demangle-222ca244345da321.rlib' --extern 'priv:std_detect=/tmp/guix-build-rust-1.78.0.drv-0/rustc-1.78.0-src/build/x86_64-unknown-linux-gnu/stage0-std/x86_64-unknown-linux-gnu/release/deps/libstd_detect-de82c72cd3e622fd.rlib' --extern 'priv:unwind=/tmp/guix-build-rust-1.78.0.drv-0/rustc-1.78.0-src/build/x86_64-unknown-linux-gnu/stage0-std/x86_64-unknown-linux-gnu/release/deps/libunwind-22bfbc8f6bbd4395.rlib' -Z unstable-options --cfg=bootstrap -Csymbol-mangling-version=legacy -Zunstable-options '--check-cfg=cfg(feature,values(any()))' -Zunstable-options '--check-cfg=cfg(bootstrap)' '--check-cfg=cfg(stdarch_intel_sde)' '--check-cfg=cfg(no_fp_fmt_parse)' '--check-cfg=cfg(no_global_oom_handling)' '--check-cfg=cfg(no_rc)' '--check-cfg=cfg(no_sync)' '--check-cfg=cfg(netbsd10)' '--check-cfg=cfg(backtrace_in_libstd)' '--check-cfg=cfg(target_env,values("libnx","p2"))' '--check-cfg=cfg(target_arch,values("arm64ec","spirv","nvptx","xtensa"))' -Zmacro-backtrace -Csplit-debuginfo=off -Cprefer-dynamic -Zinline-mir -Clink-args=-Wl,-z,origin '-Clink-args=-Wl,-rpath,$ORIGIN/../lib' '-Zcrate-attr=doc(html_root_url="https://doc.rust-lang.org/1.78.0/")' -Z binary-dep-depinfo --cfg backtrace_in_libstd` (exit status: 254) Build completed unsuccessfully in 0:00:44 error: in phase 'build': uncaught exception: %exception #<&invoke-error program: "./x.py" arguments: ("-j16" "build" "--stage=1" "library/std" "src/tools/cargo") exit-status: 1 term-signal: #f stop-signal: #f> phase `build' failed after 44.2 seconds command "./x.py" "-j16" "build" "--stage=1" "library/std" "src/tools/cargo" failed with status 1 build process 18 exited with status 256 note: keeping build directory `/tmp/guix-build-rust-1.78.0.drv-0' builder for `/gnu/store/m489v41vf6djzdlncsin7960jg9rgx2n-rust-1.78.0.drv' failed with exit code 1 build of /gnu/store/m489v41vf6djzdlncsin7960jg9rgx2n-rust-1.78.0.drv failed View build log at '/var/log/guix/drvs/m4/89v41vf6djzdlncsin7960jg9rgx2n-rust-1.78.0.drv.gz'. cannot build derivation `/gnu/store/3h9aax6xnhmwlqq15b1m6sla782m04hd-rust-1.79.0.drv': 1 dependencies couldn't be built cannot build derivation `/gnu/store/f8fhkkbvmn5fbnwjpxqdls6f6r4scbl9-rust-1.80.1.drv': 1 dependencies couldn't be built cannot build derivation `/gnu/store/6aa0fhp44vf08dvnj8zis4jdgwykfj15-rust-1.81.0.drv': 1 dependencies couldn't be built cannot build derivation `/gnu/store/7hh4m3bbgsv7ir4bzmpal6akpsxmy15g-rust-1.82.0.drv': 1 dependencies couldn't be built guix build: error: build of `/gnu/store/7hh4m3bbgsv7ir4bzmpal6akpsxmy15g-rust-1.82.0.drv' failed Second time around with no change it worked fine. So LGTM!
guix-patches <at> gnu.org
:bug#78484
; Package guix-patches
.
(Mon, 19 May 2025 23:19:01 GMT) Full text and rfc822 format available.Message #11 received at 78484 <at> debbugs.gnu.org (full text, mbox):
From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> To: Danny Milosavljevic <dannym <at> friendly-machines.com> Cc: 78484 <at> debbugs.gnu.org, Hilton Chain <hako <at> ultrarare.space>, Steve George <steve <at> futurile.net>, Efraim Flashner <efraim <at> flashner.co.il>, Divya Ranjan Pattanaik <divya <at> subvertising.org> Subject: Re: [bug#78484] [PATCH] rust: Bootstrap from version 1.74.0. Date: Tue, 20 May 2025 08:18:17 +0900
Hi, Danny Milosavljevic <dannym <at> friendly-machines.com> writes: [...] > %exception #<&invoke-error program: "./x.py" arguments: ("-j16" "build" "--stage=1" "library/std" "src/tools/cargo") exit-status: 1 term-signal: #f stop-signal: #f> > phase `build' failed after 44.2 seconds > command "./x.py" "-j16" "build" "--stage=1" "library/std" "src/tools/cargo" failed with status 1 > build process 18 exited with status 256 > note: keeping build directory `/tmp/guix-build-rust-1.78.0.drv-0' > builder for `/gnu/store/m489v41vf6djzdlncsin7960jg9rgx2n-rust-1.78.0.drv' failed with exit code 1 > build of /gnu/store/m489v41vf6djzdlncsin7960jg9rgx2n-rust-1.78.0.drv failed > View build log at '/var/log/guix/drvs/m4/89v41vf6djzdlncsin7960jg9rgx2n-rust-1.78.0.drv.gz'. > cannot build derivation `/gnu/store/3h9aax6xnhmwlqq15b1m6sla782m04hd-rust-1.79.0.drv': 1 dependencies couldn't be built > cannot build derivation `/gnu/store/f8fhkkbvmn5fbnwjpxqdls6f6r4scbl9-rust-1.80.1.drv': 1 dependencies couldn't be built > cannot build derivation `/gnu/store/6aa0fhp44vf08dvnj8zis4jdgwykfj15-rust-1.81.0.drv': 1 dependencies couldn't be built > cannot build derivation `/gnu/store/7hh4m3bbgsv7ir4bzmpal6akpsxmy15g-rust-1.82.0.drv': 1 dependencies couldn't be built > guix build: error: build of `/gnu/store/7hh4m3bbgsv7ir4bzmpal6akpsxmy15g-rust-1.82.0.drv' failed > > Second time around with no change it worked fine. I think there are many some race in cargo when using many parallel jobs -- it rarely but sometimes fails. > So LGTM! Thanks for checking. Efraim pointed me to this change having already partially merged to the rust-team branch from a recent effort. Unfortunately it seems like the mrustc 1.74 bootstrap didn't work on aarch64 and powerpc64le architectures, so the alternative, longer 1.54 bootstrap is kept for these there. I think it'd be beneficial if someone could test on these systems again and report the actual errors to the mrustc project, so that there's hope that the author knows and can fix these problems. -- Thanks, Maxim
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.