[tbb-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 tbb-bugs
mailing list