bug 1250971 - pass cgthreads with number of cores for Windows PGO builds. r?gps
MozReview-Commit-ID: Hf5QoDHXPUz
--- a/configure.in
+++ b/configure.in
@@ -2187,28 +2187,30 @@ ia64*-hpux*)
MOZ_FIX_LINK_PATHS=
MOZ_COMPONENT_NSPR_LIBS='$(NSPR_LIBS)'
LDFLAGS="$LDFLAGS -LARGEADDRESSAWARE -NXCOMPAT"
if test -z "$DEVELOPER_OPTIONS"; then
LDFLAGS="$LDFLAGS -RELEASE"
fi
dnl For profile-guided optimization
PROFILE_GEN_CFLAGS="-GL"
- PROFILE_GEN_LDFLAGS="-LTCG:PGINSTRUMENT"
+ num_cores=$($PYTHON -c 'import multiprocessing; print(min(8,multiprocessing.cpu_count()))')
+ cgthreads="-CGTHREADS${num_cores}"
+ PROFILE_GEN_LDFLAGS="-LTCG:PGINSTRUMENT $cgthreads"
dnl XXX: PGO builds can fail with warnings treated as errors,
dnl specifically "no profile data available" appears to be
dnl treated as an error sometimes. This might be a consequence
dnl of using WARNINGS_AS_ERRORS in some modules, combined
dnl with the linker doing most of the work in the whole-program
dnl optimization/PGO case. I think it's probably a compiler bug,
dnl but we work around it here.
PROFILE_USE_CFLAGS="-GL -wd4624 -wd4952"
dnl XXX: should be -LTCG:PGOPTIMIZE, but that fails on libxul.
dnl Probably also a compiler bug, but what can you do?
- PROFILE_USE_LDFLAGS="-LTCG:PGUPDATE"
+ PROFILE_USE_LDFLAGS="-LTCG:PGUPDATE $cgthreads"
LDFLAGS="$LDFLAGS -DYNAMICBASE"
RCFLAGS="-nologo"
if test "$_CC_MAJOR_VERSION" = "18" -a "$_CC_BUILD_VERSION" = "31101"; then
dnl Use MaxILKSize as a workaround for LNK1248 in VS2013update4
dnl See https://connect.microsoft.com/VisualStudio/feedback/details/1044914/fatal-error-lnk1248
LDFLAGS="$LDFLAGS -MaxILKSize:0x7FF00000"
fi
dnl Minimum reqiurement of Gecko is VS2010 or later which supports