public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: dev-util/kcov/, dev-util/kcov/files/
@ 2022-09-17 21:46 Sam James
  0 siblings, 0 replies; only message in thread
From: Sam James @ 2022-09-17 21:46 UTC (permalink / raw
  To: gentoo-commits

commit:     ee3520b6906c5a46fe56c4bf3b5c26e357dd17a0
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 17 21:45:55 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Sep 17 21:45:55 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ee3520b6

dev-util/kcov: fix build w/ binutils 2.39

Closes: https://bugs.gentoo.org/868114
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-util/kcov/files/kcov-40-binutils-2.39.patch | 92 +++++++++++++++++++++++++
 dev-util/kcov/files/kcov-40-gcc-13.patch        | 45 ++++++++++++
 dev-util/kcov/kcov-40.ebuild                    |  5 ++
 3 files changed, 142 insertions(+)

diff --git a/dev-util/kcov/files/kcov-40-binutils-2.39.patch b/dev-util/kcov/files/kcov-40-binutils-2.39.patch
new file mode 100644
index 000000000000..88029305c90f
--- /dev/null
+++ b/dev-util/kcov/files/kcov-40-binutils-2.39.patch
@@ -0,0 +1,92 @@
+https://github.com/SimonKagstrom/kcov/commit/fd1a4fd2f02cee49afd74e427e38c61b89154582
+https://bugs.gentoo.org/868114
+
+From fd1a4fd2f02cee49afd74e427e38c61b89154582 Mon Sep 17 00:00:00 2001
+From: oreo639 <oreo6391@gmail.com>
+Date: Wed, 14 Sep 2022 16:02:17 -0700
+Subject: [PATCH] Fix build with binutils 2.39
+
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -94,6 +94,7 @@ set (DISASSEMBLER_SRCS
+ )
+ 
+ set (HAS_LIBBFD "0")
++set (HAS_LIBBFD_DISASM_STYLED "0")
+ 
+ if (CMAKE_TARGET_ARCHITECTURES STREQUAL "i386" OR CMAKE_TARGET_ARCHITECTURES STREQUAL "x86_64")
+ 	if (LIBBFD_FOUND)
+@@ -106,6 +107,23 @@ if (CMAKE_TARGET_ARCHITECTURES STREQUAL "i386" OR CMAKE_TARGET_ARCHITECTURES STR
+ 			${LIBBFD_BFD_LIBRARY}
+ 			${LIBBFD_IBERTY_LIBRARY}
+ 		)
++		include(CheckCSourceCompiles)
++		set(CMAKE_REQUIRED_LIBRARIES ${DISASSEMBLER_LIBRARIES})
++		check_c_source_compiles("
++		#define PACKAGE
++		#define PACKAGE_VERSION
++		#include <stdio.h>
++		#include <dis-asm.h>
++
++		int main(int argc, char **argv){
++			struct disassemble_info info;
++			init_disassemble_info(&info, stdout, NULL, NULL);
++			return 0;
++		}
++		" TEST_LIBBFD_DISASM_STYLED)
++		if (TEST_LIBBFD_DISASM_STYLED)
++			set (HAS_LIBBFD_DISASM_STYLED "1")
++		endif (TEST_LIBBFD_DISASM_STYLED)
+ 	endif (LIBBFD_FOUND)
+ endif (CMAKE_TARGET_ARCHITECTURES STREQUAL "i386" OR CMAKE_TARGET_ARCHITECTURES STREQUAL "x86_64")
+ 
+@@ -284,7 +302,7 @@ set (KCOV_SYSTEM_MODE_SRCS
+ 
+ set (KCOV_LIBRARY_PREFIX "/tmp")
+ 
+-set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -g -Wall -D_GLIBCXX_USE_NANOSLEEP -DKCOV_LIBRARY_PREFIX=${KCOV_LIBRARY_PREFIX} -DKCOV_HAS_LIBBFD=${HAS_LIBBFD}")
++set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -g -Wall -D_GLIBCXX_USE_NANOSLEEP -DKCOV_LIBRARY_PREFIX=${KCOV_LIBRARY_PREFIX} -DKCOV_HAS_LIBBFD=${HAS_LIBBFD} -DKCOV_LIBFD_DISASM_STYLED=${HAS_LIBBFD_DISASM_STYLED}")
+ 
+ include_directories(
+ 	include/
+--- a/src/parsers/bfd-disassembler.cc
++++ b/src/parsers/bfd-disassembler.cc
+@@ -75,7 +75,11 @@ class BfdDisassembler : public IDisassembler
+ 	BfdDisassembler()
+ 	{
+ 		memset(&m_info, 0, sizeof(m_info));
++#if KCOV_LIBFD_DISASM_STYLED
++		init_disassemble_info(&m_info, (void *)this, BfdDisassembler::opcodesFprintFuncStatic, BfdDisassembler::opcodesFprintStyledFuncStatic);
++#else
+ 		init_disassemble_info(&m_info, (void *)this, BfdDisassembler::opcodesFprintFuncStatic);
++#endif
+ 		m_disassembler = print_insn_i386;
+ 
+ 		m_info.arch = bfd_arch_i386;
+@@ -407,6 +411,25 @@ class BfdDisassembler : public IDisassembler
+ 		return out;
+ 	}
+ 
++#if KCOV_LIBFD_DISASM_STYLED
++	static int opcodesFprintStyledFuncStatic(void *info, enum disassembler_style style, const char *fmt, ...)
++	{
++		(void)style;
++		BfdDisassembler *pThis = (BfdDisassembler *)info;
++		char str[64];
++		int out;
++
++		va_list args;
++		va_start (args, fmt);
++		out = vsnprintf( str, sizeof(str) - 1, fmt, args );
++		va_end (args);
++
++		pThis->opcodesFprintFunc(str);
++
++		return out;
++	}
++#endif
++
+ 	typedef std::map<uint64_t, Section *> SectionCache_t;
+ 	typedef std::unordered_map<uint64_t, Instruction> InstructionAddressMap_t;
+ 	typedef std::map<uint64_t, Instruction *> InstructionOrderedMap_t;
+

diff --git a/dev-util/kcov/files/kcov-40-gcc-13.patch b/dev-util/kcov/files/kcov-40-gcc-13.patch
new file mode 100644
index 000000000000..ea92a6b8364c
--- /dev/null
+++ b/dev-util/kcov/files/kcov-40-gcc-13.patch
@@ -0,0 +1,45 @@
+https://github.com/SimonKagstrom/kcov/commit/b63754b53b3a7cf43e13ec56bd0be76cb6175437
+
+From b63754b53b3a7cf43e13ec56bd0be76cb6175437 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyich@gmail.com>
+Date: Thu, 15 Sep 2022 19:55:21 +0100
+Subject: [PATCH] Fix build on gcc-13: add missing <stdint.h> include
+
+[ 15%] Building CXX object src/CMakeFiles/kcov.dir/writers/cobertura-writer.cc.o
+In file included from kcov/src/writers/cobertura-writer.cc:6:
+kcov/src/include/reporter.hh:24:90: error: 'uint64_t' has not been declared
+   24 |      LineExecutionCount(unsigned int hits, unsigned int possibleHits, uint64_t order) :
+      |                                                                       ^~~~~~~~
+--- a/src/include/collector.hh
++++ b/src/include/collector.hh
+@@ -2,6 +2,8 @@
+ 
+ #include <string>
+ 
++#include <stdint.h>
++
+ namespace kcov
+ {
+ 	class IFileParser;
+--- a/src/include/reporter.hh
++++ b/src/include/reporter.hh
+@@ -3,6 +3,7 @@
+ #include <string>
+ 
+ #include <stddef.h>
++#include <stdint.h>
+ 
+ namespace kcov
+ {
+--- a/src/include/source-file-cache.hh
++++ b/src/include/source-file-cache.hh
+@@ -3,6 +3,8 @@
+ #include <vector>
+ #include <string>
+ 
++#include <stdint.h>
++
+ namespace kcov
+ {
+ 	/**
+

diff --git a/dev-util/kcov/kcov-40.ebuild b/dev-util/kcov/kcov-40.ebuild
index 963a9c930a5e..ea10f0c28b26 100644
--- a/dev-util/kcov/kcov-40.ebuild
+++ b/dev-util/kcov/kcov-40.ebuild
@@ -27,6 +27,11 @@ RDEPEND="dev-libs/elfutils
 DEPEND="${RDEPEND}"
 BDEPEND="${PYTHON_DEPS}"
 
+PATCHES=(
+	"${FILESDIR}"/${P}-binutils-2.39.patch
+	"${FILESDIR}"/${P}-gcc-13.patch
+)
+
 src_configure() {
 	local mycmakeargs=(
 		-DCMAKE_DISABLE_FIND_PACKAGE_Bfd=$(usex !binutils)


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2022-09-17 21:46 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-09-17 21:46 [gentoo-commits] repo/gentoo:master commit in: dev-util/kcov/, dev-util/kcov/files/ Sam James

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox