Closed Bug 1745115 Opened 2 years ago Closed 2 years ago

Refactor clang configs

Categories

(Firefox Build System :: Toolchains, task)

task

Tracking

(firefox97 fixed)

RESOLVED FIXED
97 Branch
Tracking Status
firefox97 --- fixed

People

(Reporter: glandium, Assigned: glandium)

References

Details

Attachments

(7 files)

No description provided.
Depends on: 1744890

We had three versions:

  • one that is unused but has a header explaining why the patch is there,
    and has the regular revert-$(git describe 2a078c307204).patch name.
  • one that is applied to trunk that was adapted to clang-trunk when
    trunk was 13 and that retained the name with a -trunk suffix.
  • one that is applied to clang 13, is identical to the one for trunk,
    and has 13 instead of 12 in its name.

We only need one of them.

Rename it to revert-$(git describe a478b0a199f4).patch, and reorder
reversal patches so that newest patches are reverted first. It does
not matter right now because there are no inter-dependencies between
patches, but eventually, it will happen, and consistency will be
helpful.

  • stage 1 is building clang with whatever compiler is available
  • stage 2 is building clang with the clang built during stage 1
  • stage 3 is building clang with the clang built during stage 2. It's
    only useful when it's actively compared against stage 2, or when
    there's a stage 4.
  • stage 4 is building clang with the clang built during stage 3, with the
    profile generated during stage 3, when stage 2 produced a clang with
    instrumentation enabled.

We're not actively comparing the output of stage 2 and 3 when not doing
PGO, so it's not useful to do 3-stage builds.

And merge them. This will allow to deduplicate and uniformize them.

We separate the patchset from the per-platform configuration, which
will ensure we keep the same patchset across them (spoiler alert: we
weren't).
Also, as most builds are PGO, use that in per-platform configurations,
and add an override config that sets it back to 2-stages for the
builds we don't want to PGO.

We're currently omitting a lot of them. This requires reverting a few
more patches that were followups for llvmorg-13-init-8182-gc2297544c047.

Pushed by mh@glandium.org:
https://hg.mozilla.org/integration/autoland/rev/e14b556e3f18
Keep only one revert patch for 2a078c307204. r=firefox-build-system-reviewers,andi
https://hg.mozilla.org/integration/autoland/rev/b5cd783bf890
Rename revert-ga478b0a199f4.patch. r=firefox-build-system-reviewers,andi
https://hg.mozilla.org/integration/autoland/rev/693ae39ae0dd
Default number of stages to build clang to 2. r=firefox-build-system-reviewers,andi
https://hg.mozilla.org/integration/autoland/rev/1a93ff59fc9f
Adjust patches paths earlier. r=firefox-build-system-reviewers,andi
https://hg.mozilla.org/integration/autoland/rev/0cfbace5a25b
Allow to give multiple configs to build-clang.py. r=firefox-build-system-reviewers,andi
https://hg.mozilla.org/integration/autoland/rev/8299ba89c79a
Refactor clang configs. r=firefox-build-system-reviewers,andi
https://hg.mozilla.org/integration/autoland/rev/ba9915646740
Apply the same patches as clang 13 to clang trunk. r=firefox-build-system-reviewers,andi
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: