Closed Bug 1730078 Opened 3 years ago Closed 3 years ago

Avoid toolchains depending on the gcc toolchain

Categories

(Firefox Build System :: Toolchains, task)

task

Tracking

(firefox94 fixed)

RESOLVED FIXED
94 Branch
Tracking Status
firefox94 --- fixed

People

(Reporter: glandium, Assigned: glandium)

References

Details

Attachments

(7 files)

Now that the system GCC in the toolchain docker image is more modern, we can avoid using the GCC toolchain to build some of the toolchains. That is especially important for clang, because it means when toolchains are rebuilt for $reason, building clang won't have to wait for GCC anymore.

There are complications with building a 1-stage clang with gcc, so just
use clang. Eventually, the clang-tidy toolchains will be removed in
favor of providing clang-tidy from the clang toolchain itself anyways.

Building sanitizers in older versions of clang emit errors when built with
newer GCC because of some narrowing conversions. We only really need the
sanitizers in the final stage anyways, so we force-disable them (and
everything else that might enable "sanitizer-common") in early stages.

Building the lli tool (also used in tests) fails as well, and we don't
need it until the final stage (where we need it to ship it).

Using the sysroot with GCC requires some unnecessary complication, and
we don't really care if the first stages are not using the sysroot.

Pushed by mh@glandium.org:
https://hg.mozilla.org/integration/autoland/rev/d45ae89f5a9e
Build gn with system gcc. r=firefox-build-system-reviewers,mhentges
https://hg.mozilla.org/integration/autoland/rev/2c26dca77db4
Build binutils with system gcc. r=firefox-build-system-reviewers,mhentges
https://hg.mozilla.org/integration/autoland/rev/74a6f9ef8b85
Build gcc-11 with system gcc. r=firefox-build-system-reviewers,mhentges
https://hg.mozilla.org/integration/autoland/rev/4b2fe8373321
Build clang-tidy with clang. r=firefox-build-system-reviewers,andi
https://hg.mozilla.org/integration/autoland/rev/756d27c55c1d
Don't build some things during early stages of the clang compilation. r=firefox-build-system-reviewers,andi,mhentges
https://hg.mozilla.org/integration/autoland/rev/eaddb8708967
Only use the sysroot for the final stage of the clang compilation. r=firefox-build-system-reviewers,andi
https://hg.mozilla.org/integration/autoland/rev/5ba18eb771b0
Build clang stage 1 with system gcc. r=firefox-build-system-reviewers,mhentges
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: