directfb: Update to 1.5.3.

Fix build errors for armv5tel and armv7hl.

Fixes #10136.
This commit is contained in:
Stefan Schantl 2012-07-21 22:53:08 +02:00
parent 02d0735a39
commit 8bc9695a0e
4 changed files with 1807 additions and 7 deletions

View File

@ -4,23 +4,26 @@
###############################################################################
name = directfb
version = 1.4.1
release = 2
version = %{ver_major}.%{ver_minor}
release = 1
thisapp = DirectFB-%{version}
ver_major = 1.5
ver_minor = 3
groups = System/Graphics
url = http://www.directfb.org/
license = LGPLv2+
summary = Graphics abstraction library for the Linux Framebuffer Device.
description
DirectFB is a thin library that provides hardware graphics acceleration, \
input device handling and abstraction, integrated windowing system with \
support for translucent windows and multiple display layers on top of the \
DirectFB is a thin library that provides hardware graphics acceleration,
input device handling and abstraction, integrated windowing system with
support for translucent windows and multiple display layers on top of the
Linux Framebuffer Device.
end
source_dl =
source_dl = http://www.directfb.org/download/DirectFBGL/DirectFB-%{ver_major}/
build
requires
@ -32,11 +35,14 @@ build
zlib-devel
end
LDFLAGS += \
-Wl,-z,relro \
-Wl,-z,noexecstack
configure_options += \
--disable-x11 \
--enable-sdl \
--enable-video4linux2 \
--enable-libv412 \
--enable-zlib \
--with-dither-rgb16=advanced \
--disable-mmx \

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,64 @@
--- DirectFB-1.5.3_orig/lib/direct/atomic.h 2011-07-31 14:51:06.000000000 -0400
+++ DirectFB-1.5.3/lib/direct/atomic.h 2012-05-09 01:24:02.692169840 -0400
@@ -185,20 +185,13 @@
#if defined(ARCH_ARM) && !defined(ARCH_IWMMXT)
-static inline int _D__atomic_cmpxchg(volatile int *ptr, int old, int new)
+static inline int _D__atomic_cmpxchg(volatile int *ptr, int old, int _new)
{
- unsigned long oldval, res;
- do {
- __asm__ __volatile__("@ atomic_cmpxchg\n"
- "ldrex %1, [%2]\n"
- "mov %0, #0\n"
- "teq %1, %3\n"
- "strexeq %0, %4, [%2]\n"
- : "=&r" (res), "=&r" (oldval)
- : "r" (ptr), "Ir" (old), "r" (new)
- : "cc");
- } while (res);
+ unsigned long oldval = old;
+
+ __atomic_compare_exchange_n(ptr, &oldval, _new,
+ false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST);
return oldval;
}
@@ -220,24 +213,14 @@ static inline int _D__atomic_cmpxchg(vol
static inline int _D__atomic_add_return(int i, volatile int *v)
{
- unsigned long tmp;
- int result;
- __asm__ __volatile__("@ atomic_add_return\n"
-"1: ldrex %0, [%2]\n"
-" add %0, %0, %3\n"
-" strex %1, %0, [%2]\n"
-" teq %1, #0\n"
-" bne 1b"
- : "=&r" (result), "=&r" (tmp)
- : "r" (v), "Ir" (i)
- : "cc");
+ int result = __atomic_add_fetch(v, i, __ATOMIC_SEQ_CST);
return result;
}
#define D_SYNC_ADD_AND_FETCH( ptr, value ) \
- (_D__atomic_add_return( (int) (value), (void*) (ptr) ))
+ (_D__atomic_add_return( (int) (value), (volatile int*) (ptr) ))
#endif
@@ -308,7 +291,7 @@ static inline int _D__atomic_add_return(
}
#define D_SYNC_ADD_AND_FETCH( ptr, value ) \
- (_D__atomic_add_return( (int) (value), (void*) (ptr) ))
+ (_D__atomic_add_return( (int) (value), (volatile int*) (ptr) ))
#endif

View File

@ -0,0 +1,33 @@
diff -up DirectFB-1.5.3/tests/Makefile.am.lm DirectFB-1.5.3/tests/Makefile.am
--- DirectFB-1.5.3/tests/Makefile.am.lm 2011-08-23 23:43:18.208040936 +0200
+++ DirectFB-1.5.3/tests/Makefile.am 2011-08-23 23:46:11.940784728 +0200
@@ -98,11 +98,11 @@ dfbtest_gl1_LDADD = $(libdirectfb) $(l
dfbtest_gl2_SOURCES = dfbtest_gl2.c
dfbtest_gl2_CFLAGS = $(GLES2_CFLAGS)
-dfbtest_gl2_LDADD = $(libdirectfb) $(libvoodoo) $(libfusion) $(libdirect) $(GLES2_LIBS)
+dfbtest_gl2_LDADD = $(libdirectfb) $(libvoodoo) $(libfusion) $(libdirect) $(GLES2_LIBS) -lm
dfbtest_gl3_SOURCES = dfbtest_gl3.c
dfbtest_gl3_CFLAGS = $(GLES2_CFLAGS)
-dfbtest_gl3_LDADD = $(libdirectfb) $(libvoodoo) $(libfusion) $(libdirect) $(GLES2_LIBS)
+dfbtest_gl3_LDADD = $(libdirectfb) $(libvoodoo) $(libfusion) $(libdirect) $(GLES2_LIBS) -lm
dfbtest_mirror_SOURCES = dfbtest_mirror.c
dfbtest_mirror_LDADD = $(libdirectfb) $(libvoodoo) $(libfusion) $(libdirect)
diff -up DirectFB-1.5.3/tests/Makefile.in.lm DirectFB-1.5.3/tests/Makefile.in
--- DirectFB-1.5.3/tests/Makefile.in.lm 2011-08-07 10:17:49.000000000 +0200
+++ DirectFB-1.5.3/tests/Makefile.in 2011-08-23 23:46:54.616981247 +0200
@@ -575,10 +575,10 @@ dfbtest_gl1_CFLAGS = $(GLES2_CFLAGS)
dfbtest_gl1_LDADD = $(libdirectfb) $(libvoodoo) $(libfusion) $(libdirect) $(GLES2_LIBS)
dfbtest_gl2_SOURCES = dfbtest_gl2.c
dfbtest_gl2_CFLAGS = $(GLES2_CFLAGS)
-dfbtest_gl2_LDADD = $(libdirectfb) $(libvoodoo) $(libfusion) $(libdirect) $(GLES2_LIBS)
+dfbtest_gl2_LDADD = $(libdirectfb) $(libvoodoo) $(libfusion) $(libdirect) $(GLES2_LIBS) -lm
dfbtest_gl3_SOURCES = dfbtest_gl3.c
dfbtest_gl3_CFLAGS = $(GLES2_CFLAGS)
-dfbtest_gl3_LDADD = $(libdirectfb) $(libvoodoo) $(libfusion) $(libdirect) $(GLES2_LIBS)
+dfbtest_gl3_LDADD = $(libdirectfb) $(libvoodoo) $(libfusion) $(libdirect) $(GLES2_LIBS) -lm
dfbtest_mirror_SOURCES = dfbtest_mirror.c
dfbtest_mirror_LDADD = $(libdirectfb) $(libvoodoo) $(libfusion) $(libdirect)
dfbtest_reinit_SOURCES = dfbtest_reinit.c