diff options
author | V3n3RiX <venerix@koprulu.sector> | 2022-09-18 05:18:37 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2022-09-18 05:18:37 +0100 |
commit | 95a97c3f0b0d048aaf9e183702a1d06b30415b35 (patch) | |
tree | 7f438978df863816967d0e1d3d8ee7ab5e3f12ce /dev-util/kcov/files/kcov-40-binutils-2.39.patch | |
parent | a0d1bdbd841fa761e38f468e1009cd058af305fd (diff) |
gentoo auto-resync : 18:09:2022 - 05:18:37
Diffstat (limited to 'dev-util/kcov/files/kcov-40-binutils-2.39.patch')
-rw-r--r-- | dev-util/kcov/files/kcov-40-binutils-2.39.patch | 92 |
1 files changed, 92 insertions, 0 deletions
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; + |