[Bug 220188] devel/qt5-script: disable usage of c++1z for JavaScriptCore
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Wed Jun 21 17:02:10 UTC 2017
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=220188
Bug ID: 220188
Summary: devel/qt5-script: disable usage of c++1z for
JavaScriptCore
Product: Ports & Packages
Version: Latest
Hardware: Any
OS: Any
Status: New
Severity: Affects Some People
Priority: ---
Component: Individual Port(s)
Assignee: kde at FreeBSD.org
Reporter: dim at FreeBSD.org
Assignee: kde at FreeBSD.org
Flags: maintainer-feedback?(kde at FreeBSD.org)
Created attachment 183678
--> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=183678&action=edit
Use -std=c++14 for devel/qt5-script to avoid errors in JavaScriptCore
During an exp-run for the projects/clang500-import branch (bug 219139), it
turned out that devel/qt5-script does not build against libc++ 5.0.0 [1]:
In file included from
../3rdparty/javascriptcore/JavaScriptCore/pcre/pcre_exec.cpp:50:
In file included from
../3rdparty/javascriptcore/JavaScriptCore/wtf/Vector.h:27:
In file included from
../3rdparty/javascriptcore/JavaScriptCore/wtf/VectorTraits.h:24:
../3rdparty/javascriptcore/JavaScriptCore/wtf/OwnPtr.h:43:21: error: no
template named 'auto_ptr' in namespace 'std'
OwnPtr(std::auto_ptr<ValueType> autoPtr) : m_ptr(autoPtr.release()) { }
~~~~~^
../3rdparty/javascriptcore/JavaScriptCore/wtf/OwnPtr.h:61:25: error: no
template named 'auto_ptr' in namespace 'std'
void adopt(std::auto_ptr<ValueType> autoPtr) { ASSERT(!autoPtr.get() ||
m_ptr != autoPtr.get()); deleteOwnedPtr(m_ptr); m_ptr = autoPtr.release(); }
~~~~~^
In file included from
../3rdparty/javascriptcore/JavaScriptCore/pcre/pcre_exec.cpp:50:
In file included from
../3rdparty/javascriptcore/JavaScriptCore/wtf/Vector.h:27:
../3rdparty/javascriptcore/JavaScriptCore/wtf/VectorTraits.h:84:30: error: no
member named 'auto_ptr' in namespace 'std'
struct VectorTraits<std::auto_ptr<P> > : SimpleClassVectorTraits { };
~~~~~^
../3rdparty/javascriptcore/JavaScriptCore/wtf/VectorTraits.h:84:39: error: 'P'
does not refer to a value
struct VectorTraits<std::auto_ptr<P> > : SimpleClassVectorTraits { };
^
../3rdparty/javascriptcore/JavaScriptCore/wtf/VectorTraits.h:83:23: note:
declared here
template<typename P>
^
4 errors generated.
This is because devel/qmake and/or devel/qt5-buildtools have detected
-std=c++1z support, and are using it by default. However, the JavaScriptCore
parts of qt5-script are from a third party, and this source is *not* C++1z
compatible. For example, std::auto_ptr has long been deprecated, but is
actually removed from C++1z now.
I tried various methods of convincing qmake to use a lower C++ standard, and
the best I could come up with was adding a line:
QT_CONFIG -= c++1z
to src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri, as in the
attached patch. If there is a better way, I would be glad to hear it. :)
[1]
http://package18.nyi.freebsd.org/data/headamd64PR219139-default/2017-05-22_13h01m42s/logs/errors/qt5-script-5.7.1.log
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the kde-freebsd
mailing list