added my Recipes
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
From 85a30903ea3ba4232379bbbcb54960307d5a2da0 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Fri, 2 Sep 2022 18:49:03 -0700
|
||||
Subject: [PATCH] spacedream: Add typecast to pthread_t in assignment
|
||||
|
||||
render_loop_thread is of type pthread_t, therefore -1 which is int can
|
||||
not be assigned to it. Do the needed typecast conversion
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
src/spacedream/main.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/spacedream/main.c b/src/spacedream/main.c
|
||||
index 430800f..8e1887c 100644
|
||||
--- a/src/spacedream/main.c
|
||||
+++ b/src/spacedream/main.c
|
||||
@@ -205,7 +205,7 @@ void unload_stars()
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
int quit = 0;
|
||||
- pthread_t render_loop_thread = -1;
|
||||
+ pthread_t render_loop_thread = (pthread_t)-1;
|
||||
|
||||
IDirectFBSurface *primary;
|
||||
IDirectFBEventBuffer *buffer;
|
||||
@@ -344,7 +344,7 @@ int main( int argc, char *argv[] )
|
||||
pthread_cancel( render_loop_thread );
|
||||
pthread_mutex_unlock( &render_start );
|
||||
pthread_join( render_loop_thread, NULL );
|
||||
- render_loop_thread = -1;
|
||||
+ render_loop_thread = (pthread_t)-1;
|
||||
|
||||
|
||||
unload_stars();
|
||||
--
|
||||
2.37.3
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
From 88077ed156a714f32bb408f422278d61611ffd41 Mon Sep 17 00:00:00 2001
|
||||
From: Otavio Salvador <otavio@ossystems.com.br>
|
||||
Date: Sat, 26 Jul 2014 16:57:46 -0300
|
||||
Subject: [PATCH] configure.in: Fix string argument syntax
|
||||
|
||||
Upstream-Status: Submitted
|
||||
|
||||
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
|
||||
---
|
||||
configure.in | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.in b/configure.in
|
||||
index bfe1b82..e939bbd 100644
|
||||
--- a/configure.in
|
||||
+++ b/configure.in
|
||||
@@ -65,7 +65,7 @@ fi)
|
||||
|
||||
DIRECTFB_REQUIRED_VERSION=1.4.14
|
||||
|
||||
-PKG_CHECK_MODULES(DIRECTFB, directfb >= $DIRECTFB_REQUIRED_VERSION,[ WATER=`$PKG_CONFIG --variable=water directfb` ],
|
||||
+PKG_CHECK_MODULES([DIRECTFB], directfb >= $DIRECTFB_REQUIRED_VERSION,[ WATER=`$PKG_CONFIG --variable=water directfb` ],
|
||||
AC_MSG_ERROR([$DIRECTFB_PKG_ERRORS
|
||||
*** DirectFB $DIRECTFB_REQUIRED_VERSION or newer is required. The latest version
|
||||
*** of DirectFB is available from http://www.directfb.org/.]))
|
||||
--
|
||||
1.7.10.4
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
SUMMARY = "Example DirectFB applications"
|
||||
DESCRIPTION = "The DirectFB-examples package contains a set of simple DirectFB \
|
||||
applications that can be used to test and demonstrate various DirectFB \
|
||||
features"
|
||||
DEPENDS = "directfb"
|
||||
SECTION = "libs"
|
||||
LICENSE = "MIT"
|
||||
|
||||
SRC_URI = " \
|
||||
http://downloads.yoctoproject.org/mirror/sources/DirectFB-examples-${PV}.tar.gz \
|
||||
file://configure.in-Fix-string-argument-syntax.patch \
|
||||
file://0001-spacedream-Add-typecast-to-pthread_t-in-assignment.patch \
|
||||
"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=ecf6fd2b19915afc4da56043926ca18f"
|
||||
|
||||
S = "${WORKDIR}/DirectFB-examples-${PV}"
|
||||
|
||||
inherit autotools pkgconfig
|
||||
|
||||
SRC_URI[md5sum] = "8b60c867af295481c32a8c7fc5802307"
|
||||
SRC_URI[sha256sum] = "9a2104cc4da8123c8371813551b66b943198979f745cbebc034bb5e10844122a"
|
||||
@@ -0,0 +1,90 @@
|
||||
SUMMARY = "Graphics abstraction library for the Linux Framebuffer Device"
|
||||
DESCRIPTION = "DirectFB is a thin library that provides developers \
|
||||
with hardware graphics acceleration, input device handling and \
|
||||
abstraction, an integrated windowing system with support for \
|
||||
translucent windows and multiple display layers on top of the \
|
||||
Linux framebuffer device."
|
||||
SECTION = "libs"
|
||||
LICENSE = "LGPL-2.1-only"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=dcf3c825659e82539645da41a7908589"
|
||||
|
||||
HOMEPAGE = "http://directfb.org"
|
||||
DEPENDS = "jpeg libpng freetype zlib sysfsutils"
|
||||
|
||||
SRC_URI = "http://downloads.yoctoproject.org/mirror/sources/DirectFB-${PV}.tar.gz \
|
||||
file://configurefix.patch \
|
||||
file://fusion.patch \
|
||||
file://bashism.patch \
|
||||
file://0001-gfx-direct-Aboid-usng-VLAs-and-printf-formats.patch \
|
||||
file://compar_fn_t.patch \
|
||||
file://union-sigval.patch \
|
||||
file://use-PTHREAD_MUTEX_RECURSIVE.patch \
|
||||
file://fix-client-gfx_state-initialisation.patch \
|
||||
file://fix-tslib-version-check.patch \
|
||||
file://0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch \
|
||||
file://0001-os-linux-Fix-build-when-__NR_futex-is-not-available.patch \
|
||||
"
|
||||
|
||||
S = "${WORKDIR}/DirectFB-${PV}"
|
||||
|
||||
LDFLAGS:append = " -lm"
|
||||
|
||||
CXXFLAGS:append:toolchain-clang = " -Wno-error=dtor-typedef"
|
||||
|
||||
# Workaround for linking issues seen with armv7a + gold
|
||||
LDFLAGS:append:arm = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
|
||||
|
||||
BINCONFIG = "${bindir}/directfb-config"
|
||||
|
||||
inherit autotools binconfig-disabled pkgconfig
|
||||
|
||||
PACKAGECONFIG ??= "linuxinput"
|
||||
PACKAGECONFIG[jpeg2000] = "--enable-jpeg2000,--disable-jpeg2000,jasper"
|
||||
PACKAGECONFIG[drmkms] = "--enable-drmkms,--disable-drmkms,libdrm"
|
||||
PACKAGECONFIG[tiff] = "--enable-tiff,--disable-tiff,tiff"
|
||||
PACKAGECONFIG[webp] = "--enable-webp,--disable-webp,libwebp"
|
||||
PACKAGECONFIG[tslib] = "--with-inputdrivers=tslib,,tslib"
|
||||
PACKAGECONFIG[linuxinput] = "--with-inputdrivers=linuxinput,,"
|
||||
PACKAGECONFIG[noinput] = "--with-inputdrivers=none,,"
|
||||
PACKAGECONFIG[mesa] = "--enable-mesa,--disable-mesa,virtual/mesa,"
|
||||
PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,xserver-xorg,"
|
||||
|
||||
EXTRA_OECONF = "\
|
||||
--with-gfxdrivers=none \
|
||||
--enable-freetype=yes \
|
||||
--enable-zlib \
|
||||
--disable-imlib2 \
|
||||
--disable-sdl \
|
||||
--disable-vnc \
|
||||
--disable-x11vdpau \
|
||||
--disable-xine-vdpau \
|
||||
"
|
||||
|
||||
#Once -fno-omit-frame-pointer option of gcc is added into TARGET_CLFAGS as default
|
||||
#this will cause directfb build failure on x86 arch, so filter out it.
|
||||
TARGET_CFLAGS:remove:x86 = "-fno-omit-frame-pointer"
|
||||
|
||||
#PACKAGES_DYNAMIC += "^directfb-inputdrivers-.*"
|
||||
#
|
||||
#python populate_packages:prepend () {
|
||||
# inputdrivers_libdir = d.expand('${libdir}/directfb-${RV}/inputdrivers')
|
||||
# do_split_packages(d, inputdrivers_libdir, '*.so$', 'directfb-inputdrivers-%s', 'Directfb plugin for %s')
|
||||
#}
|
||||
|
||||
# NOTE: monolithic packaging for now, should improve that eventually
|
||||
|
||||
FILES:${PN}-dev += "\
|
||||
${bindir}/directfb-config \
|
||||
${libdir}/directfb-${RV}/systems/*.la \
|
||||
${libdir}/directfb-${RV}/inputdrivers/*.la \
|
||||
${libdir}/directfb-${RV}/interfaces/*/*.la \
|
||||
${libdir}/directfb-${RV}/wm/*.la \
|
||||
"
|
||||
|
||||
FILES:${PN} += "\
|
||||
${libdir}/directfb-${RV}/systems/*.so \
|
||||
${libdir}/directfb-${RV}/inputdrivers/*.so \
|
||||
${libdir}/directfb-${RV}/interfaces/*/*.so \
|
||||
${libdir}/directfb-${RV}/wm/*.so \
|
||||
${datadir}/directfb-${PV} \
|
||||
"
|
||||
@@ -0,0 +1,139 @@
|
||||
From 0b66557f2e924023b12006b58d8e86149c745aed Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Sat, 30 Nov 2019 20:34:33 -0800
|
||||
Subject: [PATCH] Fix build on 32bit arches with 64bit time_t
|
||||
|
||||
time element is deprecated on new input_event structure in kernel's
|
||||
input.h [1]
|
||||
|
||||
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=152194fe9c3f
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
inputdrivers/linux_input/linux_input.c | 36 ++++++++++++++++++--------
|
||||
1 file changed, 25 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/inputdrivers/linux_input/linux_input.c b/inputdrivers/linux_input/linux_input.c
|
||||
index 7e9a6ad..03deebc 100644
|
||||
--- a/inputdrivers/linux_input/linux_input.c
|
||||
+++ b/inputdrivers/linux_input/linux_input.c
|
||||
@@ -42,6 +42,11 @@ typedef unsigned long kernel_ulong_t;
|
||||
|
||||
#include <linux/input.h>
|
||||
|
||||
+#ifndef input_event_sec
|
||||
+#define input_event_sec time.tv_sec
|
||||
+#define input_event_usec time.tv_usec
|
||||
+#endif
|
||||
+
|
||||
#ifndef KEY_OK
|
||||
/* Linux kernel 2.5.42+ defines additional keys in linux/input.h */
|
||||
#include "input_fake.h"
|
||||
@@ -754,7 +759,8 @@ translate_event( const LinuxInputData *data,
|
||||
DFBInputEvent *devt )
|
||||
{
|
||||
devt->flags = DIEF_TIMESTAMP;
|
||||
- devt->timestamp = levt->time;
|
||||
+ devt->timestamp.tv_sec = levt->input_event_sec;
|
||||
+ devt->timestamp.tv_usec = levt->input_event_usec;
|
||||
|
||||
switch (levt->type) {
|
||||
case EV_KEY:
|
||||
@@ -2139,7 +2145,8 @@ touchpad_translate( struct touchpad_fsm_state *state,
|
||||
int abs, rel;
|
||||
|
||||
devt->flags = DIEF_TIMESTAMP | (dfb_config->linux_input_touch_abs ? DIEF_AXISABS : DIEF_AXISREL);
|
||||
- devt->timestamp = levt->time;
|
||||
+ devt->timestamp.tv_sec = levt->input_event_sec;
|
||||
+ devt->timestamp.tv_usec = levt->input_event_usec;
|
||||
devt->type = DIET_AXISMOTION;
|
||||
|
||||
switch (levt->code) {
|
||||
@@ -2204,7 +2211,7 @@ touchpad_fsm( struct touchpad_fsm_state *state,
|
||||
DFBInputEvent *devt )
|
||||
{
|
||||
struct timeval timeout = { 0, 125000 };
|
||||
-
|
||||
+ struct timeval tval;
|
||||
/* select() timeout? */
|
||||
if (!levt) {
|
||||
/* Check if button release is due. */
|
||||
@@ -2223,6 +2230,8 @@ touchpad_fsm( struct touchpad_fsm_state *state,
|
||||
return 0;
|
||||
}
|
||||
|
||||
+ tval.tv_sec = levt->input_event_sec;
|
||||
+ tval.tv_usec = levt->input_event_usec;
|
||||
/* More or less ignore these events for now */
|
||||
if ((levt->type == EV_SYN && levt->code == SYN_REPORT) ||
|
||||
(levt->type == EV_ABS && levt->code == ABS_PRESSURE) ||
|
||||
@@ -2233,7 +2242,7 @@ touchpad_fsm( struct touchpad_fsm_state *state,
|
||||
|
||||
/* Check if button release is due. */
|
||||
if (state->fsm_state == TOUCHPAD_FSM_DRAG_START &&
|
||||
- timeout_passed( &state->timeout, &levt->time )) {
|
||||
+ timeout_passed( &state->timeout, &tval )) {
|
||||
devt->flags = DIEF_TIMESTAMP;
|
||||
devt->timestamp = state->timeout; /* timeout of levt->time? */
|
||||
devt->type = DIET_BUTTONRELEASE;
|
||||
@@ -2255,7 +2264,8 @@ touchpad_fsm( struct touchpad_fsm_state *state,
|
||||
case TOUCHPAD_FSM_START:
|
||||
if (touchpad_finger_landing( levt )) {
|
||||
state->fsm_state = TOUCHPAD_FSM_MAIN;
|
||||
- state->timeout = levt->time;
|
||||
+ state->timeout.tv_sec = levt->input_event_sec;
|
||||
+ state->timeout.tv_usec = levt->input_event_usec;
|
||||
timeout_add( &state->timeout, &timeout );
|
||||
}
|
||||
return 0;
|
||||
@@ -2268,15 +2278,17 @@ touchpad_fsm( struct touchpad_fsm_state *state,
|
||||
}
|
||||
}
|
||||
else if (touchpad_finger_leaving( levt )) {
|
||||
- if (!timeout_passed( &state->timeout, &levt->time )) {
|
||||
+ if (!timeout_passed( &state->timeout, &tval )) {
|
||||
devt->flags = DIEF_TIMESTAMP;
|
||||
- devt->timestamp = levt->time;
|
||||
+ devt->timestamp.tv_sec = levt->input_event_sec;
|
||||
+ devt->timestamp.tv_usec = levt->input_event_usec;
|
||||
devt->type = DIET_BUTTONPRESS;
|
||||
devt->button = DIBI_FIRST;
|
||||
|
||||
touchpad_fsm_init( state );
|
||||
state->fsm_state = TOUCHPAD_FSM_DRAG_START;
|
||||
- state->timeout = levt->time;
|
||||
+ state->timeout.tv_sec = levt->input_event_sec;
|
||||
+ state->timeout.tv_usec = levt->input_event_usec;
|
||||
timeout_add( &state->timeout, &timeout );
|
||||
return 1;
|
||||
}
|
||||
@@ -2287,7 +2299,7 @@ touchpad_fsm( struct touchpad_fsm_state *state,
|
||||
return 0;
|
||||
|
||||
case TOUCHPAD_FSM_DRAG_START:
|
||||
- if (timeout_passed( &state->timeout, &levt->time )){
|
||||
+ if (timeout_passed( &state->timeout, &tval )){
|
||||
devt->flags = DIEF_TIMESTAMP;
|
||||
devt->timestamp = state->timeout; /* timeout of levt->time? */
|
||||
devt->type = DIET_BUTTONRELEASE;
|
||||
@@ -2299,7 +2311,8 @@ touchpad_fsm( struct touchpad_fsm_state *state,
|
||||
else {
|
||||
if (touchpad_finger_landing( levt )) {
|
||||
state->fsm_state = TOUCHPAD_FSM_DRAG_MAIN;
|
||||
- state->timeout = levt->time;
|
||||
+ state->timeout.tv_sec = levt->input_event_sec;
|
||||
+ state->timeout.tv_usec = levt->input_event_usec;
|
||||
timeout_add( &state->timeout, &timeout );
|
||||
}
|
||||
}
|
||||
@@ -2314,7 +2327,8 @@ touchpad_fsm( struct touchpad_fsm_state *state,
|
||||
}
|
||||
else if (touchpad_finger_leaving( levt )) {
|
||||
devt->flags = DIEF_TIMESTAMP;
|
||||
- devt->timestamp = levt->time;
|
||||
+ devt->timestamp.tv_sec = levt->input_event_sec;
|
||||
+ devt->timestamp.tv_usec = levt->input_event_usec;
|
||||
devt->type = DIET_BUTTONRELEASE;
|
||||
devt->button = DIBI_FIRST;
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
From f43ef44806ffb8e3b35d99070dde9b6cc1714d3d Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Tue, 8 Sep 2015 21:32:20 +0000
|
||||
Subject: [PATCH] gfx,direct: Aboid usng VLAs and printf formats
|
||||
|
||||
VLAs are flagged by clang when using non-POD types, therefore replace
|
||||
the usage with alloca which is exact same allocation on stack
|
||||
|
||||
__attribute__((__format__ (__printf__))) is not portable as used here
|
||||
therefore disable the check for clang here, we lose no functionality
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
Upstream-Status: Pending
|
||||
|
||||
lib/direct/util.h | 2 +-
|
||||
src/gfx/util.cpp | 8 ++++----
|
||||
2 files changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/lib/direct/util.h b/lib/direct/util.h
|
||||
index 72941e9..8e7fa4a 100644
|
||||
--- a/lib/direct/util.h
|
||||
+++ b/lib/direct/util.h
|
||||
@@ -98,7 +98,7 @@
|
||||
#define D_CONST_FUNC
|
||||
#endif
|
||||
|
||||
-#if __GNUC__ >= 3
|
||||
+#if __GNUC__ >= 3 && !defined __clang__
|
||||
#define D_FORMAT_PRINTF(n) __attribute__((__format__ (__printf__, n, n+1)))
|
||||
#define D_FORMAT_VPRINTF(n) __attribute__((__format__ (__printf__, n, 0)))
|
||||
#else
|
||||
diff --git a/src/gfx/util.cpp b/src/gfx/util.cpp
|
||||
index 40032bc..d1015d4 100644
|
||||
--- a/src/gfx/util.cpp
|
||||
+++ b/src/gfx/util.cpp
|
||||
@@ -294,8 +294,8 @@ dfb_gfx_copy_regions_stereo( CoreSurface *source,
|
||||
{
|
||||
unsigned int i, n = 0;
|
||||
DFBRectangle rect = { 0, 0, source->config.size.w, source->config.size.h };
|
||||
- DFBRectangle rects[num];
|
||||
- DFBPoint points[num];
|
||||
+ DFBRectangle *rects = (DFBRectangle*)alloca( sizeof(struct DFBRectangle) * num);
|
||||
+ DFBPoint *points = (DFBPoint*)alloca( sizeof(struct DFBPoint) * num);
|
||||
|
||||
for (i=0; i<num; i++) {
|
||||
DFB_REGION_ASSERT( ®ions[i] );
|
||||
@@ -351,8 +351,8 @@ dfb_gfx_copy_regions_client( CoreSurface *source,
|
||||
{
|
||||
unsigned int i, n = 0;
|
||||
DFBRectangle rect = { 0, 0, source->config.size.w, source->config.size.h };
|
||||
- DFBRectangle rects[num];
|
||||
- DFBPoint points[num];
|
||||
+ DFBRectangle *rects = (DFBRectangle*)alloca( sizeof(struct DFBRectangle) * num);
|
||||
+ DFBPoint *points = (DFBPoint*)alloca( sizeof(struct DFBPoint) * num);
|
||||
CoreGraphicsStateClient *client = _client ? _client : &StateClient::Get()->client;
|
||||
CardState *state = client->state;
|
||||
CardState backup;
|
||||
--
|
||||
2.5.1
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
From 7df69c3a784ab2cc4770bdb366cf788cdb78099a Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Sun, 15 Nov 2020 12:30:41 -0800
|
||||
Subject: [PATCH] os/linux: Fix build when __NR_futex is not available
|
||||
|
||||
Newer architectures like riscv32 do not define __NR_futex intentionally
|
||||
since it uses 64bit time_t from very beginning, therefore only caters to
|
||||
futex_time64 syscall
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
lib/direct/os/linux/glibc/system.c | 8 ++++++--
|
||||
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/lib/direct/os/linux/glibc/system.c b/lib/direct/os/linux/glibc/system.c
|
||||
index 373a711..d027a70 100644
|
||||
--- a/lib/direct/os/linux/glibc/system.c
|
||||
+++ b/lib/direct/os/linux/glibc/system.c
|
||||
@@ -36,6 +36,7 @@
|
||||
|
||||
#include <errno.h>
|
||||
#include <signal.h>
|
||||
+#include <sys/syscall.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <linux/unistd.h>
|
||||
@@ -46,6 +47,10 @@
|
||||
#include <direct/system.h>
|
||||
#include <direct/util.h>
|
||||
|
||||
+#if !defined(SYS_futex) && defined(SYS_futex_time64)
|
||||
+# define SYS_futex SYS_futex_time64
|
||||
+#endif
|
||||
+
|
||||
D_LOG_DOMAIN( Direct_Futex, "Direct/Futex", "Direct Futex" );
|
||||
D_LOG_DOMAIN( Direct_Trap, "Direct/Trap", "Direct Trap" );
|
||||
|
||||
@@ -239,10 +244,9 @@ direct_futex( int *uaddr, int op, int val, const struct timespec *timeout, int *
|
||||
}
|
||||
#endif
|
||||
|
||||
- ret = syscall( __NR_futex, uaddr, op, val, timeout, uaddr2, val3 );
|
||||
+ ret = syscall( SYS_futex, uaddr, op, val, timeout, uaddr2, val3 );
|
||||
if (ret < 0)
|
||||
return errno2result( errno );
|
||||
|
||||
return DR_OK;
|
||||
}
|
||||
-
|
||||
--
|
||||
2.29.2
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
${x//y/} is a bash syntax. Replace with something dash compatible
|
||||
|
||||
RP 2015/5/3
|
||||
Upstream-Status: Pending
|
||||
|
||||
Index: DirectFB-1.7.7/configure.in
|
||||
===================================================================
|
||||
--- DirectFB-1.7.7.orig/configure.in
|
||||
+++ DirectFB-1.7.7/configure.in
|
||||
@@ -2696,7 +2696,7 @@ AM_CONDITIONAL(BUILD_TOOLS, test "$with_
|
||||
AM_CONDITIONAL(CROSS_COMPILING, test "$cross_compiling" = "yes")
|
||||
|
||||
CFLAGS="$CFLAGS $DFB_INTERNAL_CFLAGS"
|
||||
-CXXFLAGS="$CXXFLAGS ${CFLAGS//-Werror-implicit-function-declaration/}"
|
||||
+CXXFLAGS="$CXXFLAGS $(printf '%s\n' "$CFLAGS" | sed 's/-Werror-implicit-function-declaration//g')"
|
||||
DFB_LDFLAGS="$LDFLAGS $ZLIB_LIBS"
|
||||
|
||||
CFLAGS="$CFLAGS $CFLAGS_STD"
|
||||
@@ -0,0 +1,62 @@
|
||||
test for __compar_fn_t and if not defined by libc then define it
|
||||
help make directfb compile with musl
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
Index: DirectFB-1.7.7/configure.in
|
||||
===================================================================
|
||||
--- DirectFB-1.7.7.orig/configure.in
|
||||
+++ DirectFB-1.7.7/configure.in
|
||||
@@ -112,6 +112,17 @@ AC_CHECK_SIZEOF(long)
|
||||
AC_CHECK_SIZEOF(long long)
|
||||
AC_CHECK_FUNCS(fork)
|
||||
|
||||
+AC_CACHE_CHECK([for compar_fn_t in stdlib.h],ccache_cv_COMPAR_FN_T, [
|
||||
+ AC_TRY_COMPILE(
|
||||
+ [#include <stdlib.h>],
|
||||
+ [void test_fn(void) { qsort(NULL, 0, 0, (__compar_fn_t)NULL); }],
|
||||
+ ccache_cv_COMPAR_FN_T=yes,
|
||||
+ ccache_cv_COMPAR_FN_T=no)])
|
||||
+if test x"$ccache_cv_COMPAR_FN_T" = x"yes"; then
|
||||
+ AC_DEFINE(HAVE_COMPAR_FN_T, 1,
|
||||
+ Define to 1 if you have the `__compar_fn_t' typedef.)
|
||||
+fi
|
||||
+
|
||||
AC_PATH_PROGS(PERL, perl5 perl)
|
||||
|
||||
AC_PATH_PROG(MAN2HTML, man2html, no)
|
||||
Index: DirectFB-1.7.7/inputdrivers/lirc/lirc.c
|
||||
===================================================================
|
||||
--- DirectFB-1.7.7.orig/inputdrivers/lirc/lirc.c
|
||||
+++ DirectFB-1.7.7/inputdrivers/lirc/lirc.c
|
||||
@@ -59,6 +59,11 @@
|
||||
|
||||
#include <core/input_driver.h>
|
||||
|
||||
+#if HAVE_COMPAR_FN_T
|
||||
+#define COMPAR_FN_T __compar_fn_t
|
||||
+#else
|
||||
+typedef int (*COMPAR_FN_T)(const void *, const void *);
|
||||
+#endif
|
||||
|
||||
DFB_INPUT_DRIVER( lirc )
|
||||
|
||||
@@ -97,7 +102,7 @@ static DFBInputDeviceKeySymbol lirc_pars
|
||||
qsort ( keynames,
|
||||
D_ARRAY_SIZE( keynames ),
|
||||
sizeof(keynames[0]),
|
||||
- (__compar_fn_t) keynames_sort_compare );
|
||||
+ (COMPAR_FN_T) keynames_sort_compare );
|
||||
keynames_sorted = true;
|
||||
}
|
||||
|
||||
@@ -124,7 +129,7 @@ static DFBInputDeviceKeySymbol lirc_pars
|
||||
symbol_name = bsearch( name, keynames,
|
||||
D_ARRAY_SIZE( keynames ),
|
||||
sizeof(keynames[0]),
|
||||
- (__compar_fn_t) keynames_compare );
|
||||
+ (COMPAR_FN_T) keynames_compare );
|
||||
if (symbol_name)
|
||||
return symbol_name->symbol;
|
||||
break;
|
||||
@@ -0,0 +1,60 @@
|
||||
Libtool needs these set correctly else we end up with pointless rpaths
|
||||
such as the QA warnings:
|
||||
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/dfblayer contains probably-redundant RPATH /usr/libWARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/dfbmaster contains probably-redundant RPATH /usr/libWARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/mkdgifft contains probably-redundant RPATH /usr/libWARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/dfbdump contains probably-redundant RPATH /usr/libWARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/dfbinput contains probably-redundant RPATH /usr/libWARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/dfbfx contains probably-redundant RPATH /usr/libWARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/pack ages-split/directfb/usr/bin/dfbscreen contains probably-redundant RPATH /usr/libWARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/mkdgiff contains probably-redundant RPATH /usr/libWARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/dfbinspector contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/mkdfiff contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/dfbinfo contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/dfbpenmount contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/dfbg contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/libfusion-1.4.so.6 contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/libdirectfb-1.4.so.6.0.9 contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/libdirectfb-1.4.so.6 contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/libfusion-1.4.so.6.0.9 contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/systems/libdirectfb_fbdev.so contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/systems/libdirectfb_devmem.so contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/systems/libdirectfb_dummy.so contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_v4l.so contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_gif.so contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/interfaces/ICoreResourceManager/libicoreresourcemanager_test.so contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_jpeg.so contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_png.so contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_dfiff.so contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_gif.so contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/interfaces/IDirectFBFont/libidirectfbfont_ft2.so contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/interfaces/IDirectFBFont/libidirectfbfont_dgiff.so contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/wm/libdirectfbwm_default.so contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_zytronic.so contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_penmount.so contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_linux_input.so contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_serialmouse.so contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_mutouch.so contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_tslib.so contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_joystick.so contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_sonypi.so contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_lirc.so contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_wm97xx_ts.so contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_ps2mouse.so contains probably-redundant RPATH /usr/lib
|
||||
WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_keyboard.so contains probably-redundant RPATH /usr/lib
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
RP 2012/03/16
|
||||
|
||||
Index: DirectFB-1.4.15/configure.in
|
||||
===================================================================
|
||||
--- DirectFB-1.4.15.orig/configure.in 2012-03-16 13:32:23.692402879 +0000
|
||||
+++ DirectFB-1.4.15/configure.in 2012-03-16 13:33:22.312400960 +0000
|
||||
@@ -97,13 +97,6 @@
|
||||
AC_CHECK_SIZEOF(long long)
|
||||
AC_CHECK_FUNCS(fork)
|
||||
|
||||
-
|
||||
-## Work around libstuhl during cross build...
|
||||
-if test "$host" != "$build"; then
|
||||
- sys_lib_dlsearch_path_spec=""
|
||||
- sys_lib_search_path_spec=""
|
||||
-fi
|
||||
-
|
||||
AC_PATH_PROGS(PERL, perl5 perl)
|
||||
|
||||
AC_PATH_PROG(MAN2HTML, man2html, no)
|
||||
@@ -0,0 +1,38 @@
|
||||
From 8e53c0b9cedb62b82e2b7680d793d433b647ae20 Mon Sep 17 00:00:00 2001
|
||||
From: Andre McCurdy <armccurdy@gmail.com>
|
||||
Date: Mon, 13 Jun 2016 13:32:44 -0700
|
||||
Subject: [PATCH] fix client->gfx_state initialisation
|
||||
|
||||
Shortly before the DirectFB 1.7.7 release, an optimisation was added
|
||||
to CoreGraphicsStateClient_Init() to avoid creating an extended
|
||||
Graphics State object if it will not later be required:
|
||||
|
||||
4d422fb Client: Create extended Graphics State object when needed for later usage
|
||||
|
||||
Unfortunately the client->gfx_state variable used to track the
|
||||
extended Graphics State object is not initialised, which can lead to
|
||||
crashes etc due to creation of the Graphics State object erroneously
|
||||
being skipped.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
|
||||
---
|
||||
src/core/CoreGraphicsStateClient.cpp | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/core/CoreGraphicsStateClient.cpp b/src/core/CoreGraphicsStateClient.cpp
|
||||
index 5d46f0e..5007755 100644
|
||||
--- a/src/core/CoreGraphicsStateClient.cpp
|
||||
+++ b/src/core/CoreGraphicsStateClient.cpp
|
||||
@@ -364,6 +364,7 @@ CoreGraphicsStateClient_Init( CoreGraphicsStateClient *client,
|
||||
client->renderer = NULL;
|
||||
client->requestor = NULL;
|
||||
client->throttle = NULL;
|
||||
+ client->gfx_state = NULL;
|
||||
|
||||
if (dfb_config->task_manager) {
|
||||
if (dfb_config->call_nodirect) {
|
||||
--
|
||||
1.9.1
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
fix tslib version check in configure.in
|
||||
|
||||
The patch makes sure that the old as well as the new tslib pkg-config
|
||||
metadata file naming style is handled correctly.
|
||||
|
||||
tslib 0.0 to 1.0 created only a tslib-<VERSION>.pc pkg-config metadata
|
||||
file.
|
||||
|
||||
With tslib 1.1 the tslib-<VERSION>.pc phase out was started.
|
||||
Additionally, the pkg-config metadata file tslib.pc was added.
|
||||
|
||||
Since tslib 1.6 the tslib-<VERSION>.pc metadata file is deprecated.
|
||||
Now, there is only a tslib.pc.
|
||||
|
||||
Upstream-Status: Inappropriate [no upstream]
|
||||
Signed-off-by: Ben Guan <ben.guan@cn.bosch.com>
|
||||
Signed-off-by: Mark Jonas <mark.jonas@de.bosch.com>
|
||||
|
||||
diff -Nru DirectFB-1.7.7.orig/configure.in DirectFB-1.7.7/configure.in
|
||||
--- DirectFB-1.7.7.orig/configure.in 2015-02-10 01:16:46.000000000 +0800
|
||||
+++ DirectFB-1.7.7/configure.in 2018-06-06 17:19:18.472143103 +0800
|
||||
@@ -2459,10 +2459,13 @@
|
||||
|
||||
enable_tslib=no
|
||||
if test "$checkfor_tslib" = "yes"; then
|
||||
- PKG_CHECK_MODULES([TSLIB], [tslib-1.0 >= 1.0.0], [enable_tslib=yes], [enable_tslib=no])
|
||||
+ PKG_CHECK_MODULES([TSLIB], [tslib >= 1.1], [enable_tslib=yes], [enable_tslib=no])
|
||||
if test "$enable_tslib" = "no"; then
|
||||
- PKG_CHECK_MODULES([TSLIB], [tslib-0.0], [enable_tslib=yes], [enable_tslib=no
|
||||
- AC_MSG_WARN([*** no tslib -- tslib driver will not be built.])])
|
||||
+ PKG_CHECK_MODULES([TSLIB], [tslib-1.0 >= 1.0], [enable_tslib=yes], [enable_tslib=no])
|
||||
+ if test "$enable_tslib" = "no"; then
|
||||
+ PKG_CHECK_MODULES([TSLIB], [tslib-0.0], [enable_tslib=yes], [enable_tslib=no
|
||||
+ AC_MSG_WARN([*** no tslib -- tslib driver will not be built.])])
|
||||
+ fi
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
directfb: Fix for hangs in direct_test, fusion_skirmish on exit
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Lauren Post <lauren.post@freescale.com>
|
||||
|
||||
--- a/lib/fusion/fusion.c 2013-01-18 22:57:11.000000000 +0800
|
||||
+++ b/lib/fusion/fusion.c 2013-07-04 10:42:56.502699119 +0800
|
||||
@@ -2853,9 +2853,14 @@
|
||||
direct_mutex_lock( &world->event_dispatcher_mutex );
|
||||
|
||||
while (1) {
|
||||
- if (!world->event_dispatcher_buffers)
|
||||
+ if (!world->event_dispatcher_buffers){
|
||||
direct_waitqueue_wait( &world->event_dispatcher_cond, &world->event_dispatcher_mutex );
|
||||
-
|
||||
+ if (world->dispatch_stop) {
|
||||
+ D_DEBUG_AT( Fusion_Main_Dispatch, " -> IGNORING (dispatch_stop!)\n" );
|
||||
+ direct_mutex_unlock( &world->event_dispatcher_mutex );
|
||||
+ return NULL;
|
||||
+ }
|
||||
+ }
|
||||
buf = (FusionEventDispatcherBuffer *)world->event_dispatcher_buffers;
|
||||
D_MAGIC_ASSERT( buf, FusionEventDispatcherBuffer );
|
||||
|
||||
@@ -2872,6 +2877,11 @@
|
||||
//D_INFO("waiting...\n");
|
||||
D_ASSERT( buf->read_pos == buf->write_pos );
|
||||
direct_waitqueue_wait( &world->event_dispatcher_cond, &world->event_dispatcher_mutex );
|
||||
+ if (world->dispatch_stop) {
|
||||
+ D_DEBUG_AT( Fusion_Main_Dispatch, " -> IGNORING (dispatch_stop!)\n" );
|
||||
+ direct_mutex_unlock( &world->event_dispatcher_mutex );
|
||||
+ return NULL;
|
||||
+ }
|
||||
}
|
||||
|
||||
buf = (FusionEventDispatcherBuffer *)world->event_dispatcher_buffers;
|
||||
@@ -0,0 +1,19 @@
|
||||
This patch is taken from gentoo musl overlay
|
||||
sigval_t is glibc only construct, we use a union of sigval
|
||||
which pretty much is same effect as sigval_t
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
diff -Naur DirectFB-1.7.6.orig/lib/direct/os/linux/glibc/system.c DirectFB-1.7.6/lib/direct/os/linux/glibc/system.c
|
||||
--- DirectFB-1.7.6.orig/lib/direct/os/linux/glibc/system.c 2014-07-15 02:54:58.000000000 -0400
|
||||
+++ DirectFB-1.7.6/lib/direct/os/linux/glibc/system.c 2015-07-18 16:55:35.077989166 -0400
|
||||
@@ -111,7 +111,7 @@
|
||||
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() );
|
||||
@@ -0,0 +1,116 @@
|
||||
Remove use of DIRECT_RECURSIVE_MUTEX_INITIALIZER its not portable
|
||||
use portable way to initialize recursive mutex using pthread_once() and direct_recursive_mutex_init()
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Index: DirectFB-1.7.7/lib/direct/os/linux/glibc/mutex.h
|
||||
===================================================================
|
||||
--- DirectFB-1.7.7.orig/lib/direct/os/linux/glibc/mutex.h
|
||||
+++ DirectFB-1.7.7/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
|
||||
|
||||
Index: DirectFB-1.7.7/lib/direct/trace.c
|
||||
===================================================================
|
||||
--- DirectFB-1.7.7.orig/lib/direct/trace.c
|
||||
+++ DirectFB-1.7.7/lib/direct/trace.c
|
||||
@@ -89,8 +89,15 @@ struct __D_DirectTraceBuffer {
|
||||
/**************************************************************************************************/
|
||||
|
||||
static DirectLink *buffers;
|
||||
-static DirectMutex buffers_lock = DIRECT_RECURSIVE_MUTEX_INITIALIZER(buffers_lock);
|
||||
|
||||
+static pthread_once_t buffers_lock_init_once = PTHREAD_ONCE_INIT;
|
||||
+static DirectMutex buffers_lock;
|
||||
+
|
||||
+static void
|
||||
+buffers_lock_init( void )
|
||||
+{
|
||||
+ direct_recursive_mutex_init(&buffers_lock);
|
||||
+}
|
||||
/**************************************************************************************************/
|
||||
|
||||
__dfb_no_instrument_function__
|
||||
@@ -113,6 +120,7 @@ get_trace_buffer( void )
|
||||
|
||||
D_MAGIC_SET( buffer, DirectTraceBuffer );
|
||||
|
||||
+ pthread_once(&buffers_lock_init_once, buffers_lock_init);
|
||||
direct_mutex_lock( &buffers_lock );
|
||||
direct_list_append( &buffers, &buffer->link );
|
||||
direct_mutex_unlock( &buffers_lock );
|
||||
@@ -138,8 +146,14 @@ typedef struct {
|
||||
} SymbolTable;
|
||||
|
||||
static DirectLink *tables = NULL;
|
||||
-static DirectMutex tables_lock = DIRECT_RECURSIVE_MUTEX_INITIALIZER(tables_lock);
|
||||
+static pthread_once_t tables_lock_init_once = PTHREAD_ONCE_INIT;
|
||||
+static DirectMutex tables_lock;
|
||||
|
||||
+static void
|
||||
+tables_lock_init( void )
|
||||
+{
|
||||
+ direct_recursive_mutex_init(&tabless_lock);
|
||||
+}
|
||||
|
||||
__dfb_no_instrument_function__
|
||||
static void
|
||||
@@ -370,6 +384,7 @@ direct_trace_lookup_symbol( const char *
|
||||
Symbol *symbol;
|
||||
SymbolTable *table;
|
||||
|
||||
+ pthread_once(&tables_lock_init_once, tables_lock_init);
|
||||
direct_mutex_lock( &tables_lock );
|
||||
|
||||
table = find_table( filename );
|
||||
@@ -514,6 +529,7 @@ direct_trace_print_stacks()
|
||||
DirectTraceBuffer *b;
|
||||
DirectTraceBuffer *buffer = get_trace_buffer();
|
||||
|
||||
+ pthread_once(&buffers_lock_init_once, buffers_lock_init);
|
||||
direct_mutex_lock( &buffers_lock );
|
||||
|
||||
if (buffer && buffer->level)
|
||||
@@ -611,6 +627,7 @@ direct_trace_free_buffer( DirectTraceBuf
|
||||
D_MAGIC_ASSERT( buffer, DirectTraceBuffer );
|
||||
|
||||
if (buffer->thread) {
|
||||
+ pthread_once(&buffers_lock_init_once, buffers_lock_init);
|
||||
direct_mutex_lock( &buffers_lock );
|
||||
direct_list_remove( &buffers, &buffer->link );
|
||||
direct_mutex_unlock( &buffers_lock );
|
||||
Index: DirectFB-1.7.7/src/directfb.c
|
||||
===================================================================
|
||||
--- DirectFB-1.7.7.orig/src/directfb.c
|
||||
+++ DirectFB-1.7.7/src/directfb.c
|
||||
@@ -99,6 +99,15 @@ const unsigned int directfb_micro_versio
|
||||
const unsigned int directfb_binary_age = DIRECTFB_BINARY_AGE;
|
||||
const unsigned int directfb_interface_age = DIRECTFB_INTERFACE_AGE;
|
||||
|
||||
+static pthread_once_t lock_init_once = PTHREAD_ONCE_INIT;
|
||||
+static DirectMutex lock;
|
||||
+
|
||||
+static void
|
||||
+lock_init( void )
|
||||
+{
|
||||
+ direct_recursive_mutex_init(&lock);
|
||||
+}
|
||||
+
|
||||
const char *
|
||||
DirectFBCheckVersion( unsigned int required_major,
|
||||
unsigned int required_minor,
|
||||
@@ -215,8 +224,7 @@ DirectFBCreate( IDirectFB **interface_pt
|
||||
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 );
|
||||
|
||||
if (!dfb_config->no_singleton && idirectfb_singleton) {
|
||||
@@ -0,0 +1,8 @@
|
||||
require directfb.inc
|
||||
|
||||
RV = "1.7-7"
|
||||
|
||||
LEAD_SONAME = "libdirectfb-1.7.so.0"
|
||||
|
||||
SRC_URI[md5sum] = "152cf1863b1a3a28aa1370e9053440bf"
|
||||
SRC_URI[sha256sum] = "b785c638dc31b8fe3a7c81be1475c89b2255ab3d67b777c747d3fbc52f8027a3"
|
||||
Reference in New Issue
Block a user