RESOLVED FIXED 31273
[Qt][Symbian] Make sure WebKit headers are included before platform headers on Symbian
https://bugs.webkit.org/show_bug.cgi?id=31273
Summary [Qt][Symbian] Make sure WebKit headers are included before platform headers o...
Norbert Leser
Reported Monday, November 9, 2009 9:11:18 PM UTC
Created attachment 42790 [details] Patch for USERINCLUDE paths for symbian Added macros for USERINCLUDE paths within symbian blocks to guarantee inclusion of respective header files from local path first (to avoid clashes with same names of header files in system include path).
Attachments
Patch for USERINCLUDE paths for symbian (2.36 KB, patch)
2009-11-09 13:11 PST, Norbert Leser
no flags
2nd update of patch file for bug #31273 (2.45 KB, patch)
2009-11-13 14:24 PST, Norbert Leser
no flags
proposed solution (2.46 KB, patch)
2010-08-18 11:05 PDT, Laszlo Gombos
hausmann: review+
commit-queue: commit-queue-
proposed patch (2.08 KB, patch)
2011-01-04 05:20 PST, Laszlo Gombos
no flags
fix for WebKit2 (2.94 KB, patch)
2011-01-07 15:35 PST, Laszlo Gombos
no flags
Kenneth Rohde Christiansen
Comment 1 Monday, November 9, 2009 9:23:00 PM UTC
Comment on attachment 42790 [details] Patch for USERINCLUDE paths for symbian Looks plausable. How do you ensure that you don't have this problem with other includes?
Norbert Leser
Comment 2 Monday, November 9, 2009 9:36:17 PM UTC
(In reply to comment #1) > (From update of attachment 42790 [details]) > Looks plausable. How do you ensure that you don't have this problem with other > includes? We have verified that it is currently not the case, but unfortunately, there is no guarantee that this will happen with other include file name clashes in the future, at least not with this current version of the symbian tools chain.
WebKit Commit Bot
Comment 3 Tuesday, November 10, 2009 1:16:14 AM UTC
Comment on attachment 42790 [details] Patch for USERINCLUDE paths for symbian Rejecting patch 42790 from commit-queue. Failed to run "['/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/svn-apply', '--reviewer', 'Kenneth Rohde Christiansen', '--force']" exit_code: 1 Last 500 characters of output: .pm line 397, <> line 66. Use of uninitialized value in subtraction (-) at /Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/VCSUtils.pm line 397, <> line 66. Use of uninitialized value in subtraction (-) at /Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/VCSUtils.pm line 398, <> line 66. patching file WebCore/ChangeLog Hunk #1 succeeded at 1 with fuzz 3. patching file WebCore/WebCore.pro Hunk #1 FAILED at 12. 1 out of 1 hunk FAILED -- saving rejects to file WebCore/WebCore.pro.rej
Eric Seidel (no email)
Comment 4 Tuesday, November 10, 2009 1:20:45 AM UTC
Filed bug 31280 about the perl error. This might be a false rejection.
Adam Barth
Comment 5 Friday, November 13, 2009 2:15:32 AM UTC
Comment on attachment 42790 [details] Patch for USERINCLUDE paths for symbian Let's try again.
WebKit Commit Bot
Comment 6 Friday, November 13, 2009 2:20:40 AM UTC
Comment on attachment 42790 [details] Patch for USERINCLUDE paths for symbian Rejecting patch 42790 from commit-queue. Failed to run "['/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/svn-apply', '--reviewer', 'Kenneth Rohde Christiansen', '--force']" exit_code: 1 Last 500 characters of output: .pm line 396, <> line 66. Use of uninitialized value in subtraction (-) at /Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/VCSUtils.pm line 396, <> line 66. Use of uninitialized value in subtraction (-) at /Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/VCSUtils.pm line 397, <> line 66. patching file WebCore/ChangeLog Hunk #1 succeeded at 1 with fuzz 3. patching file WebCore/WebCore.pro Hunk #1 FAILED at 12. 1 out of 1 hunk FAILED -- saving rejects to file WebCore/WebCore.pro.rej
Eric Seidel (no email)
Comment 7 Friday, November 13, 2009 7:47:02 PM UTC
There is definitely a bug in svn-apply here, but I don't think it's causing this failure. I think the patch simply no longer applies.
Norbert Leser
Comment 8 Friday, November 13, 2009 10:24:22 PM UTC
Created attachment 43203 [details] 2nd update of patch file for bug #31273 Created a new patch (no content change). Apparently, the committer process thought there is a merge conflict.
Eric Seidel (no email)
Comment 9 Friday, November 13, 2009 10:27:43 PM UTC
Comment on attachment 43203 [details] 2nd update of patch file for bug #31273 It is possible I've broken svn-apply with my recent fixes to the fixChangeLog function, and that this patch is triggering a bug there.
Norbert Leser
Comment 10 Friday, November 13, 2009 10:34:04 PM UTC
(In reply to comment #9) > (From update of attachment 43203 [details]) > It is possible I've broken svn-apply with my recent fixes to the fixChangeLog > function, and that this patch is triggering a bug there. It more likely is a perceived conflict with checkin to bug#31272, which added a couple of lines to WebCore.pro at the same place as this one does.
WebKit Commit Bot
Comment 11 Friday, November 13, 2009 10:44:45 PM UTC
Comment on attachment 43203 [details] 2nd update of patch file for bug #31273 Rejecting patch 43203 from commit-queue. Failed to run "WebKitTools/Scripts/build-webkit" exit_code: 1 Last 500 characters of output: ld/WebCore.build/Release/WebCore.build/Objects-normal/i386/JSCompositionEvent.o /Users/eseidel/Projects/CommitQueue/WebKitBuild/Release/DerivedSources/WebCore/JSCompositionEvent.cpp normal i386 c++ com.apple.compilers.gcc.4_2 Distributed-CompileC /Users/eseidel/Projects/CommitQueue/WebKitBuild/WebCore.build/Release/WebCore.build/Objects-normal/i386/JSEventCustom.o /Users/eseidel/Projects/CommitQueue/WebCore/bindings/js/JSEventCustom.cpp normal i386 c++ com.apple.compilers.gcc.4_2 (2 failures)
Eric Seidel (no email)
Comment 12 Friday, November 13, 2009 10:47:03 PM UTC
Comment on attachment 43203 [details] 2nd update of patch file for bug #31273 My continued apologies. I've reverted back to the old commit-queue machine until I can figure out the build issue. Hopefully the next run will not hit the JSC crasher. :(
WebKit Commit Bot
Comment 13 Friday, November 13, 2009 11:11:29 PM UTC
Comment on attachment 43203 [details] 2nd update of patch file for bug #31273 Rejecting patch 43203 from commit-queue. Failed to run "['WebKitTools/Scripts/run-webkit-tests', '--no-launch-safari', '--quiet', '--exit-after-n-failures=1']" exit_code: 1 Last 500 characters of output: outTests Testing 11622 test cases. fast/canvas/canvas-longlived-context.html -> timed out Sampling process 46111 for 10 seconds with 10 milliseconds of run time between samples Sampling completed, processing symbols... Sample analysis of process 46111 written to file /Users/eseidel/Library/Logs/DumpRenderTree/HangReport.txt Exiting early after 1 failures. 4894 tests run. 838.61s total testing time 4893 test cases (99%) succeeded 1 test case (<1%) timed out 3 test cases (<1%) had stderr output
Eric Seidel (no email)
Comment 14 Friday, November 13, 2009 11:17:40 PM UTC
OK. I'm just gonna land this by hand, and let some other bug feel the brunt of the current commit-queue headaches. :)
Eric Seidel (no email)
Comment 15 Friday, November 13, 2009 11:19:30 PM UTC
Comment on attachment 43203 [details] 2nd update of patch file for bug #31273 Rejecting patch 43203 from commit-queue. Failed to run "['git', 'svn', 'dcommit']" exit_code: 1 Last 500 characters of output: tory/webkit/trunk ... M JavaScriptCore/ChangeLog M JavaScriptCore/JavaScriptCore.pri M WebCore/ChangeLog M WebCore/WebCore.pro A repository hook failed: MERGE request failed on '/repository/webkit/trunk': Commit blocked by pre-commit hook (exit code 1) with output: svnlook: Can't write to stream: Broken pipe The following ChangeLog files contain OOPS: trunk/WebCore/ChangeLog Please don't ever say "OOPS" in a ChangeLog file. at /usr/local/libexec/git-core//git-svn line 469
Eric Seidel (no email)
Comment 16 Friday, November 13, 2009 11:20:05 PM UTC
Ha! There is actually a real error in the ChangeLog in the end. I'll fix and land this by hand.
Eric Seidel (no email)
Comment 17 Friday, November 13, 2009 11:21:45 PM UTC
Norbert Leser
Comment 18 Friday, November 13, 2009 11:29:03 PM UTC
Wow, that was a rough landing ;) I am sorry for the trouble you had to go through for this little patch (I thought) - and thanks, for the time!
Eric Seidel (no email)
Comment 19 Friday, November 13, 2009 11:34:11 PM UTC
The trouble was self-inflicted. :) I run the commit-queue and aside from the JSC crashes, these failures were all my fault. :)
Janne Koskinen
Comment 20 Monday, November 16, 2009 10:01:19 AM UTC
sigh.. why on earth this was landed. I know what it tries to solve, but did you try this on 3.1,3.2,5.0,5.1 MCL, product and public SDK variants ? Patch alters the inclusion order and is most likely to break. Another reason not to have it is that it is specific to only some directories. If this kinda of fix is really necessary (I've yet to see any broken builds due to this) then do it for all directories. i.e. use userinclude . and try it on all above variants. userinclude . makes it consistent will solve all #include "localheader.h" cases.
Norbert Leser
Comment 21 Monday, November 16, 2009 12:39:50 PM UTC
(In reply to comment #20) > sigh.. why on earth this was landed. > I know what it tries to solve, but did you try this on 3.1,3.2,5.0,5.1 MCL, > product and public SDK variants ? > Patch alters the inclusion order and is most likely to break. > Another reason not to have it is that it is specific to only some directories. > If this kinda of fix is really necessary (I've yet to see any broken builds due > to this) then do it for all directories. i.e. use userinclude . and try it on > all above variants. userinclude . makes it consistent will solve all #include > "localheader.h" cases. On which targets did it break for you? What was the error? (The targets I did not try it on are 3.x). I agree with you that it would be preferable to apply this change to all localheader include cases. I am not sure what you mean with using "userinclude" and how to easily achieve that with current qmake for symbian? I used USERINCLUDE by mapping via MMP_RULES. If there is another way of generally applying userinclude, I'd love to use that. The patch for these particular include paths on targets beyond 5.0 due to changes in the (abld) tools chain. The first SYSTEMINCLUDE always becomes /epoc32/include, regardless of declarations in mmp files. That is, we must use USERINCLUDE to guarantee inclusion before that.
Janne Koskinen
Comment 22 Monday, November 16, 2009 1:28:15 PM UTC
(In reply to comment #21) I haven't tried the patch yet so don't know if it broke anything. Headers are moved about in MCL releases and I would assume this could potentially break anyways. > I agree with you that it would be preferable to apply this change to all > localheader include cases. I am not sure what you mean with using "userinclude" MMP_RULES += "USERINCLUDE ." or change each include not under epoc32\include to be user includes. Would be the only 2 alternatives I can live with :) > > The patch for these particular include paths on targets beyond 5.0 due to > changes in the (abld) tools chain. The first SYSTEMINCLUDE always becomes > /epoc32/include, regardless of declarations in mmp files. That is, we must use > USERINCLUDE to guarantee inclusion before that. This was a bug in SBSv2 and also on abld and has been fixed from SBSv2 already. It was added to fix some silly test case without thinking... Toolchain is bugged, but we are trying to fix it instead of trying to work around it.
Norbert Leser
Comment 23 Monday, November 16, 2009 2:10:00 PM UTC
(In reply to comment #22) > (In reply to comment #21) > > I haven't tried the patch yet so don't know if it broke anything. > Headers are moved about in MCL releases and I would assume this could > potentially break anyways. > > > I agree with you that it would be preferable to apply this change to all > > localheader include cases. I am not sure what you mean with using "userinclude" > > MMP_RULES += "USERINCLUDE ." > > or change each include not under epoc32\include to be user includes. > > Would be the only 2 alternatives I can live with :) Wouldn't your first option still require some of the webkit code to be changed to define includes relative to ".", such as #include "profiler/profiler.h"? That is what I wanted to avoid (I believe there was a request with this patch earlier this year which was either rejected or reversed). The 2nd option seems to be very invasive, if I understand that right (would that require to special case for SYMBIAN almost all include paths in JavaScripCore.pri? > > > > The patch for these particular include paths on targets beyond 5.0 due to > > changes in the (abld) tools chain. The first SYSTEMINCLUDE always becomes > > /epoc32/include, regardless of declarations in mmp files. That is, we must use > > USERINCLUDE to guarantee inclusion before that. > > This was a bug in SBSv2 and also on abld and has been fixed from SBSv2 already. > It was added to fix some silly test case without thinking... > > Toolchain is bugged, but we are trying to fix it instead of trying to work > around it. I am with you, to fix the toolchain, but we are facing the problem of build breaks right now and I have no idea when the fixed toolchain will be available. Besides, it is not a specific but a structural issue that the symbian toolchain uses USERINCLUDE paths instead of honoring the "localinclude.h" property. I haven't seen any attempt to fix that, and we have to work around that, somehow, in the least intrusive way (I still think, if we proof that these 3 USERINCLUDE declarations of this patch don't break other targets, it seems to be a useful workaround for the current situation).
Laszlo Gombos
Comment 24 Monday, June 28, 2010 10:48:54 PM UTC
As anticipated we now have more directories to special case (bridge, platform/animation). I agree with Janne that we need to find a better approach. Re-opening the bug with the intention of reverting 50970 and other possible workarounds. We need to re-evaulate which tool chain issues are fixed and which ones are remains to be fixed.
Eric Seidel (no email)
Comment 25 Tuesday, June 29, 2010 11:15:47 AM UTC
Comment on attachment 42790 [details] Patch for USERINCLUDE paths for symbian Cleared Kenneth Rohde Christiansen's review+ from obsolete attachment 42790 [details] so that this bug does not appear in http://webkit.org/pending-commit.
Laszlo Gombos
Comment 26 Tuesday, June 29, 2010 3:40:22 PM UTC
Comment on attachment 43203 [details] 2nd update of patch file for bug #31273 clearing flags on the already committed patch to avoid confusion.
Laszlo Gombos
Comment 27 Tuesday, June 29, 2010 7:30:39 PM UTC
http://trac.webkit.org/changeset/62120 committed as a temporary workaround to get the builds going.
Diego Gonzalez
Comment 28 Wednesday, July 21, 2010 1:51:42 PM UTC
Should this bug be marked as fixed o wait for a definitive solution?
Laszlo Gombos
Comment 29 Wednesday, August 18, 2010 7:05:39 PM UTC
Created attachment 64739 [details] proposed solution On Symbian PREPEND_INCLUDEPATH is the best way to make sure that WebKit headers are included before platform headers. On all other platforms continue to use INCLUDEPATH (as before). This patch also removed the workarounds that are put in place now that we have a better solution. Still testing the patch will put up for review once testing is finished.
Laszlo Gombos
Comment 30 Wednesday, August 18, 2010 9:10:43 PM UTC
Comment on attachment 64739 [details] proposed solution patch does the trick for me.
Ariya Hidayat
Comment 31 Sunday, August 22, 2010 9:28:47 AM UTC
Janne: any comment about the latest patch/fix from Laszlo?
Simon Hausmann
Comment 32 Tuesday, August 24, 2010 9:50:47 AM UTC
Comment on attachment 64739 [details] proposed solution Landing manually
Simon Hausmann
Comment 33 Tuesday, August 24, 2010 9:52:16 AM UTC
WebKit Commit Bot
Comment 34 Tuesday, August 24, 2010 10:31:37 AM UTC
Comment on attachment 64739 [details] proposed solution Rejecting patch 64739 from commit-queue. Failed to run "['WebKitTools/Scripts/run-webkit-tests', '--no-launch-safari', '--exit-after-n-failures=1', '--wait-for-httpd', '--ignore-tests', 'compositing', '--quiet']" exit_code: 1 Last 500 characters of output: mmitQueue/LayoutTests Testing 20899 test cases. media/video-autoplay.html -> timed out Sampling process 77784 for 10 seconds with 10 milliseconds of run time between samples Sampling completed, processing symbols... Sample analysis of process 77784 written to file /Users/eseidel/Library/Logs/DumpRenderTree/HangReport.txt Exiting early after 1 failures. 17221 tests run. 679.55s total testing time 17220 test cases (99%) succeeded 1 test case (<1%) timed out 34 test cases (<1%) had stderr output Full output: http://queues.webkit.org/results/3740592
Simon Hausmann
Comment 35 Tuesday, August 24, 2010 3:14:23 PM UTC
Revision r50970 cherry-picked into qtwebkit-2.1 with commit 73452d5a19888918ffb19249ffd4a5c9e45f5c7c Revision r65877 cherry-picked into qtwebkit-2.1 with commit 72b063270b1f7b6b909429ff9b02fdeb42b89cc4
Laszlo Gombos
Comment 36 Tuesday, January 4, 2011 1:19:40 PM UTC
REOPEN as this hasn't been resolved for JavaScriptCore. Patch will follow.
Laszlo Gombos
Comment 37 Tuesday, January 4, 2011 1:20:41 PM UTC
Created attachment 77880 [details] proposed patch
WebKit Commit Bot
Comment 38 Tuesday, January 4, 2011 7:16:52 PM UTC
Comment on attachment 77880 [details] proposed patch Clearing flags on attachment: 77880 Committed r74978: <http://trac.webkit.org/changeset/74978>
WebKit Commit Bot
Comment 39 Tuesday, January 4, 2011 8:47:31 PM UTC
The commit-queue encountered the following flaky tests while processing attachment 77880 [details]: http/tests/appcache/simple.html bug 51891 (authors: andersca@apple.com and ap@webkit.org) The commit-queue is continuing to process your patch.
Laszlo Gombos
Comment 40 Friday, January 7, 2011 11:35:46 PM UTC
Created attachment 78284 [details] fix for WebKit2 As it turns out WebKit2 part of the build needs this fix as well for Symbian. I wanted to minimize the "Symbian only" sections, that is why this work is being done piecemeal on a need bases.
Kenneth Rohde Christiansen
Comment 41 Friday, January 7, 2011 11:39:39 PM UTC
Comment on attachment 78284 [details] fix for WebKit2 View in context: https://bugs.webkit.org/attachment.cgi?id=78284&action=review > WebKit2/WebKit2.pro:168 > > +symbian { > + PREPEND_INCLUDEPATH = $$WEBKIT2_INCLUDEPATH $$PREPEND_INCLUDEPATH > +} else { > + INCLUDEPATH = $$WEBKIT2_INCLUDEPATH $$INCLUDEPATH > +} I think it would be nice with a comment here.
Laszlo Gombos
Comment 42 Saturday, January 8, 2011 3:01:52 PM UTC
Comment on attachment 78284 [details] fix for WebKit2 Committed as http://trac.webkit.org/changeset/75320.
Laszlo Gombos
Comment 43 Saturday, January 8, 2011 3:02:54 PM UTC
Closing the bug as this has been resolved for JavaScriptCore, WebCore and WebKit2.
Note You need to log in before you can comment on or make changes to this bug.