[tor-commits] [tor-browser-build/master] Bug 26475: Disable building Rust with Thin LTO

gk at torproject.org gk at torproject.org
Thu Oct 18 09:12:05 UTC 2018


commit e2da10a29f46762a8561e30c36915f8568d18c71
Author: Georg Koppen <gk at torproject.org>
Date:   Mon Oct 15 09:48:59 2018 +0000

    Bug 26475: Disable building Rust with Thin LTO
    
    Building Rust with Thin LTO enabled leads to Tor Browser builds on macOS
    and probably Linux not being reproducible. The exact reason for that is
    unknown at the moment, although it seems fixed testing nightly Rust
    source tarballs as of mid-September 2018.
    
    We therefore disable Thin LTO for now by setting `codegen-units` to `1`.
---
 projects/firefox/mozconfig-osx-x86_64 |  3 ---
 projects/rust/build                   | 10 ++++++++++
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/projects/firefox/mozconfig-osx-x86_64 b/projects/firefox/mozconfig-osx-x86_64
index 5d56ad3..a87bf35 100644
--- a/projects/firefox/mozconfig-osx-x86_64
+++ b/projects/firefox/mozconfig-osx-x86_64
@@ -49,9 +49,6 @@ ac_add_options --disable-crashreporter
 ac_add_options --disable-maintenance-service
 ac_add_options --disable-webrtc
 ac_add_options --disable-tests
-# We need to disable for Stylo right now, as we have reproducibility issues on
-# macOS with it enabled, see: #26475.
-ac_add_options --disable-stylo
 # Let's make sure no preference is enabling either Adobe's or Google's CDM.
 ac_add_options --disable-eme
 # ac_add_options --disable-ctypes
diff --git a/projects/rust/build b/projects/rust/build
index 936f49f..61a5d50 100644
--- a/projects/rust/build
+++ b/projects/rust/build
@@ -65,6 +65,16 @@ cd /var/tmp/build/rustc-[% c('version') %]-src
 mkdir build
 cd build
 ../configure --prefix=$distdir [% c("var/configure_opt") %]
+
+# We need to disable Thin LTO due to reproducibility issues on macOS and
+# probably Linux. Alas, there is no direct option available in the config.toml
+# in 1.26.1 yet, so we need to toggle this indirectly via `codegen-units`.
+[% IF c("var/osx") || c("var/linux") %]
+  # It seems hard to pass the proper value via ./configure so we resort to our
+  # old friend `sed`.
+  sed -i 's/#codegen-units = 1/codegen-units = 1/' config.toml
+[% END %]
+
 make -j[% c("buildconf/num_procs") %]
 make install
 cd /var/tmp/dist





More information about the tor-commits mailing list