Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Jun 2017 17:02:10 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-ports-bugs@FreeBSD.org
Subject:   [Bug 220188] devel/qt5-script: disable usage of c++1z for JavaScriptCore
Message-ID:  <bug-220188-13@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D220188

            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@FreeBSD.org
          Reporter: dim@FreeBSD.org
          Assignee: kde@FreeBSD.org
             Flags: maintainer-feedback?(kde@FreeBSD.org)

Created attachment 183678
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D183678&action=
=3Dedit
Use -std=3Dc++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 !=3D autoPtr.get()); deleteOwnedPtr(m_ptr); m_ptr =3D 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=3Dc++1z support, and are using it by default.  However, the JavaScript=
Core
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 -=3D 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

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-220188-13>