diff options
Diffstat (limited to 'media-sound/rhythmbox/files/rhythmbox-3.4.7-implicit-declaration.patch')
-rw-r--r-- | media-sound/rhythmbox/files/rhythmbox-3.4.7-implicit-declaration.patch | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/media-sound/rhythmbox/files/rhythmbox-3.4.7-implicit-declaration.patch b/media-sound/rhythmbox/files/rhythmbox-3.4.7-implicit-declaration.patch new file mode 100644 index 000000000000..2595561ad779 --- /dev/null +++ b/media-sound/rhythmbox/files/rhythmbox-3.4.7-implicit-declaration.patch @@ -0,0 +1,72 @@ +From 10369b9a6b896dc79d7ae715fe67bf3b4c581c22 Mon Sep 17 00:00:00 2001 +From: Matt Turner <mattst88@gmail.com> +Date: Tue, 9 May 2023 15:48:56 -0400 +Subject: [PATCH] build: Define _GNU_SOURCE for pthread_getname_np + +With clang-16, implicit function definitions are treated as errors. As a +result, the check for pthread_getname_np fails because +pthread_getname_np is only provided under _GNU_SOURCE (see +pthread_getname_np(3)) + +> Checking if "pthread_getname_np" : links: NO + +The compilation failure is + +> error: implicit declaration of function 'pthread_getname_np' [-Werror,-Wimplicit-function-declaration] + +The inclusion of pthread.h lib/rb-debug.c must be moved above the system +headers because they may include pthread.h themselves (and in practice +unistd.h does). If that change is not done, lib/rb-debug.c will fail to +compile for the same reason as the configure test. + +Note that to test this, one must disable prctl() detection. + +Bug: https://bugs.gentoo.org/898926 +--- + lib/rb-debug.c | 11 ++++++----- + meson.build | 1 + + 2 files changed, 7 insertions(+), 5 deletions(-) + +diff --git a/lib/rb-debug.c b/lib/rb-debug.c +index a5b4ccac6..b9e0ec81d 100644 +--- a/lib/rb-debug.c ++++ b/lib/rb-debug.c +@@ -30,17 +30,18 @@ + + #include "config.h" + ++#if defined(HAVE_PRCTL) ++#include <sys/prctl.h> ++#elif defined(HAVE_PTHREAD_GETNAME_NP) ++#define _GNU_SOURCE ++#include <pthread.h> ++#endif + #include <unistd.h> + #include <stdio.h> + #include <string.h> + #include <stdarg.h> + #include <signal.h> + #include <time.h> +-#if defined(HAVE_PRCTL) +-#include <sys/prctl.h> +-#elif defined(HAVE_PTHREAD_GETNAME_NP) +-#include <pthread.h> +-#endif + + #include <glib.h> + +diff --git a/meson.build b/meson.build +index 681e084e8..bbe014246 100644 +--- a/meson.build ++++ b/meson.build +@@ -110,6 +110,7 @@ have_prctl = cc.has_function('prctl', prefix: '#include <sys/prctl.h>') + cdata.set('HAVE_PRCTL', have_prctl) + + have_pthread_getname_np = cc.links(''' ++ #define _GNU_SOURCE + #include <pthread.h> + int main() { + char nm[17]; +-- +GitLab + |