GNU bug report logs -
#32227
[PATCH] gnu: rust: make rust 1.25.0 build reproducible
Previous Next
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 32227 in the body.
You can then email your comments to 32227 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
guix-patches <at> gnu.org
:
bug#32227
; Package
guix-patches
.
(Fri, 20 Jul 2018 20:10:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Nikolai Merinov <nikolai.merinov <at> member.fsf.org>
:
New bug report received and forwarded. Copy sent to
guix-patches <at> gnu.org
.
(Fri, 20 Jul 2018 20:10:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/rust.scm (rust-1.25): switch back to llvm <at> 3.9 still builds with
llvm <at> 6.0 is not reproducible. Remove all llvm <at> 6.0 related twicks.
(rust-1.26): switch to llvm <at> 6.0 still rust-1.26 can build reproducible
binaries with new llvm release. Enable llvm <at> 5.0 related twicks.
---
gnu/packages/rust.scm | 39 ++++++++++++++++++---------------------
1 file changed, 18 insertions(+), 21 deletions(-)
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 28bffb44b..1095070eb 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -545,10 +545,6 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
"0baxjr99311lvwdq0s38bipbnj72pn6fgbk6lcq7j555xq53mxpf")))
(package
(inherit base-rust)
- (inputs
- ;; Use LLVM 6.0
- (alist-replace "llvm" (list llvm)
- (package-inputs base-rust)))
(arguments
(substitute-keyword-arguments (package-arguments base-rust)
((#:phases phases)
@@ -559,23 +555,6 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
;; This test wants to update the crate index.
(("fn no_index_update") "#[ignore]\nfn no_index_update"))
#t))
- (add-after 'configure 'enable-codegen-tests
- (lambda _
- (substitute* "config.toml"
- (("codegen-tests = false") ""))
- #t))
- (replace 'patch-aarch64-test
- (lambda _
- (substitute* "src/librustc_metadata/dynamic_lib.rs"
- ;; 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"))
- ;; This test fails on aarch64 with llvm <at> 6.0:
- ;; https://github.com/rust-lang/rust/issues/49807
- ;; other possible solution:
- ;; https://github.com/rust-lang/rust/pull/47688
- (delete-file "src/test/debuginfo/by-value-self-argument-in-trait-impl.rs")
- #t))
(delete 'ignore-glibc-2.27-incompatible-test))))))))
(define-public rust-1.26
@@ -585,6 +564,10 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
#:patches '("rust-coresimd-doctest.patch"))))
(package
(inherit base-rust)
+ (inputs
+ ;; Use LLVM 6.0
+ (alist-replace "llvm" (list llvm)
+ (package-inputs base-rust)))
(arguments
(substitute-keyword-arguments (package-arguments base-rust)
((#:phases phases)
@@ -624,6 +607,20 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
(substitute* "src/tools/cargo/tests/testsuite/generate_lockfile.rs"
;; This test wants to update the crate index.
(("fn no_index_update") "#[ignore]\nfn no_index_update"))
+ #t))
+ (add-after 'patch-aarch64-test 'patch-aarch64-llvm6-test
+ (lambda _
+ ;; This test fails on aarch64 with llvm <at> 6.0:
+ ;; https://github.com/rust-lang/rust/issues/49807
+ ;; other possible solution:
+ ;; https://github.com/rust-lang/rust/pull/47688
+ (delete-file "src/test/debuginfo/by-value-self-argument-in-trait-impl.rs")
+ #t))
+ (add-after 'configure 'enable-codegen-tests
+ (lambda* _
+ (substitute* "config.toml"
+ ;; codegen test should pass with LLVM 6
+ (("codegen-tests = false") ""))
#t)))))))))
(define-public rust
--
2.17.1
Information forwarded
to
guix-patches <at> gnu.org
:
bug#32227
; Package
guix-patches
.
(Fri, 20 Jul 2018 20:22:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 32227 <at> debbugs.gnu.org (full text, mbox):
Hi,
I tried to configure how rust use llvm, but I did not succeed in
it. Looks like llvm <at> 6.0 usage was fixed fully only in rust 1.26.
I already checked once that 1.25 and 1.26 rust releases is reproducible
in my environment with llvm <at> 3.9 and llvm <at> 6.0 respectively. When I posted
this patch I restarted my builds with "--rounds=2".
Regards,
Nikolai
Information forwarded
to
guix-patches <at> gnu.org
:
bug#32227
; Package
guix-patches
.
(Sun, 22 Jul 2018 09:56:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 32227 <at> debbugs.gnu.org (full text, mbox):
Hi,
Please, do not merge. Change rejected. With this change 1.27.0 build
still not reproducible. I should try to figure out which llvm
compilation options make builds non-reproducible.
Regards,
Nikolai
Nikolai Merinov <nikolai.merinov <at> member.fsf.org> writes:
> Hi,
>
> I tried to configure how rust use llvm, but I did not succeed in
> it. Looks like llvm <at> 6.0 usage was fixed fully only in rust 1.26.
>
> I already checked once that 1.25 and 1.26 rust releases is reproducible
> in my environment with llvm <at> 3.9 and llvm <at> 6.0 respectively. When I posted
> this patch I restarted my builds with "--rounds=2".
>
> Regards,
> Nikolai
Information forwarded
to
guix-patches <at> gnu.org
:
bug#32227
; Package
guix-patches
.
(Tue, 21 Aug 2018 21:20:02 GMT)
Full text and
rfc822 format available.
Message #14 received at 32227 <at> debbugs.gnu.org (full text, mbox):
Hello Nikolai,
Nikolai Merinov <nikolai.merinov <at> member.fsf.org> skribis:
> Please, do not merge. Change rejected. With this change 1.27.0 build
> still not reproducible. I should try to figure out which llvm
> compilation options make builds non-reproducible.
Does the problem still applies to 1.27.0 as currently available in
master?
Thanks,
Ludo’.
Information forwarded
to
guix-patches <at> gnu.org
:
bug#32227
; Package
guix-patches
.
(Tue, 21 Aug 2018 21:20:03 GMT)
Full text and
rfc822 format available.
Message #17 received at 32227 <at> debbugs.gnu.org (full text, mbox):
Hello Nikolai,
Nikolai Merinov <nikolai.merinov <at> member.fsf.org> skribis:
> Please, do not merge. Change rejected. With this change 1.27.0 build
> still not reproducible. I should try to figure out which llvm
> compilation options make builds non-reproducible.
Does the problem still apply to 1.27.0 as currently available in master?
Thanks,
Ludo’.
Information forwarded
to
guix-patches <at> gnu.org
:
bug#32227
; Package
guix-patches
.
(Sun, 23 Sep 2018 21:39:02 GMT)
Full text and
rfc822 format available.
Message #20 received at 32227 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hello Ludo,
Sorry for long answer. I have no chance to continue ivestigation last
month, but I'll want to provide my old finding:
1. Rust 1.25 build cargo binary (but not rustc itself) in
non-reproducible manner when compiled with llvm-6.0 and llvm-6.1. In
both cases we got non-reproducible code for next functions:
"<env_logger::Logger as log::Log>::log", "git2::panic::check",
"curl::easy::handler::ssl_ctx_cb".
2. Rust 1.26 with llvm-6.0 build is reproducible regardless of which
rustc 1.25 (with llvm-6.0 or llvm-3.9) was used to bootstrap it.
3. Rust 1.27.0 and Rust 1.27.2 again build rustc itself in reproducible
manner, while "cargo" binary differ build to build. I observed
non-reproducible code in "git2::panic::check" function and in
".gcc_except_table" section of resulting binary.
In attachements you can find patch to move rust-1.25 to llvm-3.9, and
patch to update Rust 1.27 to 1.27.2.
[0001-gnu-rust-make-rust-1.25.0-build-reproducible.patch (text/x-patch, attachment)]
[0002-Update-rust-1.27-to-1.27.2.patch (text/x-patch, attachment)]
[Message part 4 (text/plain, inline)]
Regards,
Nikolai
ludo <at> gnu.org (Ludovic Courtès) writes:
> Hello Nikolai,
>
> Nikolai Merinov <nikolai.merinov <at> member.fsf.org> skribis:
>
>> Please, do not merge. Change rejected. With this change 1.27.0 build
>> still not reproducible. I should try to figure out which llvm
>> compilation options make builds non-reproducible.
>
> Does the problem still apply to 1.27.0 as currently available in master?
>
> Thanks,
> Ludo’.
Reply sent
to
Jakub Kądziołka <kuba <at> kadziolka.net>
:
You have taken responsibility.
(Sun, 23 Feb 2020 14:27:01 GMT)
Full text and
rfc822 format available.
Notification sent
to
Nikolai Merinov <nikolai.merinov <at> member.fsf.org>
:
bug acknowledged by developer.
(Sun, 23 Feb 2020 14:27:01 GMT)
Full text and
rfc822 format available.
Message #25 received at 32227-done <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
These patches seem to have been made obsolete by commit
e027a494fd5e6025e645ce9f36cccca39a77d327 - closing.
[signature.asc (application/pgp-signature, inline)]
Added tag(s) wontfix.
Request was from
Jakub Kądziołka <kuba <at> kadziolka.net>
to
control <at> debbugs.gnu.org
.
(Sun, 23 Feb 2020 14:29:01 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Mon, 23 Mar 2020 11:24:04 GMT)
Full text and
rfc822 format available.
This bug report was last modified 4 years and 34 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.