Closed
Bug 83589
Opened 24 years ago
Closed 24 years ago
Doing a commercial build clobbers DefinesOptions.h, forcing an entire rebuild
Categories
(SeaMonkey :: Build Config, defect, P3)
Tracking
(Not tracked)
RESOLVED
FIXED
mozilla0.9.6
People
(Reporter: sfraser_bugs, Assigned: sfraser_bugs)
Details
Attachments
(4 files)
|
4.85 KB,
patch
|
Details | Diff | Splinter Review | |
|
7.84 KB,
patch
|
Details | Diff | Splinter Review | |
|
14.78 KB,
patch
|
Details | Diff | Splinter Review | |
|
5.94 KB,
patch
|
Details | Diff | Splinter Review |
When you do a commercial build (whose scripts contain a different set of build
options), we recreate DefinesOptions.h, which dirties the entire Mozilla tree.
This is very evil. We need to somehow ensure that the commercial scripts don't
clobber the mozilla build options.
Comment 1•24 years ago
|
||
Huaarh. Let's fight the evil.
Status: NEW → ASSIGNED
Priority: -- → P3
Target Milestone: --- → mozilla0.9.3
Comment 2•24 years ago
|
||
This seems quite recent to me. I remember seeing depend cycles being much shorter
not that long ago. What happened and how hard is it to fix this ?
| Assignee | ||
Comment 3•24 years ago
|
||
The simple fix is to just copy the build options from MozillaBuildFlags.txt into
the commercial equivalent. The slightly more involved fix is to have the scripts
grab MozillaBuildFlags.txt from the mozilla tree, and overlay any commercial-
specific options. The sripts should probably flag discrepancies between the
options settings in a user's mozilla and commercial prefs.
| Assignee | ||
Comment 4•24 years ago
|
||
Thinking some more, the real bug is this:
The commercial scripts (living in ns/build/mac) are regenerating the file
mozilla/config/mac/DefinesOptions.h. This is wrong. They do this because
BuildCore.pm's ConfigureBuildSystem() subroutine has:
UpdateConfigHeader(":mozilla:config:mac:DefinesOptions.h");
We're gonna have to feed in that path from the top-level script, probably as a
member of %inputfiles.
Comment 5•24 years ago
|
||
Comment 6•24 years ago
|
||
Haven't tried it but it should work. Anyone want to try it or review it?
| Assignee | ||
Comment 7•24 years ago
|
||
Looks good. The only comment I have is that the BuildCore.pm module still
contains a mozilla-relative path: ":mozilla:config:mac:" which, ideally, it
should not. Maybe we should send in the entire path via
filepaths{"optionsdefines"} ?
The patch also doesn't address the issue of sharing options between the netscape
and mozilla builds, though I'm not sure what the correct approach is here.
Comment 8•24 years ago
|
||
Hmmm, ignore that previous patch, it doesn't work at all. I'd say I must have
smoking something but I don't smoke :/. Attaching a patch that seems to work.
Comment 9•24 years ago
|
||
| Assignee | ||
Comment 10•24 years ago
|
||
sr=sfraser if you rename "$definesoption_file_name" to "$config_header_file_name"
or something.
Comment 11•24 years ago
|
||
Just saw the commercial dep tinderbox finish in 40 minutes, down from about 2 hours.
Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
Comment 13•24 years ago
|
||
Yep, confirming that cycle time dropped: both NS depend tinderbox and morning
depend verification build gained about 1 hour. Excellent job!
btw, I've been timing all the systems before the major hardware shuffle I'm about
to operate!
NS depend trunk cycle = +/- 50mn (using a G4 450)
NS BRANCH depend cycle = +/- 1h50mn (G4 533)...
Which naturally leads me to the next question: Any chance this can land on the
0.9.2 branch as well?
Status: RESOLVED → VERIFIED
Build system change, been tested on trunk, looks good. nsBranch+ by me.
Keywords: nsBranch
Whiteboard: nsBranch+
Updated•24 years ago
|
Whiteboard: nsBranch+ → [nsBranch+]
Comment 15•24 years ago
|
||
Checked in on the branch, commercial mac branch tinderbox now cycles happily in
50 mins, down from 2 hours. [PDT+] by Chris Hoffmann in mail.
| Assignee | ||
Comment 16•24 years ago
|
||
Reopening. This fix prevents me from doing an optimized build over an existing
debug build, without clobbering all the built library aliases.
Status: VERIFIED → REOPENED
Resolution: FIXED → ---
| Assignee | ||
Comment 17•24 years ago
|
||
| Assignee | ||
Comment 18•24 years ago
|
||
| Assignee | ||
Comment 19•24 years ago
|
||
Those two patches should, hopefully, get us back into a state where we can do opt
and debug builds in the same tree. The changes I made are:
* Removing some old decrepit include files (MacConfig.h, ComponentConfig.h,
MANIFEST_config)
* Adding
+#ifdef DEBUG
+#include "DefinesOptionsDebug.h"
+#else
+#include "DefinesOptions.h"
+#endif
into NGLayoutConfigInclude.h (mozilla) and MacConfigInclude.h (ns)
* Standardize the auto-gen header names (DefinesOptions{Debug}.h)
* Adding a 'config' build step.
* Adding PrepareBuild() to the mozilla & ns build modules
* Moved UpdateConfigHeader() from BuildCore.pm into BuildUtils.pm
* Fixing UpdateConfigHeader() to be more flexible about matching, and to put
a comment in the generated file.
Things to fix in future:
Clean up the mozilla and netscape include files; they are a mess.
NGLayoutConfigInclude.h gets aliased into the tree with a different name, for no
good reason.
Comment 20•24 years ago
|
||
Very nice! Thanks. r=peterv.
Updated•24 years ago
|
Whiteboard: [nsBranch+] → Have r=peterv, need sr.
Target Milestone: mozilla0.9.3 → mozilla0.9.4
Comment 21•24 years ago
|
||
sr=scc on the latest two patches above (i.e., 41864 and 41865)
| Assignee | ||
Updated•24 years ago
|
Assignee: peterv → sfraser
Status: REOPENED → NEW
Whiteboard: Have r=peterv, need sr.
| Assignee | ||
Comment 22•24 years ago
|
||
Mine
| Assignee | ||
Comment 23•24 years ago
|
||
Close to being in, but out of time.
Status: NEW → ASSIGNED
Target Milestone: mozilla0.9.4 → mozilla0.9.5
| Assignee | ||
Comment 25•24 years ago
|
||
Changes checked in.
Status: ASSIGNED → RESOLVED
Closed: 24 years ago → 24 years ago
Resolution: --- → FIXED
Updated•21 years ago
|
Product: Browser → Seamonkey
You need to log in
before you can comment on or make changes to this bug.
Description
•