+2008-08-26 Peter O'Gorman <peter@pogma.com>
+
+ Allow for extensions other than .a for preloaded modules.
+ * libltdl/m4/ltdl.m4 (_LTDL_SETUP): Define LT_LIBEXT.
+ * libltdl/ltdl.c (lt_dladvise_preload): Use it.
+ Reported by Ralf Wildenhues.
+
2008-08-26 Peter O'Gorman <peter@pogma.com>,
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
# define LT_FILENAME_MAX 1024
#endif
+#if !defined(LT_LIBEXT)
+# define LT_LIBEXT "a"
+#endif
+
/* This is the maximum symbol size that won't require malloc/free */
#undef LT_SYMBOL_LENGTH
#define LT_SYMBOL_LENGTH 128
static const char objdir[] = LT_OBJDIR;
static const char archive_ext[] = LT_ARCHIVE_EXT;
+static const char libext[] = LT_LIBEXT;
#if defined(LT_MODULE_EXT)
static const char shlib_ext[] = LT_MODULE_EXT;
#endif
if (vtable)
{
- archive_name = MALLOC (char, LT_STRLEN (name) + 3);
+ /* name + "." + libext + NULL */
+ archive_name = MALLOC (char, LT_STRLEN (name) + LT_STRLEN (libext) + 2);
*phandle = (lt_dlhandle) lt__zalloc (sizeof (struct lt__handle));
if ((*phandle == NULL) || (archive_name == NULL))
/* Preloaded modules are always named according to their old
archive name. */
- sprintf (archive_name, "%s.a", name);
+ sprintf (archive_name, "%s.%s", name, libext);
if (tryall_dlopen (&newhandle, archive_name, advise, vtable) == 0)
{
AC_CHECK_FUNCS([closedir opendir readdir], [], [AC_LIBOBJ([lt__dirent])])
AC_CHECK_FUNCS([strlcat strlcpy], [], [AC_LIBOBJ([lt__strl])])
+AC_DEFINE_UNQUOTED([LT_LIBEXT],["$libext"],[The archive extension])
+
name=ltdl
LTDLOPEN=`eval "\\$ECHO \"$libname_spec\""`
AC_SUBST([LTDLOPEN])