svn commit: r427385 - head/devel/qbs/files
Raphael Kubo da Costa
rakuco at FreeBSD.org
Tue Nov 29 16:10:01 UTC 2016
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 at 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 at FreeBSD.org>
+ Reviewed-by: Joerg Bornemann <joerg.bornemann at 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();
More information about the svn-ports-head
mailing list