* [Buildroot] [RFC v1] directfb: fix musl compile
@ 2015-11-09 23:05 Peter Seiderer
2015-11-18 21:57 ` Peter Korsgaard
0 siblings, 1 reply; 3+ messages in thread
From: Peter Seiderer @ 2015-11-09 23:05 UTC (permalink / raw)
To: buildroot
- use 'union sigval' instead of sigval_t (same as suggested
for canfestival by Yann E. MORIN, see [2])
- delete DIRECT_RECURSIVE_MUTEX_INITIALIZER define (which uses unknown
PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP)
- use DIRECT_MUTEX_INITIALIZER instead for trace.c (no recursive
mutex needed)
- use pthread_once and direct_recursive_mutex_init instead for
directfb.c
Fixes [1]:
system.c:114:6: error: unknown type name 'sigval_t'
and
../lib/direct/os/linux/glibc/mutex.h:49:53: error: ?PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP? undeclared (first use in this function)
[1] http://autobuild.buildroot.net/results/548/548bf7b800a946e97135c0ba66363f388e517d6f
[2] https://patchwork.ozlabs.org/patch/509731
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
RFC: not yet runtime tested
---
...6-Fix-musl-sigval_t-related-compile-error.patch | 39 ++++++++++
...HREAD_RECURSIVE_MUTEX_INITIALIZER_NP-comp.patch | 84 ++++++++++++++++++++++
2 files changed, 123 insertions(+)
create mode 100644 package/directfb/0006-Fix-musl-sigval_t-related-compile-error.patch
create mode 100644 package/directfb/0007-Fix-musl-PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP-comp.patch
diff --git a/package/directfb/0006-Fix-musl-sigval_t-related-compile-error.patch b/package/directfb/0006-Fix-musl-sigval_t-related-compile-error.patch
new file mode 100644
index 0000000..2a78833
--- /dev/null
+++ b/package/directfb/0006-Fix-musl-sigval_t-related-compile-error.patch
@@ -0,0 +1,39 @@
+From fdc648277b65e657cebb5c1095a82445d6c2c914 Mon Sep 17 00:00:00 2001
+From: Peter Seiderer <ps.report@gmx.net>
+Date: Mon, 9 Nov 2015 22:57:42 +0100
+Subject: [PATCH] Fix musl/sigval_t related compile error.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Use 'union sigval' instead of sigval_t (same as suggested
+for canfestival by Yann E. MORIN, see [1]).
+
+Fixes the following compile error with musl libc:
+
+ system.c:114:6: error: unknown type name ?sigval_t?
+ sigval_t val;
+
+[1] https://patchwork.ozlabs.org/patch/509731
+
+Signed-off-by: Peter Seiderer <ps.report@gmx.net>
+---
+ lib/direct/os/linux/glibc/system.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/direct/os/linux/glibc/system.c b/lib/direct/os/linux/glibc/system.c
+index 32086a2..373a711 100644
+--- a/lib/direct/os/linux/glibc/system.c
++++ b/lib/direct/os/linux/glibc/system.c
+@@ -111,7 +111,7 @@ direct_tgkill( int tgid, int tid, int sig )
+ void
+ direct_trap( const char *domain, int sig )
+ {
+- sigval_t val;
++ union sigval val;
+
+ if (direct_config->delay_trap_ms) {
+ D_LOG( Direct_Trap, VERBOSE, "NOT RAISING signal %d from %s, waiting for %dms... attach gdb --pid=%d\n", sig, domain, direct_config->delay_trap_ms, getpid() );
+--
+2.1.4
+
diff --git a/package/directfb/0007-Fix-musl-PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP-comp.patch b/package/directfb/0007-Fix-musl-PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP-comp.patch
new file mode 100644
index 0000000..702b03e
--- /dev/null
+++ b/package/directfb/0007-Fix-musl-PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP-comp.patch
@@ -0,0 +1,84 @@
+From 85057029179c65bb31a1fdf44121773178e33cf4 Mon Sep 17 00:00:00 2001
+From: Peter Seiderer <ps.report@gmx.net>
+Date: Mon, 9 Nov 2015 23:40:28 +0100
+Subject: [PATCH] Fix musl PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP compile
+ error.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+- delete DIRECT_RECURSIVE_MUTEX_INITIALIZER define (which uses unknown
+ PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP)
+- use DIRECT_MUTEX_INITIALIZER instead for trace.c (no recursive
+ mutex needed)
+- use pthread_once and direct_recursive_mutex_init instead for
+ directfb.c
+
+Fixes:
+
+ ../lib/direct/os/linux/glibc/mutex.h:49:53: error: ?PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP? undeclared (first use in this function)
+
+Signed-off-by: Peter Seiderer <ps.report@gmx.net>
+---
+ lib/direct/os/linux/glibc/mutex.h | 1 -
+ lib/direct/trace.c | 2 +-
+ src/directfb.c | 11 ++++++++++-
+ 3 files changed, 11 insertions(+), 3 deletions(-)
+
+diff --git a/lib/direct/os/linux/glibc/mutex.h b/lib/direct/os/linux/glibc/mutex.h
+index 1049c14..37573b2 100644
+--- a/lib/direct/os/linux/glibc/mutex.h
++++ b/lib/direct/os/linux/glibc/mutex.h
+@@ -46,7 +46,6 @@ struct __D_DirectMutex {
+ /**********************************************************************************************************************/
+
+ #define DIRECT_MUTEX_INITIALIZER(name) { PTHREAD_MUTEX_INITIALIZER }
+-#define DIRECT_RECURSIVE_MUTEX_INITIALIZER(name) { PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP }
+
+ #endif
+
+diff --git a/lib/direct/trace.c b/lib/direct/trace.c
+index cb43954..88d8e5d 100644
+--- a/lib/direct/trace.c
++++ b/lib/direct/trace.c
+@@ -89,7 +89,7 @@ struct __D_DirectTraceBuffer {
+ /**************************************************************************************************/
+
+ static DirectLink *buffers;
+-static DirectMutex buffers_lock = DIRECT_RECURSIVE_MUTEX_INITIALIZER(buffers_lock);
++static DirectMutex buffers_lock = DIRECT_MUTEX_INITIALIZER(buffers_lock);
+
+ /**************************************************************************************************/
+
+diff --git a/src/directfb.c b/src/directfb.c
+index 713f6c4..d060e58 100644
+--- a/src/directfb.c
++++ b/src/directfb.c
+@@ -163,6 +163,15 @@ DirectFBSetOption( const char *name, const char *value )
+ return DFB_OK;
+ }
+
++
++static pthread_once_t lock_init_once = PTHREAD_ONCE_INIT;
++static DirectMutex lock;
++
++static void lock_init(void)
++{
++ direct_recursive_mutex_init(&lock);
++}
++
+ /*
+ * Programs have to call this to get the super interface
+ * which is needed to access other functions
+@@ -215,7 +224,7 @@ DirectFBCreate( IDirectFB **interface_ptr )
+ if (dfb_config->remote.host)
+ return CreateRemote( dfb_config->remote.host, dfb_config->remote.port, interface_ptr );
+
+- static DirectMutex lock = DIRECT_RECURSIVE_MUTEX_INITIALIZER(lock);
++ pthread_once(&lock_init_once, lock_init);
+
+ direct_mutex_lock( &lock );
+
+--
+2.1.4
+
--
2.1.4
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [Buildroot] [RFC v1] directfb: fix musl compile
2015-11-09 23:05 [Buildroot] [RFC v1] directfb: fix musl compile Peter Seiderer
@ 2015-11-18 21:57 ` Peter Korsgaard
2015-11-19 19:12 ` Peter Seiderer
0 siblings, 1 reply; 3+ messages in thread
From: Peter Korsgaard @ 2015-11-18 21:57 UTC (permalink / raw)
To: buildroot
>>>>> "Peter" == Peter Seiderer <ps.report@gmx.net> writes:
Hi,
> - use 'union sigval' instead of sigval_t (same as suggested
> for canfestival by Yann E. MORIN, see [2])
> - delete DIRECT_RECURSIVE_MUTEX_INITIALIZER define (which uses unknown
> PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP)
> - use DIRECT_MUTEX_INITIALIZER instead for trace.c (no recursive
> mutex needed)
> - use pthread_once and direct_recursive_mutex_init instead for
> directfb.c
> Fixes [1]:
> system.c:114:6: error: unknown type name 'sigval_t'
> and
> ../lib/direct/os/linux/glibc/mutex.h:49:53: error: ?PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP? undeclared (first use in this function)
> [1] http://autobuild.buildroot.net/results/548/548bf7b800a946e97135c0ba66363f388e517d6f
> [2] https://patchwork.ozlabs.org/patch/509731
> Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> ---
> RFC: not yet runtime tested
Thanks, but I don't feel confident applying such a patch, especially as
upstream seems dead so we cannot get their feedback on it / will have to
carry it along ourselves - So I've instead marked directfb as !musl.
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Buildroot] [RFC v1] directfb: fix musl compile
2015-11-18 21:57 ` Peter Korsgaard
@ 2015-11-19 19:12 ` Peter Seiderer
0 siblings, 0 replies; 3+ messages in thread
From: Peter Seiderer @ 2015-11-19 19:12 UTC (permalink / raw)
To: buildroot
Hello Peter,
On Wed, 18 Nov 2015 22:57:10 +0100, Peter Korsgaard <peter@korsgaard.com> wrote:
> >>>>> "Peter" == Peter Seiderer <ps.report@gmx.net> writes:
>
> Hi,
>
> > - use 'union sigval' instead of sigval_t (same as suggested
> > for canfestival by Yann E. MORIN, see [2])
>
> > - delete DIRECT_RECURSIVE_MUTEX_INITIALIZER define (which uses unknown
> > PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP)
>
> > - use DIRECT_MUTEX_INITIALIZER instead for trace.c (no recursive
> > mutex needed)
>
> > - use pthread_once and direct_recursive_mutex_init instead for
> > directfb.c
>
> > Fixes [1]:
>
> > system.c:114:6: error: unknown type name 'sigval_t'
>
> > and
>
> > ../lib/direct/os/linux/glibc/mutex.h:49:53: error: ?PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP? undeclared (first use in this function)
>
> > [1] http://autobuild.buildroot.net/results/548/548bf7b800a946e97135c0ba66363f388e517d6f
> > [2] https://patchwork.ozlabs.org/patch/509731
>
> > Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> > ---
> > RFC: not yet runtime tested
>
> Thanks, but I don't feel confident applying such a patch, especially as
> upstream seems dead so we cannot get their feedback on it / will have to
> carry it along ourselves - So I've instead marked directfb as !musl.
>
O.k.
According to [1] the directfb source code is (temporarily?) hosted on github [2]
by one of the developers...
If I find some more time to work on my patch I will try to submit it there...
Regards,
Peter
[1] http://www.phoronix.com/scan.php?page=news_item&px=DirectFB-On-GitHub
[2] https://github.com/deniskropp/DirectFB/
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-11-19 19:12 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-09 23:05 [Buildroot] [RFC v1] directfb: fix musl compile Peter Seiderer
2015-11-18 21:57 ` Peter Korsgaard
2015-11-19 19:12 ` Peter Seiderer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox