All users were logged out of Bugzilla on October 13th, 2018

Consider llvm-dsymutil for mac builds

RESOLVED FIXED in Firefox 44

Status

RESOLVED FIXED
3 years ago
8 months ago

People

(Reporter: chmanchester, Assigned: ted)

Tracking

unspecified
mozilla44

Firefox Tracking Flags

(firefox44 fixed)

Details

Attachments

(1 attachment)

(Reporter)

Description

3 years ago
I found running the buildsymbols step locally that running dsymutil on libxul takes significantly longer than dumping symbols for the rest of the binaries, so by the time we run dump_syms on libxul everything else is done and we're only utilizing one core.

Locally using llvm-dsymutil in place of /usr/bin/dsymutil cuts the whole thing down from 10 minutes to about 6 (this usually take 15-25 minutes in automation).
(Reporter)

Comment 1

3 years ago
Similarly compelling time savings in https://treeherder.mozilla.org/#/jobs?repo=try&revision=ced4a01b3f1e (debug down from 15 to 7 minutes, opt from 25 to 11), but a flood of warnings like:

20:47:35     INFO -  2015-10-16 20:47:35: dwarf_cu_to_module.cc:584: INFO: dist/bin/XUL.dSYM/Contents/Resources/DWARF/XUL: the DIE at offset 0xd326de1 has a DW_AT_abstract_origin attribute referring to the die at offset 0xd326e19, which either was not marked as an inline, or comes later in the file
20:47:35     INFO -  2015-10-16 20:47:35: dwarf_cu_to_module.cc:633: INFO: dist/bin/XUL.dSYM/Contents/Resources/DWARF/XUL: warning: function at offset 0xd326de1 has no name
(Reporter)

Comment 2

3 years ago
Actually those same warnings are on trunk. llvm-dsymutil is the default in xcode 7, so maybe it's ready.
Guess we should just do this. I'll try a quick sanity check on a local build to see if the dump_syms output is the same.

FYI, you shouldn't need to add anything to the tooltool manifest, llvm-dsymutil is already in the clang package we use (now that we're on a new enough clang version), so you can just use $topsrcdir/clang/bin/llvm-dsymutil.
(Reporter)

Comment 4

3 years ago
Oh, that was updated Friday, nice!

I found some differences in the sym files when I looked at this briefly yesterday. I guess it's possible not all the relevant patches are upstream.
I just tried this with the version of clang that I had updated our official builds to (ehsan has since updated to a slightly-newer build):
$ ~/clang/bin/llvm-dsymutil  -version
LLVM (http://llvm.org/):
  LLVM version 3.8.0svn

The .dSYM bundles aren't bit-identical, but the output of dump_syms is identical, which is good enough for me!
Assignee: nobody → ted
Created attachment 8676927 [details]
MozReview Request: bug 1215748 - use llvm-dsymutil for mac builds. r?mshal

bug 1215748 - use llvm-dsymutil for mac builds. r?mshal
Attachment #8676927 - Flags: review?(mshal)
Comment on attachment 8676927 [details]
MozReview Request: bug 1215748 - use llvm-dsymutil for mac builds. r?mshal

https://reviewboard.mozilla.org/r/22835/#review20471
Attachment #8676927 - Flags: review?(mshal) → review+

Comment 10

3 years ago
bugherder
https://hg.mozilla.org/mozilla-central/rev/11d88c9683e5
Status: NEW → RESOLVED
Last Resolved: 3 years ago
status-firefox44: --- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla44

Updated

8 months ago
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.