WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
137394
[GTK] Make forwarding headers generation depend on source code
https://bugs.webkit.org/show_bug.cgi?id=137394
Summary
[GTK] Make forwarding headers generation depend on source code
Carlos Garcia Campos
Reported
2014-10-03 09:10:50 PDT
So that forwarding headers script is only called when source code changes, instead of for every build.
Attachments
Patch
(8.83 KB, patch)
2014-10-03 09:14 PDT
,
Carlos Garcia Campos
pnormand
: review+
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Carlos Garcia Campos
Comment 1
2014-10-03 09:14:38 PDT
Created
attachment 239206
[details]
Patch
Martin Robinson
Comment 2
2014-10-03 10:59:23 PDT
Comment on
attachment 239206
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=239206&action=review
> Source/WebKit2/PlatformGTK.cmake:854 > + > +file(GLOB_RECURSE WebKit2_HEADERS > + *.h > +)
This is run during the configuration phase, so doesn't this break if you add a new header without re-running cmake?
Carlos Garcia Campos
Comment 3
2014-10-04 00:21:38 PDT
(In reply to
comment #2
)
> (From update of
attachment 239206
[details]
) > View in context:
https://bugs.webkit.org/attachment.cgi?id=239206&action=review
> > > Source/WebKit2/PlatformGTK.cmake:854 > > + > > +file(GLOB_RECURSE WebKit2_HEADERS > > + *.h > > +) > > This is run during the configuration phase, so doesn't this break if you add a new header without re-running cmake?
Yes, that's only another problem of not adding headers to the makefiles, it happens with other things like rules using wilcard characters, if you add a new file, you need to force a configure for that to work. This is still much better than running the forwarding headers script 3 times every build. The situation of adding a new header after the configure phase that requires a new forwarding header is not common at all.
Carlos Garcia Campos
Comment 4
2014-10-08 00:38:01 PDT
Committed
r174422
: <
http://trac.webkit.org/changeset/174422
>
Csaba Osztrogonác
Comment 5
2014-10-08 04:38:37 PDT
(In reply to
comment #4
)
> Committed
r174422
: <
http://trac.webkit.org/changeset/174422
>
After this change, the GTK EWS stucked with this strange error: ninja: error: '../../Source/WebKit2/WebProcess/InjectedBundle/API/efl/ewk_extension.h', needed by 'WebKit2-forwarding-headers.stamp', missing and no known rule to make it
Carlos Garcia Campos
Comment 6
2014-10-08 04:44:58 PDT
(In reply to
comment #5
)
> (In reply to
comment #4
) > > Committed
r174422
: <
http://trac.webkit.org/changeset/174422
> > > After this change, the GTK EWS stucked with this strange error: > > ninja: error: '../../Source/WebKit2/WebProcess/InjectedBundle/API/efl/ewk_extension.h', needed by 'WebKit2-forwarding-headers.stamp', missing and no known rule to make it
Yes, this is indeed one of the cases when this fails because of the wildcard characters, a header file was removed, but non of our makefiles changed (it was an efl header), so a new cmake configure was required. Already forced a clean build on the bots. If this case happens more often that what I expected, I'll roll out the patch.
Csaba Osztrogonác
Comment 7
2014-12-27 12:32:52 PST
One more problem:
https://trac.webkit.org/changeset/177764
ninja: error: '../../Source/WebKit2/Shared/API/Cocoa/WKRenderingProgressEventsInternal.h', needed by 'WebKit2-forwarding-headers.stamp', missing and no known rule to make it I triggered clean build on the buildbots, but the EWS still needs a kick.
Csaba Osztrogonác
Comment 8
2015-03-20 00:49:37 PDT
One more error due to this bug after
https://trac.webkit.org/changeset/181777
: ninja: error: '../../Source/WebKit2/UIProcess/mac/WebMediaPlaybackTargetPickerProxyMac.h', needed by 'WebKit2-forwarding-headers.stamp', missing and no known rule to make it It isn't good to have incremental build issue after all header deleting/renaming in Webkit2 :-/
Carlos Garcia Campos
Comment 9
2015-03-20 01:01:35 PDT
(In reply to
comment #8
)
> One more error due to this bug after >
https://trac.webkit.org/changeset/181777
: > ninja: error: > '../../Source/WebKit2/UIProcess/mac/WebMediaPlaybackTargetPickerProxyMac.h', > needed by 'WebKit2-forwarding-headers.stamp', missing and no known rule to > make it > > It isn't good to have incremental build issue after > all header deleting/renaming in Webkit2 :-/
This hasn't happened that often, IMO, so for me it's still worth it.
Csaba Osztrogonác
Comment 10
2015-03-20 01:07:52 PDT
I kicked the bots with
https://trac.webkit.org/changeset/181786
, but it isn't good to have to land this kind of fixes or poking the EWS maintainers to kick the bots. We really need a proper fix. Why was it problem that forwaring header generator ran all the time? It is quite quick. I understand that all seconds count during working on a task locally. But can't we run this generator unconditionally only on the bots somehow?
Csaba Osztrogonác
Comment 11
2015-03-20 05:22:42 PDT
(In reply to
comment #10
)
> I kicked the bots with
https://trac.webkit.org/changeset/181786
, > but it isn't good to have to land this kind of fixes or poking > the EWS maintainers to kick the bots. We really need a proper fix. > > Why was it problem that forwaring header generator ran all the time? > It is quite quick. I understand that all seconds count during working > on a task locally. But can't we run this generator unconditionally > only on the bots somehow?
- empty build on GTK takes 3-4 seconds (fw header generator doesn't run at all) - empty build on EFL takes 6-7 seconds (fw header generator always run 10 times) It is trivial to refactor fw header generator to run only once for each project: WebKit2, WTR, TestWebKitAPI. It reduced the EFL build time to 5 seconds for me, I'm going to upload the patch soon to
bug142907
.
Csaba Osztrogonác
Comment 12
2015-03-27 10:22:38 PDT
One more incrementail build issue due to this change:
https://build.webkit.org/builders/GTK%20Linux%2064-bit%20Release%20%28Build%29/builds/56936
Csaba Osztrogonác
Comment 13
2015-04-03 11:30:06 PDT
and again:
https://build.webkit.org/builders/GTK%20Linux%2064-bit%20Release%20%28Build%29/builds/57167
Do you really want to have this issue again and again on the bots? I can't understand don't we run this generator unconditonally? It's only 3-4 seconds per build and it guarantess we won't have this ugly issue ever. But it's your choice, of course.
Csaba Osztrogonác
Comment 14
2015-04-03 11:54:01 PDT
I kicked the GTK bots with this commit -
http://trac.webkit.org/changeset/182326
. But I'm against to do this kind of changes, and done last time.
Michael Catanzaro
Comment 15
2015-04-03 17:50:57 PDT
TBH I'm with Ossy on this one. The time I lose doing an initial build after a pull, discovering that it failed, figuring out it's an incremental build issue, and then running a clean build is not really worth the benefit.
Bug #142907
looks like a better approach.
Carlos Garcia Campos
Comment 16
2015-04-06 00:06:36 PDT
Ok, let's optimize and reduce the amount of times the script is run instead.
Csaba Osztrogonác
Comment 17
2015-04-07 04:23:24 PDT
(In reply to
comment #16
)
> Ok, let's optimize and reduce the amount of times the script is run instead.
bug142907
reduces the amount from 4 to 3 on GTK and from 10 to 3 on EFL.
Csaba Osztrogonác
Comment 18
2015-04-07 06:18:04 PDT
(In reply to
comment #17
)
> (In reply to
comment #16
) > > Ok, let's optimize and reduce the amount of times the script is run instead. > >
bug142907
reduces the amount from 4 to 3 on GTK and from 10 to 3 on EFL.
With this fix the empty EFL build takes only 5 seconds. Additionally I measured the runtime of the forwarding header generator script itself: (these three execution can be run in parallel) - 0.12 seconds for WTR - 0.17 seconds for TestWebKitAPI - 1.05 seconds for WebKit2
Csaba Osztrogonác
Comment 19
2015-04-16 00:04:00 PDT
And again after
https://trac.webkit.org/changeset/182873
: ninja: error: '../../Source/WebKit2/UIProcess/API/Cocoa/_WKWebsiteDataStoreInternal.h', needed by 'WebKit2-forwarding-headers.stamp', missing and no known rule to make it (on the other hand we really don't need forwarding header for cocoa headers ...)
Csaba Osztrogonác
Comment 20
2015-04-16 03:42:23 PDT
I filed two bug reports: - make forwarding header generator run unconditionally:
bug143819
- make forwarding header generate less unnecessary headers:
bug143820
(In reply to
comment #19
)
> And again after
https://trac.webkit.org/changeset/182873
: > ninja: error: > '../../Source/WebKit2/UIProcess/API/Cocoa/_WKWebsiteDataStoreInternal.h', > needed by 'WebKit2-forwarding-headers.stamp', missing and no known rule to > make it > > (on the other hand we really don't need forwarding header for cocoa headers > ...)
The forwarding header generator didn't generate forwarding header for Source/WebKit2/UIProcess/API/Cocoa/_WKWebsiteDataStoreInternal.h, but the *.h rule added false dependency for this header.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug