[Buildroot] [PATCH 2 of 4] alsa-lib: add a fake dlfcn.h header if dynamic load is not supported

Peter Korsgaard jacmet at uclibc.org
Tue Feb 18 11:28:29 UTC 2014


>>>>> "Thomas" == Thomas De Schampheleire <patrickdepinguin at gmail.com> writes:

 > The FLAT GNU toolchain doesn't include the dlfcn.h header file.
 > Provide a fake header file dlmisc.h with enough declarations to make
 > alsa-lib happy.

 > Fixes
 > http://autobuild.buildroot.org/results/706/7069e1f43cbed745d65f7dd9904a3fff034530ac/build-end.log

 > Signed-off-by: Sonic Zhang <sonic.zhang at analog.com>
 > [Thomas: change sequence number from 003 to 0003, update commit message ]
 > Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire at gmail.com>

 > ---
 >  package/alsa-lib/alsa-lib-0003-dlmisc.patch |  59 ++++++++++++++++++++++++
 >  1 files changed, 59 insertions(+), 0 deletions(-)

 > diff --git a/package/alsa-lib/alsa-lib-0003-dlmisc.patch b/package/alsa-lib/alsa-lib-0003-dlmisc.patch
 > new file mode 100644
 > --- /dev/null
 > +++ b/package/alsa-lib/alsa-lib-0003-dlmisc.patch
 > @@ -0,0 +1,59 @@
 > +alsa-lib: dlmisc: Add a fake dl lib head file when dl lib is not supported by the toolchain.
 > +
 > +The FLAT GNU toolchain doesn't include the dlfcn.h header file.
 > +
 > +--- alsa-lib-1.0.26/src/mixer/simple_abst.c	2012-09-06 16:55:14.000000000 +0800
 > ++++ alsa-lib-1.0.26.bak/src/mixer/simple_abst.c	2013-11-25 14:53:07.739275843 +0800
 > +@@ -34,7 +34,11 @@
 > + #include <fcntl.h>
 > + #include <sys/ioctl.h>
 > + #include <math.h>
 > ++#ifdef HAVE_LIBDL
 > + #include <dlfcn.h>
 > ++#else
 > ++#include <dlmisc.h>

This is not a system header, so it should use #include "dlmisc.h".

What the the upstream status of this patch? We don't usually carry
feature patches in buildroot (besides backports).

Are those two defines the only part of dlfcn.h used? If so, how about
protection the pieces of code using them with #ifdef HAVE_LIBDL instead?


 > ++#endif
 > + #include "config.h"
 > + #include "asoundlib.h"
 > + #include "mixer_simple.h"
 > +--- alsa-lib-1.0.26/modules/mixer/simple/sbasedl.c	2012-09-06 16:55:14.000000000 +0800
 > ++++ alsa-lib-1.0.26.bak/modules/mixer/simple/sbasedl.c	2013-11-25 14:53:40.871279553 +0800
 > +@@ -27,7 +27,11 @@
 > + #include <fcntl.h>
 > + #include <sys/ioctl.h>
 > + #include <math.h>
 > ++#ifdef HAVE_LIBDL
 > + #include <dlfcn.h>
 > ++#else
 > ++#include <dlmisc.h>
 > ++#endif
 > + #include "config.h"
 > + #include "asoundlib.h"
 > + #include "mixer_abst.h"
 > +--- /dev/null	2013-11-25 21:32:41.194714253 +0800
 > ++++ alsa-lib-1.0.26.bak/include/dlmisc.h	2013-11-25 15:03:11.031307047 +0800
 > +@@ -0,0 +1,24 @@
 > ++/*
 > ++ *   This library is free software; you can redistribute it and/or modify
 > ++ *   it under the terms of the GNU Lesser General Public License as
 > ++ *   published by the Free Software Foundation; either version 2.1 of
 > ++ *   the License, or (at your option) any later version.
 > ++ *
 > ++ *   This program is distributed in the hope that it will be useful,
 > ++ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 > ++ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 > ++ *   GNU Lesser General Public License for more details.
 > ++ *
 > ++ *   You should have received a copy of the GNU Lesser General Public
 > ++ *   License along with this library; if not, write to the Free Software
 > ++ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 > ++ *
 > ++ */
 > ++
 > ++#ifndef __ALSA_DLMISC_H
 > ++#define __ALSA_DLMISC_H
 > ++
 > ++#define RTLD_NOW	0x00002
 > ++#define RTLD_GLOBAL	0x00100
 > ++
 > ++#endif
 > _______________________________________________
 > buildroot mailing list
 > buildroot at busybox.net
 > http://lists.busybox.net/mailman/listinfo/buildroot


-- 
Bye, Peter Korsgaard


More information about the buildroot mailing list