From f8197cfc4c88a16933de036544f02f31ac26b78e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Diego=20=27Flameeyes=27=20Petten=C3=B2?= Date: Fri, 8 Aug 2008 12:24:57 +0200 Subject: [PATCH] Update code to use libtool 2.2. Use convenience recursive libltdl. Also remove the code for older libtool from the daemon. --- Makefile.am | 2 +- configure.ac | 27 ++++------------------ src/daemon/ltdl-bind-now.c | 57 ---------------------------------------------- 3 files changed, 5 insertions(+), 81 deletions(-) diff --git a/Makefile.am b/Makefile.am index facce0d..b5e638b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -18,7 +18,7 @@ ACLOCAL_AMFLAGS = -I m4 EXTRA_DIST = bootstrap.sh LICENSE GPL LGPL doxygen/Makefile.am doxygen/Makefile.in doxygen/doxygen.conf.in README todo -SUBDIRS=src doxygen man po +SUBDIRS=src doxygen man po libltdl MAINTAINERCLEANFILES = noinst_DATA = diff --git a/configure.ac b/configure.ac index 4fa171f..8bb3f8a 100644 --- a/configure.ac +++ b/configure.ac @@ -244,29 +244,9 @@ else fi #### libtool stuff #### - -AC_LTDL_ENABLE_INSTALL -AC_LIBLTDL_INSTALLABLE -AC_LIBTOOL_DLOPEN -AC_LIBTOOL_WIN32_DLL -AC_PROG_LIBTOOL -AC_SUBST(LTDLINCL) -AC_SUBST(LIBLTDL) -AC_CONFIG_SUBDIRS(libltdl) - -old_LIBS=$LIBS -LIBS="$LIBS $LIBLTDL" -AC_CHECK_FUNCS([lt_dlmutex_register]) -LIBS=$old_LIBS -AC_CHECK_TYPES([struct lt_user_dlloader, lt_dladvise], , , [#include ]) - -if test "x$enable_ltdl_install" = "xno" && test "x$ac_cv_lib_ltdl_lt_dlinit" = "xno" ; then - AC_MSG_ERROR([[ - - *** Cannot find the libltdl development files. - *** Maybe you need to install the libltdl-dev package. - ]]) -fi +LT_CONFIG_LTDL_DIR([libltdl]) +LT_INIT([dlopen win32-dll]) +LTDL_INIT([convenience recursive]) #### Determine build environment #### @@ -1129,6 +1109,7 @@ AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "x1"]) AC_CONFIG_FILES([ Makefile +libltdl/Makefile src/Makefile man/Makefile libpulse.pc diff --git a/src/daemon/ltdl-bind-now.c b/src/daemon/ltdl-bind-now.c index 4007724..6821aac 100644 --- a/src/daemon/ltdl-bind-now.c +++ b/src/daemon/ltdl-bind-now.c @@ -53,30 +53,6 @@ #undef PA_BIND_NOW #endif -#ifdef HAVE_LT_DLMUTEX_REGISTER - -static pa_mutex *libtool_mutex = NULL; - -PA_STATIC_TLS_DECLARE_NO_FREE(libtool_tls); - -static void libtool_lock(void) { - pa_mutex_lock(libtool_mutex); -} - -static void libtool_unlock(void) { - pa_mutex_unlock(libtool_mutex); -} - -static void libtool_set_error(const char *error) { - PA_STATIC_TLS_SET(libtool_tls, (char*) error); -} - -static const char *libtool_get_error(void) { - return PA_STATIC_TLS_GET(libtool_tls); -} - -#endif - #ifdef PA_BIND_NOW /* @@ -91,11 +67,7 @@ static const char *libtool_get_error(void) { to set $LT_BIND_NOW before starting the pulsaudio binary. */ -#ifndef HAVE_LT_DLADVISE -static lt_module bind_now_open(lt_user_data d, const char *fname) -#else static lt_module bind_now_open(lt_user_data d, const char *fname, lt_dladvise advise) -#endif { lt_module m; @@ -140,36 +112,13 @@ static lt_ptr bind_now_find_sym(lt_user_data d, lt_module m, const char *symbol) void pa_ltdl_init(void) { #ifdef PA_BIND_NOW -# ifdef HAVE_STRUCT_LT_USER_DLLOADER - lt_dlloader *place; - static const struct lt_user_dlloader loader = { - .module_open = bind_now_open, - .module_close = bind_now_close, - .find_sym = bind_now_find_sym - }; -# else static const lt_dlvtable *dlopen_loader; static lt_dlvtable bindnow_loader; -# endif #endif pa_assert_se(lt_dlinit() == 0); -#ifdef HAVE_LT_DLMUTEX_REGISTER - pa_assert_se(libtool_mutex = pa_mutex_new(TRUE, FALSE)); - pa_assert_se(lt_dlmutex_register(libtool_lock, libtool_unlock, libtool_set_error, libtool_get_error) == 0); -#endif - #ifdef PA_BIND_NOW -# ifdef HAVE_STRUCT_LT_USER_DLLOADER - - if (!(place = lt_dlloader_find("dlopen"))) - place = lt_dlloader_next(NULL); - - /* Add our BIND_NOW loader as the default module loader. */ - if (lt_dlloader_add(place, &loader, "bind-now-loader") != 0) - pa_log_warn(_("Failed to add bind-now-loader.")); -# else /* Already initialised */ if (dlopen_loader) return; @@ -189,15 +138,9 @@ void pa_ltdl_init(void) { /* Add our BIND_NOW loader as the default module loader. */ if (lt_dlloader_add(&bindnow_loader) != 0) pa_log_warn(_("Failed to add bind-now-loader.")); -# endif #endif } void pa_ltdl_done(void) { pa_assert_se(lt_dlexit() == 0); - -#ifdef HAVE_LT_DLMUTEX_REGISTER - pa_mutex_free(libtool_mutex); - libtool_mutex = NULL; -#endif } -- 2.7.4