Closed Bug 675593 Opened 13 years ago Closed 13 years ago

nspr4!1.pgc path misstake on nspr pgo build

Categories

(Firefox Build System :: General, defect)

x86
Windows XP
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
mozilla10

People

(Reporter: hATrayflood, Assigned: hATrayflood)

Details

Attachments

(3 files, 3 obsolete files)

User Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
Build ID: 20110615151330

Steps to reproduce:

nspr pgo patch (Bug 564851) pushed to mozilla-central. and I tried pgo build.


Actual results:

when create nspr4_s.lib, missing -LTCG.

rm -f nspr4_s.lib
lib -NOLOGO -OUT:"nspr4_s.lib"  ./prvrsion.obj io/./prfdcach.obj io/./prmwait.obj io/./prmapopt.obj io/./priometh.obj io/./pripv6.obj io/./prlayer.obj io/./prlog.obj io/./prmmap.obj io/./prpolevt.obj io/./prprf.obj io/./prscanf.obj io/./prstdio.obj threads/./prcmon.obj threads/./prrwlock.obj threads/./prtpd.obj linking/./prlink.obj malloc/./prmalloc.obj malloc/./prmem.obj md/./prosdep.obj memory/./prshm.obj memory/./prshma.obj memory/./prseg.obj misc/./pralarm.obj misc/./pratom.obj misc/./prcountr.obj misc/./prdtoa.obj misc/./prenv.obj misc/./prerr.obj misc/./prerror.obj misc/./prerrortable.obj misc/./prinit.obj misc/./prinrval.obj misc/./pripc.obj misc/./prlog2.obj misc/./prlong.obj misc/./prnetdb.obj misc/./praton.obj misc/./prolock.obj misc/./prrng.obj misc/./prsystem.obj misc/./prthinfo.obj misc/./prtpool.obj misc/./prtrace.obj misc/./prtime.obj io/./prdir.obj io/./prfile.obj io/./prio.obj io/./prsocket.obj misc/./pripcsem.obj threads/./prcthr.obj threads/./prdump.obj threads/./prmon.obj threads/./prsem.obj threads/combined/./prucpu.obj threads/combined/./prucv.obj threads/combined/./prulock.obj threads/combined/./prustack.obj threads/combined/./pruthr.obj md/windows/./ntmisc.obj md/windows/./ntsec.obj md/windows/./ntsem.obj md/windows/./ntinrval.obj md/windows/./ntgc.obj md/windows/./w95thred.obj md/windows/./w95io.obj md/windows/./w95cv.obj md/windows/./w95sock.obj md/windows/./win32_errors.obj md/windows/./w32ipcsem.obj md/windows/./w32poll.obj md/windows/./w32rng.obj md/windows/./w32shm.obj md/windows/./w95dllmain.obj  
w95dllmain.obj : MSIL .netmodule または /GL を伴ってコンパイルされたモジュールが見つかりました。/LTCG を使用して再開始してください。リンカのパフォーマンスを向上させるためには、コマンドラインに /LTCG を追加してください。
echo not_ranlib nspr4_s.lib
not_ranlib nspr4_s.lib


and when merge nspr4!1.pgc, It from objdir/dist/bin, not objdir/dist/firefox.

