[tor-bugs] #31538 [Applications/Tor Browser]: Windows bundles based on ESR 68 are not built reproducibly

Tor Bug Tracker & Wiki blackhole at torproject.org
Mon Sep 9 19:57:45 UTC 2019


#31538: Windows bundles based on ESR 68 are not built reproducibly
-------------------------------------------------+-------------------------
 Reporter:  gk                                   |          Owner:  tbb-
                                                 |  team
     Type:  defect                               |         Status:  new
 Priority:  Very High                            |      Milestone:
Component:  Applications/Tor Browser             |        Version:
 Severity:  Major                                |     Resolution:
 Keywords:  tbb-rbm, ff68-esr, tbb-9.0-must-     |  Actual Points:
  alpha, TorBrowserTeam201909,                   |
  GeorgKoppen201909                              |
Parent ID:  #30322                               |         Points:  2
 Reviewer:                                       |        Sponsor:
-------------------------------------------------+-------------------------

Comment (by gk):

 The different order in libc++.a is already visible in the respecting link
 command:
 {{{
 /var/tmp/dist/mingw-w64-clang/bin/llvm-ar qc libc++.a
 CMakeFiles/cxx_objects.dir/__/src/shared_mutex.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/exception.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/system_error.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/charconv.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/new.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/variant.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/optional.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/bind.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/locale.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/mutex.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/iostream.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/stdexcept.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/thread.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/random.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/ios.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/typeinfo.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/future.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/functional.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/any.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/utility.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/valarray.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/hash.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/regex.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/condition_variable.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/chrono.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/string.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/debug.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/algorithm.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/memory.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/vector.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/strstream.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/support/win32/thread_win32.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/support/win32/support.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/support/win32/locale_win32.cpp.obj
 }}}
 vs.
 {{{
 /var/tmp/dist/mingw-w64-clang/bin/llvm-ar qc libc++.a
 CMakeFiles/cxx_objects.dir/__/src/typeinfo.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/debug.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/thread.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/hash.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/stdexcept.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/algorithm.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/valarray.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/condition_variable.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/locale.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/functional.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/bind.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/shared_mutex.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/any.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/exception.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/chrono.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/system_error.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/ios.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/string.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/optional.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/new.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/charconv.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/vector.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/regex.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/strstream.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/memory.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/random.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/iostream.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/utility.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/mutex.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/future.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/variant.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/support/win32/support.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/support/win32/locale_win32.cpp.obj
 CMakeFiles/cxx_objects.dir/__/src/support/win32/thread_win32.cpp.obj
 }}}
 Responsible for that is `CMake` which saves the command to use in a
 `link.txt` file
 {{{
 cd /var/tmp/build/libcxx/build/lib && /var/tmp/dist/cmake/bin/cmake -E
 cmake_link_script CMakeFiles/cxx_static.dir/link.txt --verbose=1
 }}}
 I am not sure yet where sorting that part differently got solved but
 updating `CMake` to the latest stable version, 3.15.3, (we are currently
 using 3.4.3) seems to solve that part of the puzzle. However, other object
 files are still included non-deterministically after that part. I am not
 sure yet where they are coming from...

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/31538#comment:19>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list