258cc58294
Fixes linker error http://autobuild.buildroot.net/results/c6272ac900d1a53b976839ac4f50a210b3e6b354 On powerpc64 (and powerpc64le) the build fails due to linker problems because of an old (2003) workaround for powerpc64, presumably working around an old toolchain problem that is no longer present. Removing the workaround allows the build to succeed. A new patch is added for this. Additionally, there was a mistake in patch 3: the patch added a test for HAVE_LIBDL to include/alsa-symbols.h but it was positioned in the file before config.h was included, so HAVE_LIBDL is never seen as defined. The test was also using HAVE_LIBDL (which indicates the library) rather than HAVE_DLFCN (which indicates the header). Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
60 lines
1.8 KiB
Diff
60 lines
1.8 KiB
Diff
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"
|