aboutsummaryrefslogtreecommitdiff
path: root/package/alsa-lib/0002-dlmisc.patch
blob: 24b7230cae3b86d076b9434ae8ab9b74a7cba313 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
alsa-lib: provide dummy definitions of RTLD_* if necessary

The FLAT GNU toolchain (e.g. blackfin) doesn't include the dlfcn.h header
file, so we need to guard that include. Additionally, provide dummy
definitions for parameters RTLD_GLOBAL / RTLD_NOW which are normally
provided by dlfcn.h.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
[Thomas: don't add separate dlmisc.h, move dummy defs to global.h]
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>

diff --git a/include/global.h b/include/global.h
--- a/include/global.h
+++ b/include/global.h
@@ -97,6 +97,16 @@ extern struct snd_dlsym_link *snd_dlsym_
 /** \brief Returns the version of a dynamic symbol as a string. */
 #define SND_DLSYM_VERSION(version) __STRING(version)
 
+/* RTLD_NOW and RTLD_GLOBAL (used for 'mode' in snd_dlopen) are not defined
+ * on all arches (e.g. blackfin), so provide a dummy definition here. */
+#ifndef RTLD_NOW
+#define RTLD_NOW 0
+#endif
+
+#ifndef RTLD_GLOBAL
+#define RTLD_GLOBAL 0
+#endif
+
 void *snd_dlopen(const char *file, int mode);
 void *snd_dlsym(void *handle, const char *name, const char *version);
 int snd_dlclose(void *handle);
diff --git a/modules/mixer/simple/sbasedl.c b/modules/mixer/simple/sbasedl.c
--- a/modules/mixer/simple/sbasedl.c
+++ b/modules/mixer/simple/sbasedl.c
@@ -27,7 +27,9 @@
 #include <fcntl.h>
 #include <sys/ioctl.h>
 #include <math.h>
+#include "config.h"
+#ifdef HAVE_DLFCN
 #include <dlfcn.h>
+#endif
-#include "config.h"
 #include "asoundlib.h"
 #include "mixer_abst.h"
diff --git a/src/mixer/simple_abst.c b/src/mixer/simple_abst.c
--- a/src/mixer/simple_abst.c
+++ b/src/mixer/simple_abst.c
@@ -34,7 +34,9 @@
 #include <fcntl.h>
 #include <sys/ioctl.h>
 #include <math.h>
+#include "config.h"
+#ifdef HAVE_DLFCN
 #include <dlfcn.h>
+#endif
-#include "config.h"
 #include "asoundlib.h"
 #include "mixer_simple.h"