Closed Bug 1278718 Opened 4 years ago Closed 4 years ago

Bump clang to 3.8 for asan builds


(Firefox Build System :: General, defect)

Not set


(firefox50 fixed)

Tracking Status
firefox50 --- fixed


(Reporter: glandium, Assigned: glandium)




(3 files)

ASAN builds are the last ones using clang 3.5. We should upgrade them to at least 3.8 (which is what we use for normal clang-based builds), or pre-3.9, like the ASAN-tc builds (which I don't actually think, from re-reading bug 1253299, that there's a reason to use)

The subtle reason behind this is that the clang 3.5 tooltool archive doesn't come with a recent libstdc++, like the gcc or clang 3.8 tooltool archives do, and that prevents to go forward with bug 1278456.

So, instead of modifying the clang 3.5 to contain libstdc++, we might as well upgrade clang. Two birds with one stone.

Fun things are fun:
- Both clang 3.8 and pre-3.9 find leaks that 3.5 doesn't complain about
- llvm-symbolizer doesn't work in both cases because it requires GLIBCXX_3.4.18 libstdc++ symbols. (so in fact, the leaks may be normally suppressed leaks due to lack of symbolization)

- The good news is that it was largely about normally suppressed leaks not being suppressed because of symbolization not working.
- The bad news is that there *are* new leaks that 3.8 finds, and that happen equally with the pre-3.9 package we're using on ASAN-tc builds.

They however seem to be happening in peripheral executables (mar and updater), which may or may not make them candidates for suppressions (or disabling).

There are also reported buffer overflows in ctypes code, that may or may not be false positives. They are happening with both 3.8 and 3.9.

Does that ring a bell?

Anyways, looks like I'll have to find a way to make bug 1278456 work without this, which likely means a dependency on bug 1278456 because I'm very likely to end up touching asan.manifest there.
No longer blocks: 1278456
Depends on: 1278456
Flags: needinfo?(choller)
Use the resulting clang everywhere we are currently using clang 3.8.

Review commit:
See other reviews:
Attachment #8761176 - Flags: review?(nfroyd)
Attachment #8761177 - Flags: review?(choller)
Attachment #8761178 - Flags: review?(kmoir)
- the clang build used in the first patch comes from:
and is the result of applying the patch to
- this patch queue can't land straight away, as there are new leaks and other problems reported by clang 3.8's ASAN.
Comment on attachment 8761177 [details]
Bug 1278718 - Use clang 3.8 on ASAN builds.
Attachment #8761177 - Flags: review?(choller) → review+
Comment on attachment 8761178 [details]
Bug 1278718 - Use the same setup for clang and binutils on TC as on buildbot.
Attachment #8761178 - Flags: review?(kmoir) → review+
Comment on attachment 8761176 [details]
Bug 1278718 - Build clang 3.8 with static libstdc++.
Attachment #8761176 - Flags: review?(nfroyd) → review+
Depends on: 1279096
Depends on: 1279105
Depends on: 1279108
Clearing obsolete needinfo as discussed on IRC.
Flags: needinfo?(choller)
Pushed by
Build clang 3.8 with static libstdc++. r=froydnj
Use clang 3.8 on ASAN builds. r=decoder
Use the same setup for clang and binutils on TC as on buildbot. r=kmoir
Blocks: 1280338
Blocks: 1286204
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.