Closed Bug 286179 Opened 20 years ago Closed 20 years ago

make parallel builds possible on Windows using MSVC

Categories

(Firefox Build System :: General, defect)

x86
Windows XP
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: chase, Assigned: chase)

Details

(Keywords: fixed1.8.1.1)

Attachments

(2 files)

Figure out why distcc and parallel builds fail on Windows. My last try to make this work was on chroma. The build error log is at: http://tinderbox.mozilla.org/showlog.cgi?log=Mozilla-l10n/1110855013.8962.gz&fulltext=1 At the time, I was running distccd on sweetlou.
Parallel builds fail on MSVC builds because certain versions of MSVC write debug information to a .pdb file per directory. During a parallel build, 2 instances of MSVC are attempting to write to the same file which doesn't work. gcc builds do not have this problem. I thought newer versions of MSVC used a different debugging mechanism so that this was no longer a problem?
Summary: make distcc/parallel builds possible on Windows → make distcc/parallel builds possible on Windows using MSVC
(In reply to comment #1) > Parallel builds fail on MSVC builds because certain versions of MSVC write debug > information to a .pdb file per directory. During a parallel build, 2 instances > of MSVC are attempting to write to the same file which doesn't work. gcc builds > do not have this problem. Hmm, from config/rules.mk the code appears to use $LIBRARY_NAME.pdb if $LIBRARY_NAME is defined and <filename>.pdb otherwise. This code is only invoked on Windows if the compiler isn't gcc. Can someone confirm this? http://lxr.mozilla.org/mozilla/source/config/rules.mk#175 I'm tempted to tender a patch that removes the $LIBRARY_NAME conditional and dump debug information into <filename>.pdb files across the board instead. What reasons were there to dump debugging information from multiple files into a single .pdb file? Are they still valid? > I thought newer versions of MSVC used a different debugging mechanism so that > this was no longer a problem? I'm not certain what MSVC versions you mean when you say "newer" but we're still using MSVC 6 for builds in-house.
Status: NEW → ASSIGNED
Summary: make distcc/parallel builds possible on Windows using MSVC → make parallel builds possible on Windows using MSVC
The /PDB:file rules came from the legacy Netscape nmake build system so I'm not sure what the justification for a single .pdb file is. Can you pass multiple .pdb files to the linker? Yes, the .pdb files are not used by gcc. I thought that bryner was doing some work to support debugging using something other than .pdb files for MSVC7.1 but I could just be misremembering an old bug.
Attachment #182988 - Flags: superreview?(cls)
Attachment #182988 - Flags: review?(bryner)
Attachment #182988 - Flags: review?(bryner) → review+
Attachment #182988 - Flags: superreview?(cls) → superreview+
Comment on attachment 182988 [details] [diff] [review] write debug symbols into separate pdb files - v 1 [checked in] I'll work with Jay to monitor symbol generation and Talkback. At some point we should have enough crash data on 1.1a1 to be certain that keeping this fix is the right thing to do.
Attachment #182988 - Flags: approval-aviary1.1a2?
Comment on attachment 182988 [details] [diff] [review] write debug symbols into separate pdb files - v 1 [checked in] a=chase
Attachment #182988 - Flags: approval-aviary1.1a2? → approval-aviary1.1a2+
Comment on attachment 182988 [details] [diff] [review] write debug symbols into separate pdb files - v 1 [checked in] Landed this on the trunk plus an accompanying comment to make intent clear. Checking in rules.mk; /cvsroot/mozilla/config/rules.mk,v <-- rules.mk new revision: 3.475; previous revision: 3.474 done
Attachment #182988 - Attachment description: write debug symbols into separate pdb files - v 1 → write debug symbols into separate pdb files - v 1 [checked in]
Status: ASSIGNED → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
Attached patch missing linkSplinter Review
Attachment #242403 - Flags: review?(chase)
Attachment #242403 - Flags: review?(chase) → review+
Comment on attachment 242403 [details] [diff] [review] missing link MSVC debug build config only, no effect on releases.
Attachment #242403 - Flags: approval1.8.1?
Not for 1.8.1. Let's have this bake for a week on trunk and we can pick it up for 1.8.1.1
Comment on attachment 242403 [details] [diff] [review] missing link as per bsmedberg's comment
Attachment #242403 - Flags: approval1.8.1?
Attachment #242403 - Flags: approval1.8.1.1?
Attachment #242403 - Flags: approval1.8.1-
Comment on attachment 242403 [details] [diff] [review] missing link approved for 1.8 branch, a=dveditz for drivers
Attachment #242403 - Flags: approval1.8.1.1? → approval1.8.1.1+
Fix checked in to the branch.
Keywords: fixed1.8.1.1
Component: Build Config → General
Product: Firefox → Firefox Build System
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: