Closed Bug 1278718 Opened 4 years ago Closed 4 years ago

Bump clang to 3.8 for asan builds

Categories

(Firefox Build System :: General, defect)

defect
Not set

Tracking

(firefox50 fixed)

RESOLVED FIXED
mozilla50
Tracking Status
firefox50 --- fixed

People

(Reporter: glandium, Assigned: glandium)

References

Details

Attachments

(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.
https://treeherder.mozilla.org/#/jobs?repo=try&revision=9f8b4feb025c63e9962cbeec8ac3f4b863b68634

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)
https://treeherder.mozilla.org/#/jobs?repo=try&revision=cbacf23685785a005faa61fc188e7c6f11971e21

- 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: https://reviewboard.mozilla.org/r/58480/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/58480/
Attachment #8761176 - Flags: review?(nfroyd)
Attachment #8761177 - Flags: review?(choller)
Attachment #8761178 - Flags: review?(kmoir)
Notes:
- the clang build used in the first patch comes from:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=c2764fc019244cdc1f3038fa91f5602ded1e011a
and is the result of applying the patch to build-clang.py
- 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.

https://reviewboard.mozilla.org/r/58482/#review55378
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.

https://reviewboard.mozilla.org/r/58484/#review55382
Attachment #8761178 - Flags: review?(kmoir) → review+
Comment on attachment 8761176 [details]
Bug 1278718 - Build clang 3.8 with static libstdc++.

https://reviewboard.mozilla.org/r/58480/#review55410
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 mh@glandium.org:
https://hg.mozilla.org/integration/mozilla-inbound/rev/85d79aeab256
Build clang 3.8 with static libstdc++. r=froydnj
https://hg.mozilla.org/integration/mozilla-inbound/rev/c03ed1e5700b
Use clang 3.8 on ASAN builds. r=decoder
https://hg.mozilla.org/integration/mozilla-inbound/rev/6f4f910b4da6
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.