From owner-svn-ports-all@FreeBSD.ORG Wed Jul 18 20:23:10 2012 Return-Path: Delivered-To: svn-ports-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 26BB01065670; Wed, 18 Jul 2012 20:23:10 +0000 (UTC) (envelope-from rakuco@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1056A8FC08; Wed, 18 Jul 2012 20:23:10 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q6IKN9Pr007522; Wed, 18 Jul 2012 20:23:09 GMT (envelope-from rakuco@svn.freebsd.org) Received: (from rakuco@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q6IKN9QL007518; Wed, 18 Jul 2012 20:23:09 GMT (envelope-from rakuco@svn.freebsd.org) Message-Id: <201207182023.q6IKN9QL007518@svn.freebsd.org> From: Raphael Kubo da Costa Date: Wed, 18 Jul 2012 20:23:09 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r301122 - in head: devel/dbus-qt4/files devel/qt4-corelib/files x11/qt4-opengl/files X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Jul 2012 20:23:10 -0000 Author: rakuco Date: Wed Jul 18 20:23:09 2012 New Revision: 301122 URL: http://svn.freebsd.org/changeset/ports/301122 Log: Add my upstream patch to make these Qt ports build with libc++. The original patch was written by Jan Beich in the PR mentioned below. I haven't been able to fully build x11/qt4-opengl yet due to other errors which show up later, but at least this one problem is solved, and the fix will be included in the next Qt 4.8 release. No PORTREVISION bump, as users of other standard C++ libraries are not affected, and no dependencies have been changed. PR: ports/169871 Submitted by: Jan Beich Added: head/devel/dbus-qt4/files/ head/devel/dbus-qt4/files/patch-src__corelib__tools__qiterator.h (contents, props changed) head/devel/qt4-corelib/files/patch-src__corelib__tools__qiterator.h (contents, props changed) head/x11/qt4-opengl/files/ head/x11/qt4-opengl/files/patch-src__corelib__tools__qiterator.h (contents, props changed) Added: head/devel/dbus-qt4/files/patch-src__corelib__tools__qiterator.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/dbus-qt4/files/patch-src__corelib__tools__qiterator.h Wed Jul 18 20:23:09 2012 (r301122) @@ -0,0 +1,38 @@ +commit 5210d47aa66214e3cb16f394d0510a91f770c1b1 +Author: Raphael Kubo da Costa +Date: Mon Jul 16 23:39:07 2012 -0300 + + Only forward-declare some std classes if QT_NO_STL is defined. + + If that is not done, building with clang, libc++ and C++11 support + does not work: libc++ defines the iterator tag classes in an inline + namespace inside the std namespace, and forward-declaring those + classes inside the std namespace itself in qiterator.h causes an + ambiguity that clang solves by choosing the incomplete-declared class + declared in the enclosing std namespace. + + This is probably the "clang build problem" reported in commit + 19e2b4d6eb733d9fd4eb69c0622b699fd08a3203 to qtbase, which cannot be + directly cherry-picked without breaking other classes due to QT_NO_STL + still being present in Qt 4. + + Change-Id: I26e33915347d3f94ef2e10b68fca6b2099ec9491 + Reviewed-by: Bradley T. Hughes + +diff --git a/src/corelib/tools/qiterator.h b/src/corelib/tools/qiterator.h +index 0747940..b9d8da6 100644 +--- ./src/corelib/tools/qiterator.h ++++ ./src/corelib/tools/qiterator.h +@@ -46,10 +46,12 @@ + + QT_BEGIN_HEADER + ++#ifdef QT_NO_STL + namespace std { + struct bidirectional_iterator_tag; + struct random_access_iterator_tag; + } ++#endif + + QT_BEGIN_NAMESPACE + Added: head/devel/qt4-corelib/files/patch-src__corelib__tools__qiterator.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/qt4-corelib/files/patch-src__corelib__tools__qiterator.h Wed Jul 18 20:23:09 2012 (r301122) @@ -0,0 +1,38 @@ +commit 5210d47aa66214e3cb16f394d0510a91f770c1b1 +Author: Raphael Kubo da Costa +Date: Mon Jul 16 23:39:07 2012 -0300 + + Only forward-declare some std classes if QT_NO_STL is defined. + + If that is not done, building with clang, libc++ and C++11 support + does not work: libc++ defines the iterator tag classes in an inline + namespace inside the std namespace, and forward-declaring those + classes inside the std namespace itself in qiterator.h causes an + ambiguity that clang solves by choosing the incomplete-declared class + declared in the enclosing std namespace. + + This is probably the "clang build problem" reported in commit + 19e2b4d6eb733d9fd4eb69c0622b699fd08a3203 to qtbase, which cannot be + directly cherry-picked without breaking other classes due to QT_NO_STL + still being present in Qt 4. + + Change-Id: I26e33915347d3f94ef2e10b68fca6b2099ec9491 + Reviewed-by: Bradley T. Hughes + +diff --git a/src/corelib/tools/qiterator.h b/src/corelib/tools/qiterator.h +index 0747940..b9d8da6 100644 +--- ./src/corelib/tools/qiterator.h ++++ ./src/corelib/tools/qiterator.h +@@ -46,10 +46,12 @@ + + QT_BEGIN_HEADER + ++#ifdef QT_NO_STL + namespace std { + struct bidirectional_iterator_tag; + struct random_access_iterator_tag; + } ++#endif + + QT_BEGIN_NAMESPACE + Added: head/x11/qt4-opengl/files/patch-src__corelib__tools__qiterator.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/x11/qt4-opengl/files/patch-src__corelib__tools__qiterator.h Wed Jul 18 20:23:09 2012 (r301122) @@ -0,0 +1,38 @@ +commit 5210d47aa66214e3cb16f394d0510a91f770c1b1 +Author: Raphael Kubo da Costa +Date: Mon Jul 16 23:39:07 2012 -0300 + + Only forward-declare some std classes if QT_NO_STL is defined. + + If that is not done, building with clang, libc++ and C++11 support + does not work: libc++ defines the iterator tag classes in an inline + namespace inside the std namespace, and forward-declaring those + classes inside the std namespace itself in qiterator.h causes an + ambiguity that clang solves by choosing the incomplete-declared class + declared in the enclosing std namespace. + + This is probably the "clang build problem" reported in commit + 19e2b4d6eb733d9fd4eb69c0622b699fd08a3203 to qtbase, which cannot be + directly cherry-picked without breaking other classes due to QT_NO_STL + still being present in Qt 4. + + Change-Id: I26e33915347d3f94ef2e10b68fca6b2099ec9491 + Reviewed-by: Bradley T. Hughes + +diff --git a/src/corelib/tools/qiterator.h b/src/corelib/tools/qiterator.h +index 0747940..b9d8da6 100644 +--- ./src/corelib/tools/qiterator.h ++++ ./src/corelib/tools/qiterator.h +@@ -46,10 +46,12 @@ + + QT_BEGIN_HEADER + ++#ifdef QT_NO_STL + namespace std { + struct bidirectional_iterator_tag; + struct random_access_iterator_tag; + } ++#endif + + QT_BEGIN_NAMESPACE +