src/plugin.c: Add libtool 1 compatibility code.
authorFlorian Forster <octo@leeloo.lan.home.verplant.org>
Tue, 8 Dec 2009 09:12:58 +0000 (10:12 +0100)
committerFlorian Forster <octo@leeloo.lan.home.verplant.org>
Tue, 8 Dec 2009 09:12:58 +0000 (10:12 +0100)
configure.in
src/plugin.c

index 3a5901e..6a520a6 100644 (file)
@@ -9,6 +9,7 @@ m4_ifdef([LT_PACKAGE_VERSION],
         LT_CONFIG_LTDL_DIR([libltdl])
         LT_INIT([dlopen])
         LTDL_INIT([convenience])
+        AC_DEFINE(LIBTOOL_VERSION, 2, [Define to used libtool version.])
        ]
 ,
        # libtool <= 1.5
@@ -18,6 +19,7 @@ m4_ifdef([LT_PACKAGE_VERSION],
         AC_SUBST(LIBLTDL)
         AC_LIBTOOL_DLOPEN
         AC_CONFIG_SUBDIRS(libltdl)
+        AC_DEFINE(LIBTOOL_VERSION, 1, [Define to used libtool version.])
        ]
 )
 
index 7b30e21..2579856 100644 (file)
@@ -280,6 +280,7 @@ static int plugin_load_file (char *file, uint32_t flags)
        lt_dlinit ();
        lt_dlerror (); /* clear errors */
 
+#if LIBTOOL_VERSION == 2
        if (flags & PLUGIN_FLAGS_GLOBAL) {
                lt_dladvise advise;
                lt_dladvise_init(&advise);
@@ -289,6 +290,13 @@ static int plugin_load_file (char *file, uint32_t flags)
        } else {
                dlh = lt_dlopen (file);
        }
+#else /* if LIBTOOL_VERSION == 1 */
+       if (flags & PLUGIN_FLAGS_GLOBAL)
+               ERROR ("plugin_load_file: The global flag is not supported, "
+                               "libtool 2 is required for this.");
+       dlh = lt_dlopen (file);
+#endif
+
        if (dlh == NULL)
        {
                const char *error = lt_dlerror ();