summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Junghans <junghans@gentoo.org>2020-09-20 08:13:29 -0600
committerChristoph Junghans <junghans@gentoo.org>2020-09-20 08:14:31 -0600
commit66ad936a19e0032422bc274f201f7ef8ebb32a83 (patch)
treec56f770f030e07f9f84498d30835ef395473aba3 /net-misc/grive
parentdev-util/intel-graphics-compiler: bump to 1.0.4944 (diff)
downloadgentoo-66ad936a19e0032422bc274f201f7ef8ebb32a83.tar.gz
gentoo-66ad936a19e0032422bc274f201f7ef8ebb32a83.tar.bz2
gentoo-66ad936a19e0032422bc274f201f7ef8ebb32a83.zip
net-misc/grive: fix build with new binutils
Closes: https://bugs.gentoo.org/708008 Package-Manager: Portage-3.0.4, Repoman-3.0.1 Signed-off-by: Christoph Junghans <junghans@gentoo.org>
Diffstat (limited to 'net-misc/grive')
-rw-r--r--net-misc/grive/files/299.patch113
-rw-r--r--net-misc/grive/grive-0.5.1-r1.ebuild36
2 files changed, 149 insertions, 0 deletions
diff --git a/net-misc/grive/files/299.patch b/net-misc/grive/files/299.patch
new file mode 100644
index 000000000000..a5e030f2534a
--- /dev/null
+++ b/net-misc/grive/files/299.patch
@@ -0,0 +1,113 @@
+From b4d6ac055f8f16ac735a70036243bc4ea2334039 Mon Sep 17 00:00:00 2001
+From: Giuseppe Corbelli <corbelligiuseppe@mesdan.it>
+Date: Tue, 14 Jan 2020 11:50:20 +0100
+Subject: [PATCH] [SymbolInfo.cc] Support compilation with binutils >= 2.33.1
+ on Debian.
+
+bfd_get_section_vma macro was removed.
+bfd_section_size changed signature.
+
+See inline comment for details.
+---
+ libgrive/src/bfd/SymbolInfo.cc | 35 ++++++++++++++++++++--------------
+ 1 file changed, 21 insertions(+), 14 deletions(-)
+
+diff --git a/libgrive/src/bfd/SymbolInfo.cc b/libgrive/src/bfd/SymbolInfo.cc
+index 5876cc0..cdb5d7c 100644
+--- a/libgrive/src/bfd/SymbolInfo.cc
++++ b/libgrive/src/bfd/SymbolInfo.cc
+@@ -49,9 +49,9 @@ SymbolInfo::SymbolInfo( )
+ m_impl->m_bfd = 0 ;
+ m_impl->m_symbols = 0 ;
+ m_impl->m_symbol_count = 0 ;
+-
++
+ bfd_init( ) ;
+-
++
+ // opening itself
+ bfd *b = bfd_openr( "/proc/self/exe", 0 ) ;
+ if ( b == NULL )
+@@ -60,13 +60,13 @@ SymbolInfo::SymbolInfo( )
+ << bfd_errmsg( bfd_get_error() ) << std::endl ;
+ return ;
+ }
+-
++
+ if ( bfd_check_format( b, bfd_archive ) )
+ {
+ bfd_close( b ) ;
+ return ;
+ }
+-
++
+ char **matching ;
+ if ( !bfd_check_format_matches( b, bfd_object, &matching ) )
+ {
+@@ -78,7 +78,7 @@ SymbolInfo::SymbolInfo( )
+ std::cerr << bfd_get_filename( b ) << ": Matching formats: " ;
+ for ( char **p = matching ; *p != 0 ; p++ )
+ std::cerr << " " << *p ;
+-
++
+ std::cerr << std::endl ;
+ std::free( matching ) ;
+ }
+@@ -107,7 +107,7 @@ struct SymbolInfo::BacktraceInfo
+ const char *m_func_name ;
+ unsigned int m_lineno ;
+ unsigned int m_is_found ;
+-
++
+ static void Callback( bfd *abfd, asection *section, void* addr ) ;
+ } ;
+
+@@ -117,17 +117,24 @@ void SymbolInfo::BacktraceInfo::Callback( bfd *abfd, asection *section,
+ BacktraceInfo *info = (BacktraceInfo *)data ;
+ if ((section->flags & SEC_ALLOC) == 0)
+ return ;
+-
+- bfd_vma vma = bfd_get_section_vma(abfd, section);
+-
++
++ // bfd_get_section_vma works up to 7b1cfbcf1a27951fb1b3a212995075dd6fdf985b,
++ // removed in 7c13bc8c91abf291f0206b6608b31955c5ea70d8 (binutils 2.33.1 or so)
++ // so it's substituted by its implementation to avoid checking for binutils
++ // version (which at least on Debian SID it's not that easy because the
++ // version.h is not included with the official package)
++ bfd_vma vma = section->vma;
++
+ unsigned long address = (unsigned long)(info->m_addr);
+ if ( address < vma )
+ return;
+-
+- bfd_size_type size = bfd_section_size(abfd, section);
++
++ // bfd_section_size changed between the two objects described above,
++ // same rationale applies
++ bfd_size_type size = section->size;
+ if ( address > (vma + size))
+ return ;
+-
++
+ const SymbolInfo *pthis = info->m_pthis ;
+ info->m_is_found = bfd_find_nearest_line( abfd, section,
+ pthis->m_impl->m_symbols,
+@@ -149,7 +156,7 @@ void SymbolInfo::PrintTrace( void *addr, std::ostream& os, std::size_t idx )
+ {
+ this, addr, 0, 0, 0, false
+ } ;
+-
++
+ Dl_info sym ;
+ bfd_map_over_sections( m_impl->m_bfd,
+ &SymbolInfo::BacktraceInfo::Callback,
+@@ -165,7 +172,7 @@ if ( btinfo.m_is_found )
+ filename.erase( pos, std::strlen( SRC_DIR ) ) ;
+ #endif
+ os << "#" << idx << " " << addr << " "
+- << filename << ":" << btinfo.m_lineno
++ << filename << ":" << btinfo.m_lineno
+ << " "
+ << (btinfo.m_func_name != 0 ? Demangle(btinfo.m_func_name) : "" )
+ << std::endl ;
diff --git a/net-misc/grive/grive-0.5.1-r1.ebuild b/net-misc/grive/grive-0.5.1-r1.ebuild
new file mode 100644
index 000000000000..323a194002ef
--- /dev/null
+++ b/net-misc/grive/grive-0.5.1-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+if [[ ${PV} = *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/vitalif/${PN}2.git"
+else
+ inherit vcs-snapshot
+ SRC_URI="https://github.com/vitalif/${PN}2/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+fi
+
+DESCRIPTION="An open source Linux client for Google Drive"
+HOMEPAGE="https://github.com/vitalif/grive2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="
+ dev-libs/boost:=
+ dev-libs/expat
+ >=dev-libs/json-c-0.11-r1:=
+ dev-libs/libgcrypt:0=
+ dev-libs/yajl
+ || ( net-misc/curl[curl_ssl_openssl] net-misc/curl[curl_ssl_gnutls] )
+ sys-libs/binutils-libs:0=
+ sys-libs/glibc
+"
+DEPEND="${RDEPEND}"
+
+PATCHES=( "${FILESDIR}/299.patch" )