This will enable each PGO phase to show up in mach's resource reporting,
making it easier to compare PGO runtime across machines. This does
confuse the rendering of `mach resource-usage` a bit since it doesn't
know how to handle overlapping tiers. But the raw data is captured as
expected. I don't think `mach resource-usage` is that heavily used right
now, so I don't care about a minor regression for PGO builds.
MozReview-Commit-ID: HalvEwITmif
--HG--
extra : rebase_source : 5c27c6bda814cd61c0da792d9336980dc4f530a9
The way UPLOAD_EXTRA_FILES is currently exported makes the files added
to the list added in each directory that is being traversed recursively
because of the += in .mozconfig.mk, combined with "export".
The easy way out is to remove the export altogether, but being unsure of
the side effects of putting all non exported mk_add_options variables
in .mozconfig.mk, limit this to UPLOAD_EXTRA_FILES.
This adds a format option to mach environment and uses it in client.mk to
create a .mozconfig.json in the objdir, containing all the relevant data
from mozconfig. If the mozconfig doesn't change in a way that alters that
data, we still skip configure.
At the same time, use mach environment in place of mozconfig2configure and
mozconfig2client-mk, which makes us now have only one mozconfig reader.
Also, in the mozconfig reader, keep track of environment variables (as
opposed to shell variables), so that changes such as a variable that was
exported not being exported anymore is spotted. At the opposite, in order
for irrelevant environment variable changes not to incur in re-running
configure, only a set of environment variables are stored when they are
unmodified. Otherwise, changes such as using a different terminal window,
or even rebooting, would trigger reconfigures.
Finally, make mach environment emit both MOZ_OBJDIR and OBJDIR for
client.mk, and cleanup some objdir-related things in client.mk..
At the same time, make the mozconfig reader take MOZ_OBJDIR from the
environment if it is defined there and not in the mozconfig.
To avoid surprises for devs building locally, auto clobbering is now opt-in, via
the use of |mk_add_options AUTOCLOBBER=1| in the mozconfig. Our automation uses
build/mozconfig.common which specifies this, so auto clobber will remain enabled
for our buildbot machines.
Now log in a single file given by the MOZ_JAR_LOG_FILE environment variable.
Log entries contain the URI of the Zip archive, followed by the path in the
archive.
* * *
Bug 840094 - Fixup for debug builds failure because of nsZipArchive::CloseArchive being called several times