public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Craig Andrews" <candrews@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-libs/rocm-comgr/files/, dev-libs/rocm-comgr/
Date: Fri, 27 Sep 2019 18:05:08 +0000 (UTC)	[thread overview]
Message-ID: <1569607500.a7dd8be8771e2c87149d061152541aa4bdf917d7.candrews@gentoo> (raw)

commit:     a7dd8be8771e2c87149d061152541aa4bdf917d7
Author:     Craig Andrews <candrews <AT> gentoo <DOT> org>
AuthorDate: Fri Sep 27 18:04:37 2019 +0000
Commit:     Craig Andrews <candrews <AT> gentoo <DOT> org>
CommitDate: Fri Sep 27 18:05:00 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a7dd8be8

dev-libs/rocm-comgr: fix llvm related build error

Closes: https://bugs.gentoo.org/695660
Package-Manager: Portage-2.3.76, Repoman-2.3.17
Signed-off-by: Craig Andrews <candrews <AT> gentoo.org>

 .../rocm-comgr-2.7.0-llvm-interface-change.patch   | 176 +++++++++++++++++++++
 dev-libs/rocm-comgr/rocm-comgr-2.7.0.ebuild        |   1 +
 2 files changed, 177 insertions(+)

diff --git a/dev-libs/rocm-comgr/files/rocm-comgr-2.7.0-llvm-interface-change.patch b/dev-libs/rocm-comgr/files/rocm-comgr-2.7.0-llvm-interface-change.patch
new file mode 100644
index 00000000000..dc8ed42fc46
--- /dev/null
+++ b/dev-libs/rocm-comgr/files/rocm-comgr-2.7.0-llvm-interface-change.patch
@@ -0,0 +1,176 @@
+From a73e4ce7c686787840454e206a17973685b03e62 Mon Sep 17 00:00:00 2001
+From: Michael LIAO <michaelhongbin.liao@amd.com>
+Date: Thu, 15 Aug 2019 13:25:58 -0400
+Subject: [PATCH] Fix comgr build due to LLVM interface change.
+
+Change-Id: I66c2203f09b683dd06807860eeb5f517cd200f0e
+---
+ src/comgr-objdump.cpp | 68 +++++++++++++++++++++++----------
+ 1 file changed, 47 insertions(+), 21 deletions(-)
+
+diff --git a/src/comgr-objdump.cpp b/src/comgr-objdump.cpp
+index bf490b6..59a9d05 100644
+--- a/src/comgr-objdump.cpp
++++ b/src/comgr-objdump.cpp
+@@ -307,15 +307,18 @@ class SectionFilter {
+   FilterPredicate Predicate;
+   llvm::object::ObjectFile const &Object;
+ };
++
+ SectionFilter ToolSectionFilter(llvm::object::ObjectFile const &O) {
+   return SectionFilter(
+       [](llvm::object::SectionRef const &S) {
+         if (FilterSections.empty())
+           return true;
+-        llvm::StringRef String;
+-        std::error_code error = S.getName(String);
+-        if (error)
++        Expected<StringRef> SecNameOrErr = S.getName();
++        if (!SecNameOrErr) {
++          consumeError(SecNameOrErr.takeError());
+           return false;
++        }
++        StringRef String = *SecNameOrErr;
+         return is_contained(FilterSections, String);
+       },
+       O);
+@@ -394,6 +397,18 @@ report_error(StringRef ArchiveName, const object::Archive::Child &C,
+     report_error(ArchiveName, NameOrErr.get(), std::move(E), ArchitectureName);
+ }
+ 
++static LLVM_ATTRIBUTE_NORETURN void report_error(llvm::Error E,
++                                                 StringRef File) {
++  report_error(File, std::move(E));
++}
++
++template <typename T, typename... Ts>
++T unwrapOrError(Expected<T> EO, Ts &&... Args) {
++  if (EO)
++    return std::move(*EO);
++  report_error(EO.takeError(), std::forward<Ts>(Args)...);
++}
++
+ static const Target *getTarget(const ObjectFile *Obj = nullptr) {
+   // Figure out the target triple.
+   llvm::Triple TheTriple("unknown-unknown-unknown");
+@@ -822,13 +837,13 @@ static void printRelocationTargetName(const MachOObjectFile *O,
+     for (const SectionRef &Section : ToolSectionFilter(*O)) {
+       std::error_code ec;
+ 
+-      StringRef Name;
+       uint64_t Addr = Section.getAddress();
+       if (Addr != Val)
+         continue;
+-      if ((ec = Section.getName(Name)))
+-        report_error(O->getFileName(), ec);
+-      fmt << Name;
++      Expected<StringRef> NameOrErr = Section.getName();
++      if (!NameOrErr)
++        report_error(O->getFileName(), NameOrErr.takeError());
++      fmt << *NameOrErr;
+       return;
+     }
+ 
+@@ -854,7 +869,11 @@ static void printRelocationTargetName(const MachOObjectFile *O,
+     section_iterator SI = O->section_begin();
+     // Adjust for the fact that sections are 1-indexed.
+     advance(SI, Val - 1);
+-    SI->getName(S);
++    Expected<StringRef> SOrErr = SI->getName();
++    if (!SOrErr)
++      consumeError(SOrErr.takeError());
++    else
++      S = *SOrErr;
+   }
+ 
+   fmt << S;
+@@ -1362,8 +1381,7 @@ void llvm::DisassemHelper::DisassembleObject(const ObjectFile *Obj,
+       DataRefImpl DR = Section.getRawDataRefImpl();
+       SegmentName = MachO->getSectionFinalSegmentName(DR);
+     }
+-    StringRef name;
+-    error(Section.getName(name));
++    StringRef name = unwrapOrError(Section.getName(), Obj->getFileName());
+ 
+     if ((SectionAddr <= StopAddress) &&
+         (SectionAddr + SectSize) >= StartAddress) {
+@@ -1675,8 +1693,7 @@ void llvm::DisassemHelper::PrintRelocations(const ObjectFile *Obj) {
+   for (const SectionRef &Section : ToolSectionFilter(*Obj)) {
+     if (Section.relocation_begin() == Section.relocation_end())
+       continue;
+-    StringRef secname;
+-    error(Section.getName(secname));
++    StringRef secname = unwrapOrError(Section.getName(), Obj->getFileName());
+     OutS << "RELOCATION RECORDS FOR [" << secname << "]:\n";
+     for (const RelocationRef &Reloc : Section.relocations()) {
+       bool hidden = getHidden(Reloc);
+@@ -1699,8 +1716,7 @@ void llvm::DisassemHelper::PrintSectionHeaders(const ObjectFile *Obj) {
+           "Idx Name          Size      Address          Type\n";
+   unsigned i = 0;
+   for (const SectionRef &Section : ToolSectionFilter(*Obj)) {
+-    StringRef Name;
+-    error(Section.getName(Name));
++    StringRef Name = unwrapOrError(Section.getName(), Obj->getFileName());
+     uint64_t Address = Section.getAddress();
+     uint64_t Size = Section.getSize();
+     bool Text = Section.isText();
+@@ -1717,9 +1733,8 @@ void llvm::DisassemHelper::PrintSectionHeaders(const ObjectFile *Obj) {
+ void llvm::DisassemHelper::PrintSectionContents(const ObjectFile *Obj) {
+   std::error_code EC;
+   for (const SectionRef &Section : ToolSectionFilter(*Obj)) {
+-    StringRef Name;
+     StringRef Contents;
+-    error(Section.getName(Name));
++    StringRef Name = unwrapOrError(Section.getName(), Obj->getFileName());
+     uint64_t BaseAddr = Section.getAddress();
+     uint64_t Size = Section.getSize();
+     if (!Size)
+@@ -1797,7 +1812,11 @@ void llvm::DisassemHelper::PrintSymbolTable(const ObjectFile *o,
+     section_iterator Section = *SectionOrErr;
+     StringRef Name;
+     if (Type == SymbolRef::ST_Debug && Section != o->section_end()) {
+-      Section->getName(Name);
++      Expected<StringRef> NameOrErr = Section->getName();
++      if (!NameOrErr)
++        consumeError(NameOrErr.takeError());
++      else
++        Name = *NameOrErr;
+     } else {
+       Expected<StringRef> NameOrErr = Symbol.getName();
+       if (!NameOrErr)
+@@ -1846,8 +1865,7 @@ void llvm::DisassemHelper::PrintSymbolTable(const ObjectFile *o,
+         StringRef SegmentName = MachO->getSectionFinalSegmentName(DR);
+         OutS << SegmentName << ",";
+       }
+-      StringRef SectionName;
+-      error(Section->getName(SectionName));
++      StringRef SectionName = unwrapOrError(Section->getName(), o->getFileName());
+       OutS << SectionName;
+     }
+ 
+@@ -1978,7 +1996,11 @@ void llvm::DisassemHelper::printRawClangAST(const ObjectFile *Obj) {
+   Optional<object::SectionRef> ClangASTSection;
+   for (auto Sec : ToolSectionFilter(*Obj)) {
+     StringRef Name;
+-    Sec.getName(Name);
++    auto NameOrErr = Sec.getName();
++    if (!NameOrErr) // FIXME: Need better error handling.
++      consumeError(NameOrErr.takeError());
++    else
++      Name = *NameOrErr;
+     if (Name == ClangASTSectionName) {
+       ClangASTSection = Sec;
+       break;
+@@ -2015,7 +2037,11 @@ void llvm::DisassemHelper::printFaultMaps(const ObjectFile *Obj) {
+ 
+   for (auto Sec : ToolSectionFilter(*Obj)) {
+     StringRef Name;
+-    Sec.getName(Name);
++    auto NameOrErr = Sec.getName();
++    if (!NameOrErr) // FIXME: Need better error handling.
++      consumeError(NameOrErr.takeError());
++    else
++      Name = *NameOrErr;
+     if (Name == FaultMapSectionName) {
+       FaultMapSection = Sec;
+       break;

diff --git a/dev-libs/rocm-comgr/rocm-comgr-2.7.0.ebuild b/dev-libs/rocm-comgr/rocm-comgr-2.7.0.ebuild
index 17cde649143..e357310f253 100644
--- a/dev-libs/rocm-comgr/rocm-comgr-2.7.0.ebuild
+++ b/dev-libs/rocm-comgr/rocm-comgr-2.7.0.ebuild
@@ -20,6 +20,7 @@ PATCHES=(
 	"${FILESDIR}/${PN}-2.6.0-find-lld-includes.patch"
 	"${FILESDIR}/${PN}-2.6.0-dependencies.patch"
 	"${FILESDIR}/${PN}-2.6.0-unbundle-yaml-cpp.patch"
+	"${FILESDIR}/${PN}-2.7.0-llvm-interface-change.patch"
 )
 
 DESCRIPTION="Radeon Open Compute Code Object Manager"


             reply	other threads:[~2019-09-27 18:05 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-27 18:05 Craig Andrews [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-02-13  8:38 [gentoo-commits] repo/gentoo:master commit in: dev-libs/rocm-comgr/files/, dev-libs/rocm-comgr/ Sam James
2024-12-01  7:57 Patrick Lauer
2024-03-08 19:22 Sam James
2023-11-01  9:28 Yixun Lan
2023-09-03  6:31 罗百科
2023-03-07  7:57 Sam James
2023-02-02 12:54 Sam James
2022-02-11 16:12 Joonas Niilola
2020-08-25 21:08 Craig Andrews
2020-03-02  0:39 Craig Andrews
2019-08-07 17:38 Craig Andrews
2019-08-07 17:38 Craig Andrews

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1569607500.a7dd8be8771e2c87149d061152541aa4bdf917d7.candrews@gentoo \
    --to=candrews@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox