Bug 80553 - Clean Windows build fails after r110033
Summary: Clean Windows build fails after r110033
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Tools / Tests (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Windows 7
: P2 Normal
Assignee: Jessie Berlin
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-03-07 17:18 PST by Jessie Berlin
Modified: 2012-03-12 11:08 PDT (History)
7 users (show)

See Also:


Attachments
Patch (13.71 KB, patch)
2012-03-07 17:25 PST, Jessie Berlin
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jessie Berlin 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.
Comment 1 Eric Seidel (no email) 2012-03-07 17:22:45 PST
Sorry.  :(  I assume you're fixing, since I don't actually have a Windows machine. :)
Comment 2 Eric Seidel (no email) 2012-03-07 17:23:21 PST
Thank you. :)
Comment 3 Jessie Berlin 2012-03-07 17:25:21 PST
Created attachment 130731 [details]
Patch
Comment 4 Eric Seidel (no email) 2012-03-07 17:40:35 PST
Comment on attachment 130731 [details]
Patch

I'm happy to rubber-stamp this.
Comment 5 Eric Seidel (no email) 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.
Comment 6 Eric Seidel (no email) 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.
Comment 7 Jessie Berlin 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
Comment 8 Eric Seidel (no email) 2012-03-08 13:45:19 PST
Thank you again for taking care of this Jessie.
Comment 9 Jessie Berlin 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.
Comment 10 Jessie Berlin 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.
Comment 11 Eric Seidel (no email) 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.
Comment 12 Eric Seidel (no email) 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?
Comment 13 Eric Seidel (no email) 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.
Comment 14 Jessie Berlin 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?
Comment 15 Jessie Berlin 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.
Comment 16 Eric Seidel (no email) 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.
Comment 17 Eric Seidel (no email) 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. :)
Comment 18 Adam Roben (:aroben) 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.