commit:     d8573370e0da40d6a506d564af24a47927923dc2
Author:     Craig Andrews <candrews <AT> gentoo <DOT> org>
AuthorDate: Tue Sep  8 17:57:27 2020 +0000
Commit:     Craig Andrews <candrews <AT> gentoo <DOT> org>
CommitDate: Tue Sep  8 17:57:46 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d8573370

sys-devel/llvm-roc: Fix undefined reference to current_pos()

Closes: https://bugs.gentoo.org/741118
Package-Manager: Portage-3.0.6, Repoman-3.0.1
Signed-off-by: Craig Andrews <candrews <AT> gentoo.org>

 .../files/llvm-roc-3.7.0-current_pos.patch         | 32 ++++++++++++++++++++++
 sys-devel/llvm-roc/llvm-roc-3.7.0-r1.ebuild        |  4 +++
 2 files changed, 36 insertions(+)

diff --git a/sys-devel/llvm-roc/files/llvm-roc-3.7.0-current_pos.patch 
b/sys-devel/llvm-roc/files/llvm-roc-3.7.0-current_pos.patch
new file mode 100644
index 00000000000..a0d3c1df6d9
--- /dev/null
+++ b/sys-devel/llvm-roc/files/llvm-roc-3.7.0-current_pos.patch
@@ -0,0 +1,32 @@
+https://bugs.llvm.org/show_bug.cgi?id=43235
+
+diff --git a/llvm/include/llvm/Support/raw_ostream.h 
b/llvm/include/llvm/Support/raw_ostream.h
+index 705f1790b1d..a0314b2c46a 100644
+--- a/include/llvm/Support/raw_ostream.h
++++ b/include/llvm/Support/raw_ostream.h
+@@ -507,9 +507,7 @@ class raw_string_ostream : public raw_ostream {
+   /// See raw_ostream::write_impl.
+   void write_impl(const char *Ptr, size_t Size) override;
+ 
+-  /// Return the current position within the stream, not counting the bytes
+-  /// currently in the buffer.
+-  uint64_t current_pos() const override { return OS.size(); }
++  uint64_t current_pos() const override;
+ 
+ public:
+   explicit raw_string_ostream(std::string &O) : OS(O) {}
+diff --git a/llvm/lib/Support/raw_ostream.cpp 
b/llvm/lib/Support/raw_ostream.cpp
+index 4bb315f824a..742e2aced39 100644
+--- a/lib/Support/raw_ostream.cpp
++++ b/lib/Support/raw_ostream.cpp
+@@ -895,6 +895,10 @@ raw_ostream &llvm::nulls() {
+ //  raw_string_ostream
+ 
//===----------------------------------------------------------------------===//
+ 
++/// Return the current position within the stream, not counting the bytes
++/// currently in the buffer.
++uint64_t raw_string_ostream::current_pos() const { return OS.size(); }
++
+ raw_string_ostream::~raw_string_ostream() {
+   flush();
+ }

diff --git a/sys-devel/llvm-roc/llvm-roc-3.7.0-r1.ebuild 
b/sys-devel/llvm-roc/llvm-roc-3.7.0-r1.ebuild
index ec60b28f085..6586ec782b7 100644
--- a/sys-devel/llvm-roc/llvm-roc-3.7.0-r1.ebuild
+++ b/sys-devel/llvm-roc/llvm-roc-3.7.0-r1.ebuild
@@ -23,6 +23,10 @@ PDEPEND="dev-libs/rocr-runtime"
 
 S="${WORKDIR}/llvm-project-rocm-${PV}/llvm"
 
+PATCHES=(
+       "${FILESDIR}/${P}-current_pos.patch"
+)
+
 CMAKE_BUILD_TYPE=RelWithDebInfo
 
 src_prepare() {

Reply via email to