Date: Tue, 29 Nov 2016 16:10:00 +0000 (UTC) From: Raphael Kubo da Costa <rakuco@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r427385 - head/devel/qbs/files Message-ID: <201611291610.uATGA0o9030698@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: rakuco Date: Tue Nov 29 16:10:00 2016 New Revision: 427385 URL: https://svnweb.freebsd.org/changeset/ports/427385 Log: Backport an upstream commit that fixes the build with libc++ 3.9.0. Ever since LLVM 3.9.0 was imported into base, qbs was failing to build with an error message like this: In file included from /wrkdirs/usr/ports/devel/qbs/work/qbs-src-1.6.1/src/lib/corelib/api/internaljobs.cpp:39: In file included from /wrkdirs/usr/ports/devel/qbs/work/qbs-src-1.6.1/src/lib/corelib/buildgraph/executor.h:45: /usr/include/c++/v1/queue:400:5: error: static_assert failed "" static_assert((is_same<_Tp, value_type>::value), "" ); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /wrkdirs/usr/ports/devel/qbs/work/qbs-src-1.6.1/src/lib/corelib/buildgraph/executor.h:156:12: note: in instantiation of template class 'std::__1::priority_queue<qbs::Internal::Artifact *, std::__1::vector<qbs::Internal::BuildGraphNode *, std::__1::allocator<qbs::Internal::BuildGraphNode *> >, qbs::Internal::Executor::ComparePriority>' requested here Leaves m_leaves; I don't think PORTREVISION needs to be bumped, as there shouldn't be any difference on systems where the port was already building fine. MFH: 2016Q4 Added: head/devel/qbs/files/ head/devel/qbs/files/patch-git_5c1183a (contents, props changed) Added: head/devel/qbs/files/patch-git_5c1183a ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/qbs/files/patch-git_5c1183a Tue Nov 29 16:10:00 2016 (r427385) @@ -0,0 +1,36 @@ +This fixes a build failure with libc++ 3.9.0 (FreeBSD 12+): + +In file included from /wrkdirs/usr/ports/devel/qbs/work/qbs-src-1.6.1/src/lib/corelib/api/internaljobs.cpp:39: +In file included from /wrkdirs/usr/ports/devel/qbs/work/qbs-src-1.6.1/src/lib/corelib/buildgraph/executor.h:45: +/usr/include/c++/v1/queue:400:5: error: static_assert failed "" + static_assert((is_same<_Tp, value_type>::value), "" ); + ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/wrkdirs/usr/ports/devel/qbs/work/qbs-src-1.6.1/src/lib/corelib/buildgraph/executor.h:156:12: note: in instantiation of template class 'std::__1::priority_queue<qbs::Internal::Artifact *, std::__1::vector<qbs::Internal::BuildGraphNode *, std::__1::allocator<qbs::Internal::BuildGraphNode *> >, qbs::Internal::Executor::ComparePriority>' requested here + Leaves m_leaves; + +commit 5c1183aa377ae8de487d5541360369ebd2ee0f6b +Author: Christian Kandeler <christian.kandeler@qt.io> +Date: Mon Nov 28 14:54:43 2016 +0100 + + Executor: Fix undefined behavior + + C++17 introduces new requirements on the template parameters of + std::priority_queue. + + Task-number: QBS-1051 + Change-Id: I9a22b8f2d3c1f0bd532b0a76f5d2a16bebc303f7 + Reviewed-by: Raphael Kubo da Costa <rakuco@FreeBSD.org> + Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> + +--- src/lib/corelib/buildgraph/executor.h ++++ src/lib/corelib/buildgraph/executor.h +@@ -107,7 +107,8 @@ private: + bool operator() (const BuildGraphNode *x, const BuildGraphNode *y) const; + }; + +- typedef std::priority_queue<Artifact *, std::vector<BuildGraphNode *>, ComparePriority> Leaves; ++ typedef std::priority_queue<BuildGraphNode *, std::vector<BuildGraphNode *>, ++ ComparePriority> Leaves; + + void doBuild(); + void prepareAllNodes();
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201611291610.uATGA0o9030698>