summaryrefslogtreecommitdiff
path: root/dev-util/oprofile
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2020-06-29 11:38:31 +0100
committerV3n3RiX <venerix@redcorelinux.org>2020-06-29 11:38:31 +0100
commit90c88731bd036e5698b281fbc0a5f3aa4c9983ac (patch)
tree83fc5facb6b12be510a37bc3d241cc63e965b13a /dev-util/oprofile
parentfeb0daf81d888e9160f9f94502de09b66f2a63fd (diff)
gentoo resync : 29.06.2020
Diffstat (limited to 'dev-util/oprofile')
-rw-r--r--dev-util/oprofile/Manifest3
-rw-r--r--dev-util/oprofile/files/binutils-2.34.patch157
-rw-r--r--dev-util/oprofile/oprofile-1.3.0.ebuild8
3 files changed, 166 insertions, 2 deletions
diff --git a/dev-util/oprofile/Manifest b/dev-util/oprofile/Manifest
index 66a136e7f9ec..674888738924 100644
--- a/dev-util/oprofile/Manifest
+++ b/dev-util/oprofile/Manifest
@@ -1,3 +1,4 @@
+AUX binutils-2.34.patch 5670 BLAKE2B 20cf23c45d94d9c71f5fb5c432e832d8db53f6428b7f2849ad3f5854de36e371addd0883174eed4537b66367dbbf842ca557ae7842561a9f643769191929964a SHA512 be14f319c3e1c7486534e91e1dfb88c853148d58435ccf2ecef5e8ec690f20adea1edc48f3b6c88e900382d2dc342319ee28172150682bf1cf2a3e6fea9a1f4b
DIST oprofile-1.3.0.tar.gz 1547258 BLAKE2B d8777e41856dc2f082570a1542609bd730fd7076000443f2e17c77eaf75df7a7a772ebb49d82ee657f563797858cecb4c23b130b0174d154c54d5619b8528ad1 SHA512 02a940cd8d38834dca2a97c8ac0fff04ef95b3819cfdf74a462b9326c7abbf2dc55d2a9b9d1fbefc7f455465bf85516be2b879d7daf1861ba2c4af51214377ba
-EBUILD oprofile-1.3.0.ebuild 1598 BLAKE2B 061dfaba66945c51667d21f529a14fbaeaccc8acda4ca9b84271c826450317420fd35589f678a662315c80101d474f40ca89f570159468608d92c29138f732a9 SHA512 4705fc1db66537f6630ac525ed844a87dff2d89f712d92ecfe77b0235a5dcd921218a2ac6b4ff1011fb212d5c72cd058cdc54eb978898a9b25150a82a7335c96
+EBUILD oprofile-1.3.0.ebuild 1710 BLAKE2B f8e293e267d697ac5032aa086dcee205a86709b2c26b9ae730e105cd5b2045aec0550c6672ff8fc300c203d53b5d1bae26cdf1a310cd0226f60a58aaf38bbdcb SHA512 b0e87f0a90f21f35cdc9dd21b32d0a93e3bb26ec7517a28669ae5b7086a3d597c1a64f6ca117cec1625cdf239a191c4b028388ca7f3e5ff24fbbf695a55e1234
MISC metadata.xml 423 BLAKE2B f94e15abeacab93798df7566bd1dc4d8e820aa57ddd71c2e5bfcf0c983bce5961a7c8bffb4f0ebdd92785002745314feece144e29000dd38f29426d2b35b8897 SHA512 01f96b806fca3e20eb84908a1cd77edbe11291be0098aff2e4d20f0fbf86ea0ef9972c7148c791bc826152a109d16903781cc2f2f367a2ac8b8fb7e5efee378a
diff --git a/dev-util/oprofile/files/binutils-2.34.patch b/dev-util/oprofile/files/binutils-2.34.patch
new file mode 100644
index 000000000000..6337191a21d4
--- /dev/null
+++ b/dev-util/oprofile/files/binutils-2.34.patch
@@ -0,0 +1,157 @@
+commit 377610414fb6cd7ac30e4485d9d6482fcf29aca6
+Author: William Cohen <wcohen@redhat.com>
+Date: Wed Mar 18 21:19:16 2020 -0400
+
+ Macro wrappers to handle the binutils 2.34 api changes
+
+ Changes in binutils 2.34 API prevented oprofile from compiling with
+ it. This patch tests for the changes in the binutils API during
+ configuration and selects the appropiate wrappers to allow oprofile to
+ compile. This allows oprofile to compile with both older and newer
+ versions of binutils.
+
+diff --git a/configure.ac b/configure.ac
+index ac2fd35e..df032a78 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -224,6 +224,26 @@ if test "$host_cpu" = "powerpc64le" -o "$host_cpu" = "powerpc64"; then
+ fi
+ AC_SUBST(PFM_LIB)
+
++HAVE_BINUTILS_234='1'
++AC_MSG_CHECKING([whether binutils 2.34 is being used])
++rm -f test-for-BINUTILS
++AC_LANG_CONFTEST(
++ [AC_LANG_PROGRAM([[#include <bfd.h>]],
++ [[asection * sect;
++ bfd_size_type buildid_sect_size = bfd_section_size(sect);
++ return 0;]])
++ ])
++$CC conftest.$ac_ext $CFLAGS $LDFLAGS $LIBS $PERF_EVENT_FLAGS -o test-for-BINUTILS > /dev/null 2>&1
++if test -f test-for-BINUTILS; then
++ echo "yes"
++ HAVE_BINUTILS_234='1'
++else
++ echo "no"
++ HAVE_BINUTILS_234='0'
++fi
++AC_DEFINE_UNQUOTED(HAVE_BINUTILS_234, $HAVE_BINUTILS_234, [Using binutils 2.34])
++rm -f test-for-BINUTILS*
++
+ AC_ARG_WITH(java,
+ [ --with-java=java-home Path to Java home directory (default is "no"; "yes" will use /usr as Java home)],
+ JAVA_HOMEDIR=$with_java, [with_java=no])
+diff --git a/libutil++/bfd_support.cpp b/libutil++/bfd_support.cpp
+index fa904839..cd0f4f71 100644
+--- a/libutil++/bfd_support.cpp
++++ b/libutil++/bfd_support.cpp
+@@ -19,6 +19,7 @@
+ #include "locate_images.h"
+ #include "op_libiberty.h"
+ #include "op_exception.h"
++#include "op_bfd_wrappers.h"
+
+ #include <unistd.h>
+ #include <errno.h>
+@@ -137,7 +138,7 @@ static bool get_build_id(bfd * ibfd, unsigned char * build_id)
+ }
+ }
+
+- bfd_size_type buildid_sect_size = bfd_section_size(ibfd, sect);
++ bfd_size_type buildid_sect_size = op_bfd_section_size(ibfd, sect);
+ char * contents = (char *) xmalloc(buildid_sect_size);
+ errno = 0;
+ if (!bfd_get_section_contents(ibfd, sect,
+@@ -188,7 +189,7 @@ bool get_debug_link_info(bfd * ibfd, string & filename, unsigned long & crc32)
+ if (sect == NULL)
+ return false;
+
+- bfd_size_type debuglink_size = bfd_section_size(ibfd, sect);
++ bfd_size_type debuglink_size = op_bfd_section_size(ibfd, sect);
+ char * contents = (char *) xmalloc(debuglink_size);
+ cverb << vbfd
+ << ".gnu_debuglink section has size " << debuglink_size << endl;
+@@ -346,7 +347,7 @@ void fixup_linenr(bfd * abfd, asection * section, asymbol ** syms,
+ // first restrict the search on a sensible range of vma, 16 is
+ // an intuitive value based on epilog code look
+ size_t max_search = 16;
+- size_t section_size = bfd_section_size(abfd, section);
++ size_t section_size = op_bfd_section_size(abfd, section);
+ if (pc + max_search > section_size)
+ max_search = section_size - pc;
+
+@@ -819,10 +820,10 @@ find_nearest_line(bfd_info const & b, op_bfd_symbol const & sym,
+ else
+ pc = (sym.value() + offset) - sym.filepos();
+
+- if ((bfd_get_section_flags(abfd, section) & SEC_ALLOC) == 0)
++ if ((op_bfd_get_section_flags(abfd, section) & SEC_ALLOC) == 0)
+ goto fail;
+
+- if (pc >= bfd_section_size(abfd, section))
++ if (pc >= op_bfd_section_size(abfd, section))
+ goto fail;
+
+ ret = bfd_find_nearest_line(abfd, section, syms, pc, &cfilename,
+diff --git a/libutil/op_bfd_wrappers.h b/libutil/op_bfd_wrappers.h
+new file mode 100644
+index 00000000..b229cc12
+--- /dev/null
++++ b/libutil/op_bfd_wrappers.h
+@@ -0,0 +1,28 @@
++/**
++ * @file op_bfd_wrappers.h
++ * Wrappers to hide API changes in binutils 2.34
++ *
++ * @remark Copyright 2020 OProfile authors
++ * @remark Read the file COPYING
++ *
++ * @author William Cohen
++ */
++
++#ifndef OP_BFD_WRAPPERS_H
++#define OP_BFD_WRAPPERS_H
++
++#if HAVE_BINUTILS_234
++#define op_bfd_section_size(ibfd, sec) bfd_section_size(sec)
++#define op_bfd_get_section_flags(abfd, sec) bfd_section_flags(sec)
++#define op_bfd_set_section_flags(abfd, sec, flags) bfd_set_section_flags(sec, flags)
++#define op_bfd_set_section_vma(abfd, sec, vma) bfd_set_section_vma(sec, vma)
++#define op_bfd_set_section_size(abfd, sec, size) bfd_set_section_size(sec, size)
++#else
++#define op_bfd_section_size(ibfd, sec) bfd_section_size(ibfd, sec)
++#define op_bfd_get_section_flags(abfd, sec) bfd_get_section_flags(abfd, sec)
++#define op_bfd_set_section_flags(abfd, sec, flags) bfd_set_section_flags(abfd, sec, flags)
++#define op_bfd_set_section_vma(abfd, sec, vma) bfd_set_section_vma(abfd, sec, vma)
++#define op_bfd_set_section_size(abfd, sec, size) bfd_set_section_size(abfd, sec, size)
++#endif
++
++#endif /* !OP_BFD_WRAPPERS_H */
+diff --git a/opjitconv/create_bfd.c b/opjitconv/create_bfd.c
+index 48db143b..da1e6d29 100644
+--- a/opjitconv/create_bfd.c
++++ b/opjitconv/create_bfd.c
+@@ -16,6 +16,7 @@
+
+ #include "opjitconv.h"
+ #include "op_libiberty.h"
++#include "op_bfd_wrappers.h"
+
+ #include <bfd.h>
+ #include <assert.h>
+@@ -86,12 +87,12 @@ asection * create_section(bfd * abfd, char const * section_name,
+ bfd_perror("bfd_make_section");
+ goto error;
+ }
+- bfd_set_section_vma(abfd, section, vma);
+- if (bfd_set_section_size(abfd, section, size) == FALSE) {
++ op_bfd_set_section_vma(abfd, section, vma);
++ if (op_bfd_set_section_size(abfd, section, size) == FALSE) {
+ bfd_perror("bfd_set_section_size");
+ goto error;
+ }
+- if (bfd_set_section_flags(abfd, section, flags) == FALSE) {
++ if (op_bfd_set_section_flags(abfd, section, flags) == FALSE) {
+ bfd_perror("bfd_set_section_flags");
+ goto error;
+ }
diff --git a/dev-util/oprofile/oprofile-1.3.0.ebuild b/dev-util/oprofile/oprofile-1.3.0.ebuild
index 826af1f43b98..da8d69f7b576 100644
--- a/dev-util/oprofile/oprofile-1.3.0.ebuild
+++ b/dev-util/oprofile/oprofile-1.3.0.ebuild
@@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=6
-inherit java-pkg-opt-2 linux-info user
+inherit autotools java-pkg-opt-2 linux-info user
DESCRIPTION="A transparent low-overhead system-wide profiler"
HOMEPAGE="http://oprofile.sourceforge.net"
@@ -39,6 +39,12 @@ pkg_setup() {
use java && java-pkg_init
}
+src_prepare() {
+ eapply "${FILESDIR}/binutils-2.34.patch"
+ java-pkg-opt-2_src_prepare
+ eautoreconf
+}
+
src_configure() {
econf \
--disable-werror \