Closed
Bug 593578
Opened 14 years ago
Closed 7 years ago
Header files dependency no longer works when building from english version of VS2005
Categories
(Firefox Build System :: General, defect)
Tracking
(Not tracked)
RESOLVED
WONTFIX
People
(Reporter: mayhemer, Unassigned)
Details
Attachments
(1 file)
135.54 KB,
text/html
|
Details |
Doesn't work in debug builds. Say I have: nsClassA.h nsClassB.h nsClassA.cpp that includes nsClassA.h nsClassB.cpp that includes nsClassA.h and nsClassB.h It used to work that if I modified nsClassA.h both nsClassA.cpp and nsClassB.cpp got rebuilt. It was very reliable, logic and I got used to this. Since a certain moment, when I modify nsClassA.h, only nsClassA.cpp gets rebuilt. This is a silent failure of the build system that mysteriously screwed my builds and cost me time to figure out "what the hell is happening here?" This might start from the time we dump a list of all include files to the console. Workaround is to touch all cpp files that include a modified header or simply do clean and build to be save, what really takes time.
Can you give an example of nsClassA and nsClassB?
Reporter | ||
Comment 2•14 years ago
|
||
dom/src/storage/nsDOMStoragePersistentDB.h for nsClassA.* dom/src/storage/nsDOMStorageDBWrapper.* for nsClassB.*
Comment 3•14 years ago
|
||
Are you using a non-English version of MSVC? If so, this is a dup of bug 587372.
Reporter | ||
Comment 4•14 years ago
|
||
Microsoft Visual Studio 2005 Version 8.0.50727.762 (SP.050727-7600) Microsoft .NET Framework Version 2.0.50727 SP2 Installed Edition: VC Express Microsoft Visual C++ 2005 It is an English version on English legal version of Windows XP (up to date).
Reporter | ||
Comment 5•14 years ago
|
||
I wanted to give you my build log, but modifying a header doesn't make any cpp file to rebuild. It is after a full rebuild (make clean and make of the whole dom tree).
Comment 6•14 years ago
|
||
> This might start from the time we dump a list of all include files to the
> console.
You should not see include files on the console. cl.py seems to fail to find include files for some reason.
Reporter | ||
Comment 7•14 years ago
|
||
Tell me what info about my build config you want and I will provide it. BTW: I am using MozillaBuild package v1.2 (probably quit old). Maybe the problem is here?
Comment 8•14 years ago
|
||
Please provide some output of include files which you see on the console.
Reporter | ||
Comment 9•14 years ago
|
||
I modified d:\mozilla\mozilla-central\dom\src\storage\nsDOMStoragePersistentDB.cpp, cd to d:\mozilla\mozilla-central\_obj-browser-debug\dom\src\storage\ and run make, done from within VC IDE as a build command.
Reporter | ||
Comment 10•14 years ago
|
||
Another clue: nsDOMStorageDBWrapper._cpp_ doesn't include directly the nsDOMStoragePersistentDB.h, but nsDOMStorageDBWrapper._h_ does.
Comment 11•14 years ago
|
||
Ah, so it's a second-level dependency.
ShowIncludes should pick those up. You shouldn't be getting the output directed to the console. The problem is most likely tied to that.
Comment 13•14 years ago
|
||
Could you reproduce it without VC IDE?
Reporter | ||
Comment 14•14 years ago
|
||
OK, I did more testing. - when I do "cd _obj-browser-debug/dom/src/storage/ ; make" from the IDE (while nsDOMStorageDBWrapper.cpp and nsDOMStoragePersistentDB.cpp were both modified, i.e. they were rebuilt by calling make from the IDE) and then I do "make -C _obj-browser-debug/dom/src/storage/" from bash prompt while I changed nsDOMStoragePersistentDB.h, NONE of the cpp files is rebuilt (so it looks like running make from the IDE is not correctly filling some dependencies cache?) - when I modify nsDOMStorageDBWrapper.cpp and do make -C _obj-browser-debug/dom/src/storage/ from bash prompt and then I modify nsDOMStoragePersistentDB.h and run make -C _obj-browser-debug/dom/src/storage/ from bash prompt again, then nsDOMStorageDBWrapper.cpp is rebuilt, but only this file, while I would expect also nsDOMStoragePersistentDB.cpp gets rebuilt. - so, I modified also nsDOMStoragePersistentDB.cpp, rebuilt from bash again (it got rebuilt as expected), then I modified nsDOMStoragePersistentDB.h, and ran make again from bash prompt and, what a surprise? - both files get rebuilt as expected now! I tried to change the command in IDE project from "cd _obj/project ; make" to "make -C _obj/project" and it DIDN'T help.
Comment 15•14 years ago
|
||
It seems that python cannot catch the redirected output from a child process if it is launched from the VC IDE for some unknown reason.
Reporter | ||
Updated•14 years ago
|
Summary: Header files dependency no longer works under Windows → Header files dependency no longer works when building from english version of VS2005
Reporter | ||
Comment 16•14 years ago
|
||
(In reply to comment #15) > It seems that python cannot catch the redirected output from a child process if > it is launched from the VC IDE for some unknown reason. Can I check this theory somehow?
Reporter | ||
Comment 17•13 years ago
|
||
Forgot to mention: I can see the list of headers, generated by ShowIncludes, displayed in the build output window of VS IDE.
Comment 18•13 years ago
|
||
(In reply to comment #17) > Forgot to mention: I can see the list of headers, generated by ShowIncludes, > displayed in the build output window of VS IDE. Headers should not be displayed in the build output window if python caught the redirected output correctly. So I believe my theory was correct. However I have no idea how to fix the problem :-(
Comment 19•7 years ago
|
||
We don't support VS2005 any more.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → WONTFIX
Updated•6 years ago
|
Product: Core → Firefox Build System
You need to log in
before you can comment on or make changes to this bug.
Description
•