Bug 80553

Summary: Clean Windows build fails after r110033
Product: WebKit Reporter: Jessie Berlin <jberlin>
Component: Tools / TestsAssignee: Jessie Berlin <jberlin>
Status: RESOLVED FIXED    
Severity: Normal CC: aroben, ddkilzer, eric, jberlin, jhoneycutt, mrowe, sfalken
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Windows 7   
Attachments:
Description Flags
Patch none

Jessie Berlin
Reported 2012-03-07 17:18:32 PST
TestWebKitAPI was not the only project that needed the new include path for JavaScriptCore added to the vsprops file. In addition, WebCore.vcproj, jsc.vcproj, and testRegExp.vcproj all expect some string implementation files to have their headers in the old, flat location.
Attachments
Patch (13.71 KB, patch)
2012-03-07 17:25 PST, Jessie Berlin
no flags
Eric Seidel (no email)
Comment 1 2012-03-07 17:22:45 PST
Sorry. :( I assume you're fixing, since I don't actually have a Windows machine. :)
Eric Seidel (no email)
Comment 2 2012-03-07 17:23:21 PST
Thank you. :)
Jessie Berlin
Comment 3 2012-03-07 17:25:21 PST
Eric Seidel (no email)
Comment 4 2012-03-07 17:40:35 PST
Comment on attachment 130731 [details] Patch I'm happy to rubber-stamp this.
Eric Seidel (no email)
Comment 5 2012-03-07 17:43:31 PST
There is still an outlying issue for the Win WTF move. Currently we install the WTF headers under JavaScriptCore. I really should have set it up to install them in some wtf/* location, but my vcproj-fu I feared too weak. We also don't have a WTF/WTF.vcproj file yet. I was hoping that I might just be able to move the JavaScriptCore/wtf/WTF.vcproj file, but I'm nto sure if that will be sufficient. WTF.vcproj needs to do two things: 1. Build a libwtf.a 2. Install wtf headers in some reasonable location. (On mac, that $BUILD/usr/local/include/wtf). I very much welcome your thoughts on how best to move forward with Windows for the WTF move. Ideally someone with AppleWin familiarity could set up a dummy WTF project which did 1, 2 above. Similar to how we have a Source/WTF/WTF.xcodeproj, etc. which only build/install Stub.cpp/h at current.
Eric Seidel (no email)
Comment 6 2012-03-07 17:53:26 PST
Comment on attachment 130731 [details] Patch rs=me. Feel encouraged to hunt down a more qualified reviewer as necessary. I just don't want you to feel blocked.
Jessie Berlin
Comment 7 2012-03-08 13:44:16 PST
Comment on attachment 130731 [details] Patch I committed this patch in http://trac.webkit.org/changeset/110133 Subsequent build fixes (turned out this patch wasn't quite enough): http://trac.webkit.org/changeset/110174 http://trac.webkit.org/changeset/110177
Eric Seidel (no email)
Comment 8 2012-03-08 13:45:19 PST
Thank you again for taking care of this Jessie.
Jessie Berlin
Comment 9 2012-03-08 14:05:15 PST
(In reply to comment #5) > There is still an outlying issue for the Win WTF move. Currently we install the WTF headers under JavaScriptCore. I really should have set it up to install them in some wtf/* location, but my vcproj-fu I feared too weak. > > We also don't have a WTF/WTF.vcproj file yet. I was hoping that I might just be able to move the JavaScriptCore/wtf/WTF.vcproj file, but I'm nto sure if that will be sufficient. > > WTF.vcproj needs to do two things: > > 1. Build a libwtf.a > 2. Install wtf headers in some reasonable location. (On mac, that $BUILD/usr/local/include/wtf). > > I very much welcome your thoughts on how best to move forward with Windows for the WTF move. Ideally someone with AppleWin familiarity could set up a dummy WTF project which did 1, 2 above. Similar to how we have a Source/WTF/WTF.xcodeproj, etc. which only build/install Stub.cpp/h at current. I believe that JavaScriptCore/wtf/WTF.vcproj is the one that does step #1 (creates WTF.lib), but I am not absolutely sure. With r110033, the wtf headers are living in $BUILD/include/private/JavaScriptCore/wtf. It seems reasonable to me that they should end up living in $BUILD/include/private/wtf. However, right now the JavaScriptCoreGenerated project (whose makefile runs the copy-files.cmd) is responsible for copying over the headers to the build output directory. It seems like that may need to be changed. I will look into creating that dummy vcproj. One thing to note - if you touch any Windows-specific files you should make sure you don't introduce any unix line endings into them. That was the cause of the build failure that Steve Falkenburg fixed this morning.
Jessie Berlin
Comment 10 2012-03-08 14:06:32 PST
Marking this bug as fixed. The rest of the work that needs to be done on Windows for the WTF move will be handled separately.
Eric Seidel (no email)
Comment 11 2012-03-08 14:44:19 PST
(In reply to comment #9) > (In reply to comment #5) > One thing to note - if you touch any Windows-specific files you should make sure you don't introduce any unix line endings into them. That was the cause of the build failure that Steve Falkenburg fixed this morning. Thanks! I'll make sure to look out for this in the future.
Eric Seidel (no email)
Comment 12 2012-03-08 14:44:49 PST
(In reply to comment #11) > (In reply to comment #9) > > (In reply to comment #5) > > One thing to note - if you touch any Windows-specific files you should make sure you don't introduce any unix line endings into them. That was the cause of the build failure that Steve Falkenburg fixed this morning. > > Thanks! I'll make sure to look out for this in the future. Do you know if we can have SVN help us here? by setting the files with the right eol-style? eol-style:CF or whatever is the right one for windows?
Eric Seidel (no email)
Comment 13 2012-03-08 14:49:51 PST
(In reply to comment #9) > (In reply to comment #5) > > I very much welcome your thoughts on how best to move forward with Windows for the WTF move. Ideally someone with AppleWin familiarity could set up a dummy WTF project which did 1, 2 above. Similar to how we have a Source/WTF/WTF.xcodeproj, etc. which only build/install Stub.cpp/h at current. > > I believe that JavaScriptCore/wtf/WTF.vcproj is the one that does step #1 (creates WTF.lib), but I am not absolutely sure. I'm not sure either. I was under an impression at one point that the JSC project did the actual building. If the current WTF.vcproj did the .lib creation and header copying, then moving the whole wtf/ folder becomes even simpler. > With r110033, the wtf headers are living in $BUILD/include/private/JavaScriptCore/wtf. It seems reasonable to me that they should end up living in $BUILD/include/private/wtf. Sounds good to me. > However, right now the JavaScriptCoreGenerated project (whose makefile runs the copy-files.cmd) is responsible for copying over the headers to the build output directory. It seems like that may need to be changed. Yup, they'll need to move into WTF.vcproj. If you were willing to move them into the current WTF.vcproj that might make the move even easier. > I will look into creating that dummy vcproj. That would be fantastic! Currently neither build-webkit nor the Makefiles try to build Source/WTF, AFAIK, but I'm about to change build-webkit to build it by default (before JavaScriptCore) on ports which already have build files set up there.
Jessie Berlin
Comment 14 2012-03-08 17:32:31 PST
(In reply to comment #12) > (In reply to comment #11) > > (In reply to comment #9) > > > (In reply to comment #5) > > > One thing to note - if you touch any Windows-specific files you should make sure you don't introduce any unix line endings into them. That was the cause of the build failure that Steve Falkenburg fixed this morning. > > > > Thanks! I'll make sure to look out for this in the future. > > Do you know if we can have SVN help us here? by setting the files with the right eol-style? eol-style:CF or whatever is the right one for windows? Windows uses CLRF. I am not sure where we would specify it in the project, and if git would respect it. Do you know more about this?
Jessie Berlin
Comment 15 2012-03-08 17:36:52 PST
(In reply to comment #13) > (In reply to comment #9) > > (In reply to comment #5) > > > I very much welcome your thoughts on how best to move forward with Windows for the WTF move. Ideally someone with AppleWin familiarity could set up a dummy WTF project which did 1, 2 above. Similar to how we have a Source/WTF/WTF.xcodeproj, etc. which only build/install Stub.cpp/h at current. > > > > I believe that JavaScriptCore/wtf/WTF.vcproj is the one that does step #1 (creates WTF.lib), but I am not absolutely sure. > > I'm not sure either. I was under an impression at one point that the JSC project did the actual building. If the current WTF.vcproj did the .lib creation and header copying, then moving the whole wtf/ folder becomes even simpler. I verified that it is WTF.vcproj that creates WTF.lib. > > > With r110033, the wtf headers are living in $BUILD/include/private/JavaScriptCore/wtf. It seems reasonable to me that they should end up living in $BUILD/include/private/wtf. > > Sounds good to me. > > > However, right now the JavaScriptCoreGenerated project (whose makefile runs the copy-files.cmd) is responsible for copying over the headers to the build output directory. It seems like that may need to be changed. > > Yup, they'll need to move into WTF.vcproj. If you were willing to move them into the current WTF.vcproj that might make the move even easier. Steve Falkenburg and I worked out a patch to do that today. See https://bugs.webkit.org/show_bug.cgi?id=80657 > > > I will look into creating that dummy vcproj. > > That would be fantastic! Currently neither build-webkit nor the Makefiles try to build Source/WTF, AFAIK, but I'm about to change build-webkit to build it by default (before JavaScriptCore) on ports which already have build files set up there. Because the Windows build system is so involved (vcproj files, vsprops files, the necessary make and cmd files, etc), it might be easier for us to simply move the WTF.vcproj and WTFGenerated.vcproj files and supporting files into Source/WTF instead. We would simply make the references in the WTF.vcproj file point to the source files that are still living under the JavaScriptCore directory until you make the big move.
Eric Seidel (no email)
Comment 16 2012-03-08 20:15:53 PST
(In reply to comment #14) > (In reply to comment #12) > > (In reply to comment #11) > > > (In reply to comment #9) > > > > (In reply to comment #5) > > > > One thing to note - if you touch any Windows-specific files you should make sure you don't introduce any unix line endings into them. That was the cause of the build failure that Steve Falkenburg fixed this morning. > > > > > > Thanks! I'll make sure to look out for this in the future. > > > > Do you know if we can have SVN help us here? by setting the files with the right eol-style? eol-style:CF or whatever is the right one for windows? > > Windows uses CLRF. > > I am not sure where we would specify it in the project, and if git would respect it. Do you know more about this? Git-svn uses an actual SVN checkout under the covers (is my understanding), but I'm not sure how it interacts with the properties there. Adam Roben might know... http://stackoverflow.com/questions/3537575/can-git-store-the-mime-type-of-a-file-like-svn-does-for-browsing-html http://stackoverflow.com/questions/1271449/how-to-set-subversion-properties-with-git-svn In any case, I'll be more careful when editing Windows build files on my mac in the future.
Eric Seidel (no email)
Comment 17 2012-03-08 20:17:33 PST
(In reply to comment #15) > (In reply to comment #13) > > (In reply to comment #9) > > > (In reply to comment #5) > > That would be fantastic! Currently neither build-webkit nor the Makefiles try to build Source/WTF, AFAIK, but I'm about to change build-webkit to build it by default (before JavaScriptCore) on ports which already have build files set up there. > > Because the Windows build system is so involved (vcproj files, vsprops files, the necessary make and cmd files, etc), it might be easier for us to simply move the WTF.vcproj and WTFGenerated.vcproj files and supporting files into Source/WTF instead. We would simply make the references in the WTF.vcproj file point to the source files that are still living under the JavaScriptCore directory until you make the big move. That sounds even better! I certainly can add/remove a few ../../ from file paths. :)
Adam Roben (:aroben)
Comment 18 2012-03-12 11:08:54 PDT
(In reply to comment #16) > (In reply to comment #14) > > (In reply to comment #12) > > > (In reply to comment #11) > > > > (In reply to comment #9) > > > > > (In reply to comment #5) > > > > > One thing to note - if you touch any Windows-specific files you should make sure you don't introduce any unix line endings into them. That was the cause of the build failure that Steve Falkenburg fixed this morning. > > > > > > > > Thanks! I'll make sure to look out for this in the future. > > > > > > Do you know if we can have SVN help us here? by setting the files with the right eol-style? eol-style:CF or whatever is the right one for windows? > > > > Windows uses CLRF. > > > > I am not sure where we would specify it in the project, and if git would respect it. Do you know more about this? > > Git-svn uses an actual SVN checkout under the covers (is my understanding), but I'm not sure how it interacts with the properties there. Adam Roben might know... > http://stackoverflow.com/questions/3537575/can-git-store-the-mime-type-of-a-file-like-svn-does-for-browsing-html > http://stackoverflow.com/questions/1271449/how-to-set-subversion-properties-with-git-svn Git has a bunch of settings that affect line endings (the core.autocrlf and core.safecrlf config variables and the text/eol/crlf gitattributes). I'm not sure exactly how they interact with svn:eol-style. I think David Kilzer knows a bit about that aspect of it.
Note You need to log in before you can comment on or make changes to this bug.