blob: ee4d900ba82d43ab6401aa1e5eb8330555b15dbe [file] [log] [blame]
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001test for __compar_fn_t and if not defined by libc then define it
2help make directfb compile with musl
3
4Upstream-Status: Pending
5Signed-off-by: Khem Raj <raj.khem@gmail.com>
6
7Index: DirectFB-1.7.7/configure.in
8===================================================================
9--- DirectFB-1.7.7.orig/configure.in
10+++ DirectFB-1.7.7/configure.in
11@@ -112,6 +112,17 @@ AC_CHECK_SIZEOF(long)
12 AC_CHECK_SIZEOF(long long)
13 AC_CHECK_FUNCS(fork)
14
15+AC_CACHE_CHECK([for compar_fn_t in stdlib.h],ccache_cv_COMPAR_FN_T, [
16+ AC_TRY_COMPILE(
17+ [#include <stdlib.h>],
18+ [void test_fn(void) { qsort(NULL, 0, 0, (__compar_fn_t)NULL); }],
19+ ccache_cv_COMPAR_FN_T=yes,
20+ ccache_cv_COMPAR_FN_T=no)])
21+if test x"$ccache_cv_COMPAR_FN_T" = x"yes"; then
22+ AC_DEFINE(HAVE_COMPAR_FN_T, 1,
23+ Define to 1 if you have the `__compar_fn_t' typedef.)
24+fi
25+
26 AC_PATH_PROGS(PERL, perl5 perl)
27
28 AC_PATH_PROG(MAN2HTML, man2html, no)
29Index: DirectFB-1.7.7/inputdrivers/lirc/lirc.c
30===================================================================
31--- DirectFB-1.7.7.orig/inputdrivers/lirc/lirc.c
32+++ DirectFB-1.7.7/inputdrivers/lirc/lirc.c
33@@ -59,6 +59,11 @@
34
35 #include <core/input_driver.h>
36
37+#if HAVE_COMPAR_FN_T
38+#define COMPAR_FN_T __compar_fn_t
39+#else
40+typedef int (*COMPAR_FN_T)(const void *, const void *);
41+#endif
42
43 DFB_INPUT_DRIVER( lirc )
44
45@@ -97,7 +102,7 @@ static DFBInputDeviceKeySymbol lirc_pars
46 qsort ( keynames,
47 D_ARRAY_SIZE( keynames ),
48 sizeof(keynames[0]),
49- (__compar_fn_t) keynames_sort_compare );
50+ (COMPAR_FN_T) keynames_sort_compare );
51 keynames_sorted = true;
52 }
53
54@@ -124,7 +129,7 @@ static DFBInputDeviceKeySymbol lirc_pars
55 symbol_name = bsearch( name, keynames,
56 D_ARRAY_SIZE( keynames ),
57 sizeof(keynames[0]),
58- (__compar_fn_t) keynames_compare );
59+ (COMPAR_FN_T) keynames_compare );
60 if (symbol_name)
61 return symbol_name->symbol;
62 break;