Closed
Bug 678409
Opened 14 years ago
Closed 14 years ago
PGO builds with jemalloc broken due to missing jemalloc.pgd
Categories
(Firefox Build System :: General, defect)
Tracking
(Not tracked)
RESOLVED
DUPLICATE
of bug 679334
People
(Reporter: RyanVM, Unassigned)
Details
I haven't been able to do PGO builds with jemalloc enabled the last few days due to this error:
jemalloc.obj
LINK : fatal error LNK1266: error reading instrumentation file 'jemalloc.pgd'; File not found
This occurs on the second pass of the PGO build. I am building on Win7 x64 with MSVC2010 SP1 and using pymake. Looking at $OBJDIR\memory\jemalloc, there is no jemalloc.pgd file present.
Comment 1•14 years ago
|
||
What is the value of the WIN32_OLD_STYLE_JEMALLOC variable in $OBJDIR/config/autoconf.mk?
Reporter | ||
Comment 2•14 years ago
|
||
No value. WIN32_NEW_STYLE_JEMALLOC is set to 1 in ACDEFINES
Comment 3•14 years ago
|
||
That's quite unexpected. I happen to have tried building the new style jemalloc with msvc8 with PGO, which shouldn't be different from a build system perspective on that front, and it worked:
d:/mozilla-build/python25/python2.5.exe /e/builds/moz2_slave/try-w32/build/build/win32/pgomerge.py \
jemalloc ../../dist/firefox
Microsoft (R) Profile Guided Optimization Manager 8.00.50727.762
Copyright (C) Microsoft Corporation. All rights reserved.
Merging ..\..\dist\firefox\jemalloc!1.pgc
e:/builds/moz2_slave/try-w32/build/obj-firefox/config/nsinstall.exe -m 644 /e/builds/moz2_slave/try-w32/build/memory/jemalloc/jemalloc.h /e/builds/moz2_slave/try-w32/build/memory/jemalloc/jemalloc_types.h ../../dist/include
d:/mozilla-build/python25/python2.5.exe /e/builds/moz2_slave/try-w32/build/config/pythonpath.py -I../../config /e/builds/moz2_slave/try-w32/build/config/expandlibs_exec.py --uselist -- link -NOLOGO -DLL -OUT:jemalloc.dll -PDB:jemalloc.pdb -SUBSYSTEM:WINDOWS jemalloc.obj ./module.res -LARGEADDRESSAWARE -NXCOMPAT -DYNAMICBASE -SAFESEH -DEBUG -DEBUGTYPE:CV -DEBUG -OPT:REF -LTCG:PGUPDATE -DEF:e:/builds/moz2_slave/try-w32/build/memory/jemalloc/jemalloc.def kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib
PGOMGR : warning PG0188: No .PGC files matching 'jemalloc!*.pgc' were found.
Creating library jemalloc.lib and object jemalloc.exp
Generating code
102 of 102 (100.00%) profiled functions will be compiled for speed
102 of 102 functions (100.0%) were optimized using profile data
223977090 of 223977090 instructions (100.0%) were optimized using profile data
Finished generating code
There's however another problem you have: failing when no pgd file is present, which is quite unexpected. Here is what happens during the msvc8 build in such case:
d:/mozilla-build/python25/python2.5.exe /e/builds/moz2_slave/try-w32/build/config/pythonpath.py -I../../config /e/builds/moz2_slave/try-w32/build/config/expandlibs_exec.py --uselist -- link -NOLOGO -OUT:crashinject.exe -PDB:crashinject.pdb -LARGEADDRESSAWARE -NXCOMPAT -DYNAMICBASE -SAFESEH -DEBUG -DEBUGTYPE:CV -DEBUG -OPT:REF -LTCG:PGUPDATE crashinject.obj ./module.res kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib
PGOMGR : warning PG0188: No .PGC files matching 'crashinject!*.pgc' were found.
crashinject.pgd(0) : warning C4961: No profile data was merged into 'crashinject.pgd', profile-guided optimizations disabled
Generating code
Finished generating code
There are a lot of files for which we don't expect a pgd file to be there. It would be unfortunate to fail there.
Interestingly, your error code (LNK1266) refers to -LTCG:PGOPTIMIZE (see http://msdn.microsoft.com/en-us/library/1b3ah5he%28v=vs.71%29.aspx ), which we actually don't use. We use -LTCG:PGUPDATE.
Comment 4•14 years ago
|
||
By the way, did you build with a value set for PROFILE_GEN_SCRIPT ?
Updated•14 years ago
|
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → DUPLICATE
Updated•7 years ago
|
Product: Core → Firefox Build System
You need to log in
before you can comment on or make changes to this bug.
Description
•