guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#32227] [PATCH] gnu: rust: make rust 1.25.0 build reproducible


From: Nikolai Merinov
Subject: [bug#32227] [PATCH] gnu: rust: make rust 1.25.0 build reproducible
Date: Mon, 24 Sep 2018 02:38:22 +0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux)

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. 

Attachment: 0001-gnu-rust-make-rust-1.25.0-build-reproducible.patch
Description: enable llvm-6.0 in rust 1.26 instead of 1.25

Attachment: 0002-Update-rust-1.27-to-1.27.2.patch
Description: Update rust 1.27 to 1.27.2

Regards,
Nikolai

address@hidden (Ludovic Courtès) writes:

> Hello Nikolai,
>
> Nikolai Merinov <address@hidden> 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 via email to

[Prev in Thread] Current Thread [Next in Thread]