make[9]: Entering directory `/f/mozilla/nightly/mozilla-central/obj-i686-pc-mingw32/nsprpub/pr/src'
rm -f nspr4.dll
python /f/mozilla/nightly/mozilla-central/nsprpub/build/win32/pgomerge.py \
		nspr4 f:/mozilla/nightly/mozilla-central/obj-i686-pc-mingw32/dist/bin
Microsoft(R) Profile Guided Optimization Manager 9.00.21022.08
Copyright (C) Microsoft Corporation. All rights reserved.

f:\mozilla\nightly\mozilla-central\obj-i686-pc-mingw32\dist\bin\nspr4!1.pgc のマージ中
link -nologo -DLL -SUBSYSTEM:WINDOWS -MANIFEST:NO -LIBPATH:"f:/mozilla/nightly/mozilla-central/obj-i686-pc-mingw32/memory/jemalloc/crtsrc/build/intel" -NODEFAULTLIB:msvcrt -NODEFAULTLIB:msvcrtd -NODEFAULTLIB:msvcprt -NODEFAULTLIB:msvcprtd -DEFAULTLIB:mozcrt19 -DEFAULTLIB:mozcpp19 -DYNAMICBASE -OUT:"nspr4.dll" -LTCG:PGUPDATE -MAP   advapi32.lib wsock32.lib winmm.lib ./prvrsion.obj io/./prfdcach.obj io/./prmwait.obj io/./prmapopt.obj io/./priometh.obj io/./pripv6.obj io/./prlayer.obj io/./prlog.obj io/./prmmap.obj io/./prpolevt.obj io/./prprf.obj io/./prscanf.obj io/./prstdio.obj threads/./prcmon.obj threads/./prrwlock.obj threads/./prtpd.obj linking/./prlink.obj malloc/./prmalloc.obj malloc/./prmem.obj md/./prosdep.obj memory/./prshm.obj memory/./prshma.obj memory/./prseg.obj misc/./pralarm.obj misc/./pratom.obj misc/./prcountr.obj misc/./prdtoa.obj misc/./prenv.obj misc/./prerr.obj misc/./prerror.obj misc/./prerrortable.obj misc/./prinit.obj misc/./prinrval.obj misc/./pripc.obj misc/./prlog2.obj misc/./prlong.obj misc/./prnetdb.obj misc/./praton.obj misc/./prolock.obj misc/./prrng.obj misc/./prsystem.obj misc/./prthinfo.obj misc/./prtpool.obj misc/./prtrace.obj misc/./prtime.obj io/./prdir.obj io/./prfile.obj io/./prio.obj io/./prsocket.obj misc/./pripcsem.obj threads/./prcthr.obj threads/./prdump.obj threads/./prmon.obj threads/./prsem.obj threads/combined/./prucpu.obj threads/combined/./prucv.obj threads/combined/./prulock.obj threads/combined/./prustack.obj threads/combined/./pruthr.obj md/windows/./ntmisc.obj md/windows/./ntsec.obj md/windows/./ntsem.obj md/windows/./ntinrval.obj md/windows/./ntgc.obj md/windows/./w95thred.obj md/windows/./w95io.obj md/windows/./w95cv.obj md/windows/./w95sock.obj md/windows/./win32_errors.obj md/windows/./w32ipcsem.obj md/windows/./w32poll.obj md/windows/./w32rng.obj md/windows/./w32shm.obj md/windows/./w95dllmain.obj  ./nspr.res
PGOMGR : 警告 PG0188: 'nspr4!*.pgc' に一致する .PGC ファイルは見つかりませんでした。
   ライブラリ nspr4.lib とオブジェクト nspr4.exp を作成中
コード生成しています。
840 of 840 (100.00%) profiled functions will be compiled for speed
840 of 840 functions (100.0%) were optimized using profile data
4721882 of 4721882 instructions (100.0%) were optimized using profile data
コード生成が終了しました。
nsinstall -m 444 ./nspr4_s.lib ./nspr4.dll ./nspr4.lib f:/mozilla/nightly/mozilla-central/obj-i686-pc-mingw32/dist/lib
nsinstall -m 444 ./nspr4.dll f:/mozilla/nightly/mozilla-central/obj-i686-pc-mingw32/dist/bin
make[9]: Leaving directory `/f/mozilla/nightly/mozilla-central/obj-i686-pc-mingw32/nsprpub/pr/src'
Attached patch add -LTCG and fix !1.pgc path (obsolete) — Splinter Review
add -LTCG to AR_FLAGS when WINNT nsprpub/config/config.mk:84,94.

nspr module hasn't MOZ_APP_NAME.
I brought it from mozilla/configure.in:9558 to nsprpub/config/autoconf.mk.in:8.
and use it to merge !1.pgc nsprpub/config/rules.mk:288,343.
Attachment #549755 - Flags: review?(wtc)
Ted: could you take a look at this bug?

h.rayflood: we cannot pass MOZ_APP_NAME to NSPR's build system, because
NSPR is an independent library even though it is affiliated with the Mozilla
project.  Please come up with a patch that does not require passing
MOZ_APP_NAME to NSPR's build system.  Thanks.
Assignee: nobody → ted.mielczarek
Attachment #549755 - Attachment is obsolete: true
Attachment #549755 - Flags: review?(wtc)
Attachment #550031 - Flags: review?(wtc)
Comment on attachment 550031 [details] [diff] [review]
patch v2: add -LTCG and copy !1.pgc before merge

