public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/sink/files/, dev-libs/sink/
@ 2022-08-17 16:18 Joonas Niilola
  0 siblings, 0 replies; only message in thread
From: Joonas Niilola @ 2022-08-17 16:18 UTC (permalink / raw
  To: gentoo-commits

commit:     b2812d756f23179a480f982ef877f3ff5b7e4116
Author:     brahmajit das <listout <AT> protonmail <DOT> com>
AuthorDate: Fri Jul 29 18:53:09 2022 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Wed Aug 17 16:17:56 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b2812d75

dev-libs/sink: Musl fix build error, missing execinfo.h

On musl execinfo.h is not present, it results in build error for missing
header file. Hence we are going check first for execinfo.h then include
and use it for backtrace.

Closes: https://bugs.gentoo.org/830945
Signed-off-by: brahmajit das <listout <AT> protonmail.com>
Closes: https://github.com/gentoo/gentoo/pull/26655
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 dev-libs/sink/files/sink-0.8.0-musl-execinfo.patch | 48 ++++++++++++++++++++++
 dev-libs/sink/sink-0.8.0-r3.ebuild                 |  6 ++-
 2 files changed, 53 insertions(+), 1 deletion(-)

diff --git a/dev-libs/sink/files/sink-0.8.0-musl-execinfo.patch b/dev-libs/sink/files/sink-0.8.0-musl-execinfo.patch
new file mode 100644
index 000000000000..b5085702a33e
--- /dev/null
+++ b/dev-libs/sink/files/sink-0.8.0-musl-execinfo.patch
@@ -0,0 +1,48 @@
+# Since musl doesn't have execinfo. We're going to avoid including it and make
+# the printStacktrace function void
+# Closes: https://bugs.gentoo.org/830945
+--- a/synchronizer/CMakeLists.txt
++++ b/synchronizer/CMakeLists.txt
+@@ -2,6 +2,12 @@ project(sink_synchronizer)
+
+ include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
+
++INCLUDE(CheckIncludeFiles)
++CHECK_INCLUDE_FILES("execinfo.h" HAVE_EXECINFO)
++IF (HAVE_EXECINFO)
++	add_compile_definitions(HAVE_EXECINFO_H)
++ENDIF(HAVE_EXECINFO)
++
+ set(sinksynchronizer_SRCS
+     main.cpp
+     backtrace.cpp
+--- a/synchronizer/backtrace.cpp
++++ b/synchronizer/backtrace.cpp
+@@ -31,7 +31,9 @@
+ #include <chrono>
+
+ #ifndef Q_OS_WIN
++#ifdef HAVE_EXECINFO_H
+ #include <execinfo.h>
++#endif // HAVE_EXECINFO_H
+ #include <unistd.h>
+ #include <cxxabi.h>
+ #include <dlfcn.h>
+@@ -143,7 +145,7 @@ private:
+ //Print a demangled stacktrace
+ static void printStacktrace()
+ {
+-#ifndef Q_OS_WIN
++#if !defined(Q_OS_WIN) && defined(HAVE_EXECINFO_H)
+     int skip = 1;
+ 	void *callstack[128];
+ 	const int nMaxFrames = sizeof(callstack) / sizeof(callstack[0]);
+@@ -178,7 +180,7 @@ static void printStacktrace()
+ 		trace_buf << "[truncated]\n";
+     }
+     std::cerr << trace_buf.str();
+-#else
++#elif defined(Q_OS_WIN)
+     enum { maxStackFrames = 100 };
+     DebugSymbolResolver resolver(GetCurrentProcess());
+     if (resolver.isValid()) {

diff --git a/dev-libs/sink/sink-0.8.0-r3.ebuild b/dev-libs/sink/sink-0.8.0-r3.ebuild
index 78d2b574ac2b..c8108f329bf4 100644
--- a/dev-libs/sink/sink-0.8.0-r3.ebuild
+++ b/dev-libs/sink/sink-0.8.0-r3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
@@ -42,6 +42,10 @@ DEPEND="${RDEPEND}
 # fails to build
 RESTRICT+=" test"
 
+PATCHES=(
+	"${FILESDIR}"/${PN}-0.8.0-musl-execinfo.patch
+)
+
 src_prepare() {
 	cmake_src_prepare
 	# tests are sprinkled all over the place, and examples are needed...


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

only message in thread, other threads:[~2022-08-17 16:18 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-08-17 16:18 [gentoo-commits] repo/gentoo:master commit in: dev-libs/sink/files/, dev-libs/sink/ Joonas Niilola

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