Bug 119081 - [CMAKE] Enforce c++0x for cmake based ports
Summary: [CMAKE] Enforce c++0x for cmake based ports
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit Misc. (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Ryuan Choi
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-07-25 04:54 PDT by Ryuan Choi
Modified: 2013-07-25 13:40 PDT (History)
11 users (show)

See Also:


Attachments
Patch (1.33 KB, patch)
2013-07-25 05:00 PDT, Ryuan Choi
gyuyoung.kim: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Ryuan Choi 2013-07-25 04:54:56 PDT
In 115339, c++0x was enforced for cmake based ports using WebKit2 (using gcc)

Now, there are build break (below errors) in JSC after FLT upstream

In file included from /home/ryuan/workspace/project/webkit/efl-webkit/Source/JavaScriptCore/dfg/DFGWorklist.h:34:0,
                 from /home/ryuan/workspace/project/webkit/efl-webkit/Source/JavaScriptCore/dfg/DFGWorklist.cpp:27:
/home/ryuan/workspace/project/webkit/efl-webkit/Source/WTF/wtf/Deque.h: In instantiation of ‘void WTF::Deque<T, inlineCapacity>::append(const U&) [with U = std::nullptr_t; T = WTF::RefPtr<JSC::DFG::Plan>; long unsigned int inlineCapacity = 16ul]’:
/home/ryuan/workspace/project/webkit/efl-webkit/Source/JavaScriptCore/dfg/DFGWorklist.cpp:47:35:   required from here
/home/ryuan/workspace/project/webkit/efl-webkit/Source/WTF/wtf/Deque.h:424:9: error: no matching function for call to ‘WTF::RefPtr<JSC::DFG::Plan>::RefPtr(const std::nullptr_t&)’
/home/ryuan/workspace/project/webkit/efl-webkit/Source/WTF/wtf/Deque.h:424:9: note: candidates are:
In file included from /home/ryuan/workspace/project/webkit/efl-webkit/Source/WTF/wtf/HashFunctions.h:24:0,
                 from /home/ryuan/workspace/project/webkit/efl-webkit/Source/WTF/wtf/HashTraits.h:24,
                 from /home/ryuan/workspace/project/webkit/efl-webkit/Source/WTF/wtf/HashTable.h:28,
                 from /home/ryuan/workspace/project/webkit/efl-webkit/Source/WTF/wtf/HashMap.h:24,
                 from /home/ryuan/workspace/project/webkit/efl-webkit/Source/JavaScriptCore/runtime/JSCJSValue.h:31,
                 from /home/ryuan/workspace/project/webkit/efl-webkit/Source/JavaScriptCore/runtime/CachedTranscendentalFunction.h:29,
                 from /home/ryuan/workspace/project/webkit/efl-webkit/Source/JavaScriptCore/runtime/VM.h:32,
                 from /home/ryuan/workspace/project/webkit/efl-webkit/Source/JavaScriptCore/runtime/Identifier.h:24,
                 from /home/ryuan/workspace/project/webkit/efl-webkit/Source/JavaScriptCore/dfg/DFGDesiredIdentifiers.h:33,
                 from /home/ryuan/workspace/project/webkit/efl-webkit/Source/JavaScriptCore/dfg/DFGPlan.h:32,
                 from /home/ryuan/workspace/project/webkit/efl-webkit/Source/JavaScriptCore/dfg/DFGWorklist.h:33,
                 from /home/ryuan/workspace/project/webkit/efl-webkit/Source/JavaScriptCore/dfg/DFGWorklist.cpp:27:
/home/ryuan/workspace/project/webkit/efl-webkit/Source/WTF/wtf/RefPtr.h:59:9: note: WTF::RefPtr<T>::RefPtr(WTF::HashTableDeletedValueType) [with T = JSC::DFG::Plan]
/home/ryuan/workspace/project/webkit/efl-webkit/Source/WTF/wtf/RefPtr.h:59:9: note:   no known conversion for argument 1 from ‘const std::nullptr_t’ to ‘WTF::HashTableDeletedValueType’
/home/ryuan/workspace/project/webkit/efl-webkit/Source/WTF/wtf/RefPtr.h:56:51: note: WTF::RefPtr<T>::RefPtr(WTF::PlacementNewAdoptType) [with T = JSC::DFG::Plan]
/home/ryuan/workspace/project/webkit/efl-webkit/Source/WTF/wtf/RefPtr.h:56:51: note:   no known conversion for argument 1 from ‘const std::nullptr_t’ to ‘WTF::PlacementNewAdoptType’
/home/ryuan/workspace/project/webkit/efl-webkit/Source/WTF/wtf/RefPtr.h:98:54: note: template<class U> WTF::RefPtr::RefPtr(const WTF::PassRefPtr<U>&)
/home/ryuan/workspace/project/webkit/efl-webkit/Source/WTF/wtf/RefPtr.h:98:54: note:   template argument deduction/substitution failed:
Comment 1 Ryuan Choi 2013-07-25 05:00:16 PDT
Created attachment 207450 [details]
Patch
Comment 2 Gyuyoung Kim 2013-07-25 05:03:59 PDT
Comment on attachment 207450 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=207450&action=review

> ChangeLog:9
> +        Enforce c++0x for all cmake based ports to fix build break.

Would be nicer if you mention what revision made this build break.
Comment 3 Chris Dumez 2013-07-25 05:05:00 PDT
Maybe we should get confirmation that C++11 is now an official requirement for JSC. I know it is already the case for WebKit2 but I don't know that this is the case for JSC.

@ggaren: Do we want to keep supporting older C++ in JSC code or not? If we do, then we should maybe fix the code that was recently introduced instead of enabling C++11.

Note that I don't mind enabling by default C++11 support for the EFL port. This patch, however, does not only affect the EFL port.
Comment 4 Ryuan Choi 2013-07-25 05:08:29 PDT
Committed r153315: <http://trac.webkit.org/changeset/153315>
Comment 5 Ryuan Choi 2013-07-25 05:14:01 PDT
(In reply to comment #3)
> Maybe we should get confirmation that C++11 is now an official requirement for JSC. I know it is already the case for WebKit2 but I don't know that this is the case for JSC.
> 
> @ggaren: Do we want to keep supporting older C++ in JSC code or not? If we do, then we should maybe fix the code that was recently introduced instead of enabling C++11.
> 
> Note that I don't mind enabling by default C++11 support for the EFL port. This patch, however, does not only affect the EFL port.

You're right. we need consensus.
If this is not intended, I will revert this.
(Sorry, I was late to see the message.)
Comment 6 Gyuyoung Kim 2013-07-25 05:20:32 PDT
(In reply to comment #3)
 
> Note that I don't mind enabling by default C++11 support for the EFL port. This patch, however, does not only affect the EFL port.

Yes, we need to ask other cmake ports also want to enable C++11.

@paroga, mrobinson and Rob, do your ports mind enable C++11 by default ?
Comment 7 Martin Robinson 2013-07-25 05:51:09 PDT
(In reply to comment #6)
> (In reply to comment #3)
> 
> > Note that I don't mind enabling by default C++11 support for the EFL port. This patch, however, does not only affect the EFL port.
> 
> Yes, we need to ask other cmake ports also want to enable C++11.
> 
> @paroga, mrobinson and Rob, do your ports mind enable C++11 by default ?

Yes, I think that's fine.
Comment 8 Martin Robinson 2013-07-25 05:51:36 PDT
(In reply to comment #7)
 
> Yes, I think that's fine.

Sorry. I mean to say, I think that's fine for GTK+.