зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1320738 - Mark MOZ_PGO as a JS option. r=froydnj, a=RyanVM
The changesets in bug 1412932 changed the semantics for MOZ_PGO. Before, it was effectively being set as an environment variable by client.mk all the time. Afterwards - specifically after 2013c8dd1824 - the variable is set in mozconfigs via ac_add_options, which means it is only exposed to configure, not the environment. Investigation by dmajor revealed that -WX (warnings as errors) was added to a js/src file's compiler invocation after the PGO code refactor. (PGO and warnings as errors have a strange interaction - bug 437002 - and should be disabled there.) Strangely, addition of -WX was only present on Dev Edition PGO builds. The reason for this is likely mozharness. Mozharness will export the MOZ_PGO=1 environment variable for build configurations that it knows are PGO. It appears to do this for all PGO build configurations except Dev Edition. Since make and moz.configure inherit environment variables, mozharness was basically papering over the intended behavior change in 2013c8dd1824. This commit fixes the problem by marking MOZ_PGO as a JS option in moz.configure. This means `ac_add_options MOZ_PGO=1` (the new convention for enabling PGO) will set MOZ_PGO for SpiderMonkey's moz.configure. Of course, MOZ_PGO=1 in an environment variable still works. And mozharness's setting of this variable has the intended effect. Eventually, I'd like to clean up the mozharness code so it is less PGO aware and enables PGO via ac_add_options. But that's for another day. MozReview-Commit-ID: 1KYPJARI6SJ --HG-- extra : amend_source : 5291cead9f1c1af9ed2a1f608af770bc8e4958c5
This commit is contained in:
Родитель
e26417e1b1
Коммит
02bc7e2b1b
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
# PGO
|
# PGO
|
||||||
# ==============================================================
|
# ==============================================================
|
||||||
option(env='MOZ_PGO', help='Build with profile guided optimizations')
|
js_option(env='MOZ_PGO', help='Build with profile guided optimizations')
|
||||||
|
|
||||||
set_config('MOZ_PGO', depends('MOZ_PGO')(lambda x: bool(x)))
|
set_config('MOZ_PGO', depends('MOZ_PGO')(lambda x: bool(x)))
|
||||||
add_old_configure_assignment('MOZ_PGO', depends('MOZ_PGO')(lambda x: bool(x)))
|
add_old_configure_assignment('MOZ_PGO', depends('MOZ_PGO')(lambda x: bool(x)))
|
||||||
|
|
Загрузка…
Ссылка в новой задаче