RESOLVED FIXED 16210
Building on Windows outside HOME directory fails
https://bugs.webkit.org/show_bug.cgi?id=16210
Summary Building on Windows outside HOME directory fails
Brent Fulgham
Reported 2007-11-30 12:56:54 PST
OVERVIEW: Using the results of update-webkit as of 11:30 AM on 2007-11-30 (and various attempts yesterday) I get a build failure if I attempt to build WebKit outside of my Cygwin home directory. STEPS TO REPRODUCE: 1. Follow installation instructions for build tools from WebKit.org site. 2. Perform the "svn checkout" in a non-home directory, e.g.: $ cd /cygdrive/d/Development $ svn checkout http://svn.webkit.org/repository/webkit/trunk WebKit ... time passes ... 3. Update PATH to use /cygdrive/d/Development/WebKit/WebKitTools/Scripts 4. Copy the "WebKitSupportLibrary.zip" to /cygdrive/d/Development/WebKit 5. Perform an "update-webkit". 6. Perform a "build-webkit". 7. Build fails complaining of missing files (e.g,. "wtf/Platform.h") that are clearly present in the directory structure, e.g.: 9>GEN_DOMHTMLTextAreaElement.cpp 9>d:\development\WebKit\WebKit\WebKitBuild\Include\JavaScriptCore\config.h(22) : fatal error C1083: Cannot open include file: 'wtf/Platform.h': No such file or directory 9>GEN_DOMHTMLTableSectionElement.cpp ... 12>Build log was saved at "file://d:\development\WebKit\WebKit\WebKitBuild\obj\T estNetscapePlugin\Release\BuildLog.htm" 12>TestNetscapePlugin - 3 error(s), 0 warning(s) 11>d:\development\webkit\webkit\webkittools\drosera\win\DebuggerClient.h(35) : f atal error C1083: Cannot open include file: 'WebCore/COMPtr.h': No such file or directory WORKAROUND: If I move the source tree to my home directory: /cygdrive/c/Fulgham/WebKit, everything builds properly. bfulgham@bfulgham ~/WebKit $ pwd /cygdrive/c/Fulgham/WebKit PLATFORM: * Windows XP SP 2 * Microsoft Visual Studio 2005 Professional (Service Pack 1). * Cygwin installation based on the WebKit installer package, updated yesterday to current versions of everything. Note: I am building using Microsoft Platform SDK from 2005 (not the current 2006 version). I do not believe this is related, though I will be updating this today.
Attachments
Build log of failure (49.04 KB, text/plain)
2007-11-30 12:57 PST, Brent Fulgham
no flags
Build after a clean... (563.96 KB, text/plain)
2007-12-01 11:16 PST, Brent Fulgham
no flags
Brent Fulgham
Comment 1 2007-11-30 12:57:57 PST
Created attachment 17610 [details] Build log of failure Attached is the build log from my failed build attempt.
Adam Roben (:aroben)
Comment 2 2007-12-01 01:28:34 PST
These lines from the build log indicate that things went badly right from the start: 1>------ Build started: Project: dftables, Configuration: Debug Win32 ------ 2>------ Build started: Project: WTF, Configuration: Release Win32 ------ 1>dftables : warning PRJ0009 : Build log could not be opened for writing. 1>Make sure that the file is not open by another process and is not write-protected. 2>WTF : warning PRJ0009 : Build log could not be opened for writing. 2>Make sure that the file is not open by another process and is not write-protected.
Brent Fulgham
Comment 3 2007-12-01 11:16:45 PST
Created attachment 17631 [details] Build after a clean... Revised build log. Note that after a failure, devenv often stays running locking log files and so forth. I purged everything and reran, which should give you a better log.
Adam Roben (:aroben)
Comment 4 2007-12-01 11:24:23 PST
Comment on attachment 17631 [details] Build after a clean... The first error: 5>..\platform\graphics\Color.cpp(136) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int seems to be due to something being wrong with gperf.
Brent Fulgham
Comment 5 2007-12-02 09:16:44 PST
========== Build: 13 succeeded, 0 failed, 0 up-to-date, 0 skipped ========= Okay -- the build succeeded. And I figured out what happened: 1. I initially attempted to build WebKit in /cygdrive/d/Development/WebKit. 2. I had a pre-existing copy of Cygwin installed, and assumed this would be sufficient to build. 3. Build failed. 4. I used the WebKit-team provided tool to download the requisite build tools. 5. I tried building WebKit again, which failed. 6. I moved the sources (but not the WebKitBuild directory) to /cygdrive/c/Fulgham (the Home Directory) and lo-and-behold the build succeeded. CAUSES: 1. My original install of Cygwin was missing a few tools, namely gperf. 2. The missing gperf caused some zero-length files in the DerivedSources tree. 3. Because the build system does not remove the DerivedSources tree, they continue to be used from build to build, even after a "build-webkit --clean" 4. The zero-length files caused the build to fail. CONCLUSION * The build system is fine. * I recommend the "build-webkit --clean" remove the auto-generated files to save future fellow idiots the time spent tracking this down! :-)
Brent Fulgham
Comment 6 2007-12-02 09:20:15 PST
One further note: I have noticed that after a build fails, the "devenv" executable (and sometimes the "cl", "BuildHelper" programs) continue to run, locking things like the build logs. I use Xoreax IncrediBuild, so perhaps that tool is somehow related. At any rate, these locked files can cause the build to fail as well. However, if I make sure everything is killed in the Task List, and the correct Cygwin tools are installed it seems to build just fine.
Adam Roben (:aroben)
Comment 7 2007-12-02 09:42:52 PST
Closing based on Brent's comments.
Note You need to log in before you can comment on or make changes to this bug.