Closed Bug 1267650 Opened 4 years ago Closed 3 years ago

Upgrade ASan Clang to 3.9

Categories

(Infrastructure & Operations Graveyard :: CIDuty, task, major)

All
Linux
task
Not set
major

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: decoder, Unassigned)

References

(Blocks 2 open bugs)

Details

(Keywords: sec-want)

The clang we use to make ASan builds is ancient, according to the tooltool manifests, we use 3.5/r200213. We should upgrade to something around 3.9.

I already fixed one compatibility issue with 3.9 in bug 1252072 but there might be more issues. We need a recent linux clang build on releng, then make a try push with all tests to figure out the remaining road blocks.
There's bug 1214463 about upgrading to Clang 3.7. There were a bunch of issues, but I think they have all been fixed now. I haven't gotten around to looking up my notes on how to deal with building a new clang yet to try it out. Maybe we could at least try upgrading to that? I'm not sure what version non-ASan builds use.
I've just built with Clang trunk (r267559) on Ubuntu 14.04 LTS. I had to install the gcc-4.9 toolchain as well (for the right libstdc++ version), but afterwards the build worked fine and I was also able to startup Firefox without any problems.

If we do the update, then I suggest going for this revision because 3.7 lacks some features that got added later on (besides that, we should aim for the newest thing we can find because we never know when we will be able to do this next time).
There's also bug 1253299 for clang 3.8.
See Also: → 1253299
Blocks: LSan
(Note: we probably need a bugzilla component for toolchains...)

Please don't build clang yourself anymore. Bug 1262735 fixed the build script we have in the tree and added a taskcluster job to build it for Linux. Bug 1262781 also upgraded clang to 3.8 for normal builds.

You can push changes to build/build-clang/build-clang.py to try with 'try: -p none -j linux64-clang' and you'll get a clang tarball for use on automation. Mac is unfortunately a little complicated, still.
So I build the clang as described in comment 4 here
https://treeherder.mozilla.org/#/jobs?repo=try&revision=972837dd076b57d6f90c569861b5c2f03cc9273a

How do I know what the associated version of gtk3 in the tooltool repo should be used for the ASAN builds? (bug 1253299). Is this one correct?

cat browser/config/tooltool-manifests/linux64/clang.manifest.centos6
...
{
"size": 12072532,
"digest": "3915f8ec396c56a8a92e6f9695b70f09ce9d1582359d1258e37e3fd43a143bc974410e4cfc27f500e095f34a8956206e0ebf799b7287f0f38def0d5e34ed71c9",
"algorithm": "sha512",
"filename": "gtk3.tar.xz",
"setup": "setup.sh",
"unpack": true
}
]
Flags: needinfo?(mh+mozilla)
There's only one gtk3 archive for linux64, so, yes.
Flags: needinfo?(mh+mozilla)
Component: Other → Platform Support
QA Contact: mshal → coop
Bug 1349611 will do the upgrade.
Depends on: 1349611
Fixed by bug 1346442.
Status: NEW → RESOLVED
Closed: 3 years ago
Depends on: 1346442
No longer depends on: 1349611
Resolution: --- → FIXED
Component: Platform Support → Buildduty
Product: Release Engineering → Infrastructure & Operations
Product: Infrastructure & Operations → Infrastructure & Operations Graveyard
You need to log in before you can comment on or make changes to this bug.