Closed Bug 54828 Opened 24 years ago Closed 20 years ago

Build should default to non-debug/optimized build.

Categories

(SeaMonkey :: Build Config, enhancement)

enhancement
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
mozilla1.8alpha1

People

(Reporter: mozilla, Assigned: leaf)

References

Details

Attachments

(3 files, 1 obsolete file)

Now, that we are getting closer to Mozilla 1.0, more ordinary/everyday users are starting to compile mozilla (mostly on linux and bsd). They expect that like most applications they will get a useable optimized build with no debugging. I've talked to several people that compiled and used mozilla for the first time and were wondering why it took 1.5 gigs of space and was so slow. They didn't realize that they really had a debug build. So i propose that we make the following options the default unless explicitly stated to override them in the .mozconfig or in configure: ac_add_options --disable-tests ac_add_options --disable-debug ac_add_options --enable-optimize
On Linux, I would leave --enable-debug. That's pretty much the autoconf way.
Please consider that our DEBUG code is *painfully* slow. DEBU is said to usually costs 5-10% of performance, but a DEBUG Mozilla seems to be twice as slow as an optimized build. Add to that the fact that gdb is not very good at debugging Mozilla, and I vote for making the proposed options (plus --strip-libs) the default. That's what I also use (and I *do* dev, unlike the majority of people compiling Mozilla).
Most of the slowness is in nspr. If you build outside the source tree you can say --enable-nspr-autoconf --enable-optimize and get an optimized nspr with debugging symbols which is*much* faster. You can't do that if you build in the source tree; maybe you should. Mozilla uses a special nspr branch and most people who build aren't interested in building some other nspr. I really really think debugging symbols should be available, otherwise you'll get lots of fairly useless bug reports.
I agree that stack traces are useful, but - Mozilla official testing builds (nightlies) also come without debugging symbols - there's no relativity if it makes Mozilla much slower. If you can fix this by disabling debugging in NSPR, fine, but I doubt it, given what some of our macros do in DEBUG mode.
Despite the nearness of a NS6 beta3 release and the planned schedule for a moz1.0 release (still 6 months away), I don't see the project as being ready for the end user yet. (It's barely reached dogfood for me but maybe I'm just picky.) Sure, being optimized will make things faster...when it's not causing inexplicable crashes (Bug 53486). At this point, I think we still need the debug symbols in order to get a good set of bug reports with stack traces and lines numbers,etc. Bumping out to mozilla 1.0.
Status: NEW → ASSIGNED
Target Milestone: --- → mozilla1.0
Target Milestone: mozilla1.0 → mozilla0.9
Target Milestone: mozilla0.9 → mozilla1.0
Keywords: adt1.0.0
Priority: P3 → P1
r=dmose for the LDAP changes.
Is this the right time to do this? Branch developers are in danger of losing a day of work if they do not know about this, and they were expecting to get a debug build.
At this point in the game, I don't imagine that defaulting to debug builds is going to be much help in fixing the issues that are key for release. We need people testing optimized builds by default. (And it should lessen the cries of "You need 1.5 *gig* to build the tree?!?!?") The people that need to make debug builds know how to do it. The pending change will be announced to all of the usual channels (-internal,n.p.m.builds, etc) before the patch is checked in.
Keywords: adt1.0.1
Mass removing adt1.0.0, and adding adt1.0.1 because, we are now on 1.0.1.
Keywords: adt1.0.0
Keywords: mozilla1.0mozilla1.0.1
Target Milestone: mozilla1.0 → mozilla1.0.1
no real user impact = adt1.0.1-. let's get it into the next release.
Keywords: adt1.0.1adt1.0.1-
Whiteboard: [adt3 RTM]
Changing target milestone to 'Future' since 'mozilla1.0.1' came and went already.
Target Milestone: mozilla1.0.1 → Future
Mass reassign to default build config owner
Assignee: cls → mozbugs-build
Status: ASSIGNED → NEW
Priority: P1 → --
Mass reassign of Build/Config bugs to Leaf.
Assignee: mozbugs-build → leaf
Target Milestone: Future → ---
Attachment #78852 - Attachment is obsolete: true
Attachment #146531 - Flags: superreview?(leaf)
Attachment #146531 - Flags: review?(bsmedberg)
Attachment #146532 - Flags: review?(wchang0222)
Attachment #146533 - Flags: review?(dmose)
Comment on attachment 146532 [details] [diff] [review] Allow nspr to accept multiple --{enable,disable}-{optimize,debug} statements r=wtc.
Attachment #146532 - Flags: review?(wchang0222) → review+
Comment on attachment 146531 [details] [diff] [review] Build moz optimized & non-debug by default woohoo! Of course, advance warning on npm.seamonkey and .builds is in order before this actually lands.
Attachment #146531 - Flags: review?(bsmedberg) → review+
Comment on attachment 146533 [details] [diff] [review] Allow ldap to accept multiple --{enable,disable}-{optimize,debug} statements rs=dmose
Attachment #146533 - Flags: review?(dmose) → review+
Comment on attachment 146531 [details] [diff] [review] Build moz optimized & non-debug by default woot. so --disable-debug is a noop now. has this been announced as upcoming in the newsgroups? (obviously, i haven't been keeping up)
Attachment #146531 - Flags: superreview?(leaf) → superreview+
I just sent the announcement out to the ngs. I'm shooting for Friday for checking in the mozilla changes. The NSPR & LDAP changes have been checked into their respective trunks & client branches.
The moz patch has been checked in.
Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla1.8alpha
i assume this affects camino as well? guess i better go update the build instructions.
So we default to non-debug, optimized builds on the trunk, but still debug and non-optimized on the aviary and 1.7-branch. Does that make sense? trunk: http://bonsai.mozilla.org/cvsblame.cgi?file=mozilla/configure.in&rev=1.1335.2.6.2.14&mark=4216-4221,4247-4249,4267-4270#4216 aviary: http://bonsai.mozilla.org/cvsblame.cgi?file=mozilla/configure.in&rev=1.1375&mark=4450-4453,4478-4481,4499-4501#4450
Whiteboard: [adt3 RTM]
Blocks: 265223
(In reply to comment #25) > So we default to non-debug, optimized builds on the trunk, but still debug and > non-optimized on the aviary and 1.7-branch. Does that make sense? yes
biesi: that was a singularly non-helpful response. I think Steffen has a good point, because all the builds that we ship should do what good autoconfiscated packages generally do by default: "./configure && make && make install" should generate a package suitable for an end-user.
Flags: blocking-aviary1.0?
well, I weren't sure what Steffen was asking... AIUI, we can't make ./configure && make && make install be suitable for an end-user, because we can't enable crypto by default due to us export laws, and end-users certainly want HTTPS. I agree that making optimized builds by default is a good thing. I don't think it should change at this point on 1.7 branch (stable branch... changing default configuration doesn't seem like too good an idea to me). I guess for FF 1.0 it might be good to enable optimized by default; but it doesn't matter much because ff has comparatively complicated steps to compile it anyway (set MOZ_PHOENIX, source browser/config/mozconfig, etc)
Not for the branch(es), arbitrary change is bad at this point.
Flags: blocking-aviary1.0? → blocking-aviary1.0-
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: