I knew this when I wrote it. I didn't have any idea how hard it would be to fix the build to work on Windows though. :( Scons + CYGWIN + MSVC do not get along, at all. I've got most of it building now. I'll attach my first pass patch shortly. It is *not possible* to build using a cygwin shell. Sadly Scons requires Windows Python in order to handle MSVC. This is superbly lame, but do to needing to grab at the registry to find out where MSVC is installed. The scons folks know about the issue, and will likely fix it at some point, but for now, we have to install Windows Python, + the win32 python additions, (not to mention scons itself) in order to build.
Created attachment 25255 [details] first attempt at making the scons build work on Windows Not for review yet. Still at least one error: cl /Fowtf\ThreadingWin.obj /c wtf\ThreadingWin.cpp /nologo /TP /nologo /DBUILDING_CHROMIUM__ /I. /IC:\Projects\WebK it /IForwardingHeaders /Iicu /Ipcre /Idebugger /Iwrec /Iwtf\unicode /Iparser /Ibytecompiler /Iprofiler /IAPI /Iwtf /IDerivedSources\JavaScriptCore /IVM /Iruntime /Iwtf\win /Iwtf\unicode\icu /IC:\Projects\WebKit\WebKitLibraries\win \include /IC:\Projects\WebKit\WebKitLibraries\win\include\pthreads ThreadingWin.cpp wtf\ThreadingWin.cpp(280) : error C2039: 'TryEnterCriticalSection' : is not a member of '`global namespace'' wtf\ThreadingWin.cpp(280) : error C3861: 'TryEnterCriticalSection': identifier not found scons: *** [wtf\ThreadingWin.obj] Error 2 scons: building terminated because of errors.
I tried adding a WIN32_LEAN_AND_MEAN define before the windows.h include in ThreadingWin.cpp, but that didn't solve the problem. I think I'll try defining LEAN_AND_MEAN globally (Since a google search seems to suggest that will help.)
Created attachment 25325 [details] Fix the JSC/Chromium build for Windows
Comment on attachment 25325 [details] Fix the JSC/Chromium build for Windows > ASSERT(m_sourceElements); > - functionBodyNode->adoptData(auto_ptr<ScopeNodeData>(new ScopeNodeData(m_sourceElements.get(), > + functionBodyNode->adoptData(std::auto_ptr<ScopeNodeData>(new ScopeNodeData(m_sourceElements.get(), > m_varDeclarations ? &m_varDeclarations->data : 0, > m_funcDeclarations ? &m_funcDeclarations->data : 0, > m_numConstants))); What's this change about? It's not mentioned in the ChangeLog. The right fix would be to add a "using namespace std" or "using std::auto_ptr" to this source file, not add an explicit std:: qualification. rs=me on the scons changes
(In reply to comment #4) > What's this change about? It's not mentioned in the ChangeLog. The right fix > would be to add a "using namespace std" or "using std::auto_ptr" to this source > file, not add an explicit std:: qualification. Yeah, sorry. I'll fix it to be using std::auto_ptr. Not sure why no other platform fails... I'll also fix it to mention in the ChangeLog. Thanks!
http://trac.webkit.org/changeset/38647