Skip site navigation (1)Skip section navigation (2)
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>