Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • T tor-browser-build
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 194
    • Issues 194
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 2
    • Merge requests 2
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
    • Model experiments
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • The Tor Project
  • Applications
  • tor-browser-build
  • Issues
  • #40832

Unify mingw-w64-clang 32+64 bits

Clang has the advantage over GCC that you can use -taget at runtime.

Indeed, we don't recompile the whole Clang, but only a few binaries, like mingw and the runtimes (compiler-rt, libcxx and libcxxabi).

So, we could merge the two archives, and replace them with a single one, with a slightly higher size (the merged directory is 2.8GB uncompressed, vs. 2.7GB of each the single-arch mingw-w64-clang directories uncompressed, and the merged archive is 825MB vs two archives of 812MB).

The advantage is that we'd have both the 32-bit and 64-bit always available, if needed for some projects (I don't think any need, at the moment).

The build script itself is already quite parametric, we could replace it with a build() bash function that takes the architecture as an input parameter.

Diff of the directories

Screenshot_from_2023-03-29_10-09-40

The screenshot shows that the two toolchain are completely overlappable.

Edited Mar 29, 2023 by Pier Angelo Vendrame
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking