diff --git a/acinclude.m4 b/acinclude.m4
index 67ee1a4..af97cce 100644
--- a/acinclude.m4
+++ b/acinclude.m4
])
AC_DEFUN([AC_PATH_GLIB], [
- PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.28, dummy=yes,
- AC_MSG_ERROR(GLib library version 2.28 or later is required))
+ PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.16, dummy=yes,
+ AC_MSG_ERROR(GLib library version 2.16 or later is required))
+ AC_CHECK_LIB(glib-2.0, g_slist_free_full, dummy=yes,
+ AC_DEFINE(NEED_G_SLIST_FREE_FULL, 1,
+ [Define to 1 if you need g_slist_free_full() function.]))
AC_SUBST(GLIB_CFLAGS)
AC_SUBST(GLIB_LIBS)
])
diff --git a/attrib/client.c b/attrib/client.c
index c9629c4..1ef2699 100644
--- a/attrib/client.c
+++ b/attrib/client.c
#include <glib.h>
#include <bluetooth/bluetooth.h>
+#include <bluetooth/sdp.h>
+#include <bluetooth/sdp_lib.h>
#include <bluetooth/uuid.h>
+#include "glib-helper.h"
#include "adapter.h"
#include "device.h"
#include "log.h"
diff --git a/attrib/gatt.c b/attrib/gatt.c
index a27d1af..77c96f3 100644
--- a/attrib/gatt.c
+++ b/attrib/gatt.c
*
*/
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
#include <stdint.h>
#include <stdlib.h>
#include <glib.h>
#include <bluetooth/sdp.h>
#include <bluetooth/sdp_lib.h>
+#include "glib-helper.h"
+
#include "att.h"
#include "gattrib.h"
#include "gatt.h"
diff --git a/audio/a2dp.c b/audio/a2dp.c
index 4fbd651..bb065d4 100644
--- a/audio/a2dp.c
+++ b/audio/a2dp.c
#include <bluetooth/sdp.h>
#include <bluetooth/sdp_lib.h>
+#include "glib-helper.h"
#include "log.h"
#include "device.h"
#include "manager.h"
diff --git a/audio/media.c b/audio/media.c
index a58e96f..3978a17 100644
--- a/audio/media.c
+++ b/audio/media.c
#include "../src/adapter.h"
#include "../src/dbus-common.h"
+#include "glib-helper.h"
#include "log.h"
#include "error.h"
#include "device.h"
diff --git a/plugins/hciops.c b/plugins/hciops.c
index 92f976a..ecc0e86 100644
--- a/plugins/hciops.c
+++ b/plugins/hciops.c
#include <glib.h>
+#include "glib-helper.h"
#include "hcid.h"
#include "sdpd.h"
#include "btio.h"
diff --git a/src/eir.c b/src/eir.c
index ac23064..d632fa8 100644
--- a/src/eir.c
+++ b/src/eir.c
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*/
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
#include <errno.h>
#include <stdlib.h>
#include <stdint.h>
diff --git a/src/glib-helper.h b/src/glib-helper.h
index c83f5e2..a383741 100644
--- a/src/glib-helper.h
+++ b/src/glib-helper.h
int bt_string2uuid(uuid_t *uuid, const char *string);
gchar *bt_list2string(GSList *list);
GSList *bt_string2list(const gchar *str);
+
+#ifdef NEED_G_SLIST_FREE_FULL
+static inline void g_slist_free_full(GSList *list, GDestroyNotify free_func)
+{
+ g_slist_foreach(list, (GFunc) free_func, NULL);
+ g_slist_free(list);
+}
+#endif
diff --git a/src/manager.c b/src/manager.c
index dd8cb50..e31f432 100644
--- a/src/manager.c
+++ b/src/manager.c
#include <sys/socket.h>
#include <bluetooth/bluetooth.h>
+#include <bluetooth/sdp.h>
+#include <bluetooth/sdp_lib.h>
#include <glib.h>
#include <gdbus.h>
+#include "glib-helper.h"
#include "hcid.h"
#include "dbus-common.h"
#include "log.h"