[tor-bugs] #28716 [Applications/Tor Browser]: Create a mingw-w64-clang project

Tor Bug Tracker & Wiki blackhole at torproject.org
Fri Feb 8 12:14:57 UTC 2019


#28716: Create a mingw-w64-clang project
-------------------------------------------------+-------------------------
 Reporter:  gk                                   |          Owner:  tbb-
                                                 |  team
     Type:  task                                 |         Status:
                                                 |  needs_review
 Priority:  High                                 |      Milestone:
Component:  Applications/Tor Browser             |        Version:
 Severity:  Normal                               |     Resolution:
 Keywords:  tbb-rbm, TorBrowserTeam201902R,      |  Actual Points:
  GeorgKoppen201902                              |
Parent ID:  #28238                               |         Points:
 Reviewer:                                       |        Sponsor:
-------------------------------------------------+-------------------------

Comment (by cypherpunks33):

 Some more notes:
 There are different approaches in LLVM to become the default system for
 everything, and sooner or later it will start adding new features,
 inherently incompatible with GCC/MSVC/etc. This will require making
 changes to the current build systems. There are two ways: making build
 scripts for LLVM or adjusting GCC ones. In the latter we should decide
 whether to maintain the best compatibility with GCC or transform it into
 the GCC-incompatible one (which will become a native LLVM one after
 transition).
 IIRC, you usually prefer a transition plan with dropping the previous
 system support. And you've already started to replace `gcc` with `clang`,
 etc. But it seems it's too early to make incompatible changes. We should
 check first whether all LLVM tools support that.

 I propose to make the full GNU (not only GCC) compatible drop-in
 replacement.
 LLVM even has `LLVM_INSTALL_BINUTILS_SYMLINKS=TRUE` for that.
 Also we should use the latest CMake and Ninja as recommended: "Please use
 the latest available CMake for your platform to avoid surprises." It is
 needed for "The check-all target (i.e. ninja check-all) will run the
 regression tests to ensure everything is in working order." (BTW, where is
 Mozilla doing it or https://llvm.org/docs/AdvancedBuilds.html#stage-non-
 determinism after stage3?)

 Big thanks for trying to upstream lld patch! It is the right way to go.
 Some minor notes:
 > Since r332613 lld has the option of setting the timestamp in PE headers
 to `0`
 Not lld, lld-link. It can set timestamp to any 32-bit value.
 > However, we need a patch for lld's MingW
 Chinese hero Ming W.? :)
 > to pass this option on in our cross-compilation case
 It turns out it's much harder to pass the options properly than hardcode
 them.

 Actually, we need much more changes to lld (and lld-link) to have the
 required features.
 Is it possible to invite Martin to the discussion?

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


More information about the tor-bugs mailing list