Ted, could you review this patch?  I am not familiar with PGO builds.
Thanks.
Attachment #550031 - Flags: superreview?(ted.mielczarek)
Attachment #562314 - Flags: review?(ted.mielczarek)
Product: Firefox → Core
QA Contact: build.config → build-config
Attachment #562471 - Flags: review?(ted.mielczarek)
Does patch v3 supersede patch v2?
(In reply to Ted Mielczarek [:ted, :luser] from comment #8)
> Does patch v3 supersede patch v2?

oh, sorry sorry, patch v2 is obsolete.
Attachment #550031 - Attachment is obsolete: true
Attachment #550031 - Flags: superreview?(ted.mielczarek)
Attachment #550031 - Flags: review?(wtc)
Comment on attachment 562314 [details] [diff] [review]
patch v3: move pgc from objdir/dist/firefox to objdir/dist/bin

Review of attachment 562314 [details] [diff] [review]:
-----------------------------------------------------------------

::: Makefile.in
@@ +212,5 @@
>  endif
>  else
>  maybe_clobber_profiledbuild:
> +	$(RM) $(DIST)/bin/*.pgc
> +	mv $(DIST)/$(MOZ_APP_NAME)/*.pgc $(DIST)/bin

Maybe this should be -mv, so that this doesn't fail if there are no pgc files there?

::: nsprpub/config/config.mk
@@ +95,2 @@
>  endif # MOZ_PROFILE_USE
> +endif # NO_PROFILE_GUIDED_OPTIMIZE

These changes look fine, but please split them off into a separate patch so I can land them in NSPR CVS for you.
Attachment #562314 - Flags: review?(ted.mielczarek) → review+
Attachment #562471 - Flags: review?(ted.mielczarek) → review+
Assignee: ted.mielczarek → h.rayflood
Attachment #562314 - Attachment is obsolete: true
Attachment #565785 - Flags: review?(ted.mielczarek)
Attachment #565786 - Flags: review?(ted.mielczarek)
(In reply to Ted Mielczarek [:ted, :luser] from comment #10)
> Comment on attachment 562314 [details] [diff] [review] [diff] [details] [review]
> patch v3: move pgc from objdir/dist/firefox to objdir/dist/bin
> 
> Review of attachment 562314 [details] [diff] [review] [diff] [details] [review]:
> -----------------------------------------------------------------
> 
> ::: Makefile.in
> @@ +212,5 @@
> >  endif
> >  else
> >  maybe_clobber_profiledbuild:
> > +	$(RM) $(DIST)/bin/*.pgc
> > +	mv $(DIST)/$(MOZ_APP_NAME)/*.pgc $(DIST)/bin
> 
> Maybe this should be -mv, so that this doesn't fail if there are no pgc
> files there?
> 
Thank you for your review.
I use find and mv instead of simple mv.

> ::: nsprpub/config/config.mk
> @@ +95,2 @@
> >  endif # MOZ_PROFILE_USE
> > +endif # NO_PROFILE_GUIDED_OPTIMIZE
> 
> These changes look fine, but please split them off into a separate patch so
> I can land them in NSPR CVS for you.

I attached patch v3 for nsprpub.
Attachment #565785 - Flags: review?(ted.mielczarek) → review+
Attachment #565786 - Flags: review?(ted.mielczarek) → review+
Comment on attachment 565786 [details] [diff] [review]
patch v3 for nsprpub

Checking in config/config.mk;
/cvsroot/mozilla/nsprpub/config/config.mk,v  <--  config.mk
new revision: 3.36; previous revision: 3.35
done
Checking in config/config.mk;
/cvsroot/mozilla/nsprpub/config/config.mk,v  <--  config.mk
new revision: 3.36; previous revision: 3.35
done
Keywords: checkin-needed
Attachment #565786 - Flags: checkin+
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Comment on attachment 565785 [details] [diff] [review]
patch v3.1 for mozilla-central

Try run:
(I added mk_add_options MOZ_PGO=1 to the win32 nightly mozconfig, so hopefully this should test the right thing...)

https://tbpl.mozilla.org/?tree=Try&rev=535f4b9788ef
Whiteboard: [checkin-needed for c-c] [m-c part: on merge, leave open]
Target Milestone: --- → mozilla10
Whiteboard: [checkin-needed for c-c] [m-c part: on merge, leave open] → [checkin-needed for c-c]
http://hg.mozilla.org/comm-central/rev/c38d6dd2c8b7
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Keywords: checkin-needed
Resolution: --- → FIXED
Whiteboard: [checkin-needed for c-c]
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.