]> granicus.if.org Git - yasm/commitdiff
Add work around for static-build libtool binaries to find preloaded modules
authorPeter Johnson <peter@tortall.net>
Mon, 11 Oct 2004 00:23:10 +0000 (00:23 -0000)
committerPeter Johnson <peter@tortall.net>
Mon, 11 Oct 2004 00:23:10 +0000 (00:23 -0000)
without the presence of the associated ".la" file.  This caused the Win32
nightly snapshots to be unusable (as they're static-built libtool).

At present, a search for a preloaded module occurs first, before the ".la"
is even looked for.

Noticed by: Oliver <mybox@ollysoft.de>

* libtool.m4: Define new config.h variable LIBTOOL_LIBEXT that is the
extension used for static libraries (e.g. ".a").  This is the extension used
for preloaded symbols.

* ltdl.c (lt_dlopenext): Add first search function to find filename.a prior
to other searches (.la and .so), so preloaded symbols are hit first.

svn path=/trunk/yasm/; revision=1157

libltdl/ltdl.c
m4/libtool.m4

index 709ad10a3a2801a1bbef5ca656d20b0a5c3a9796..5c7e99f06ab6f8a3298b612599b67fb49c451cb5 100644 (file)
@@ -855,6 +855,9 @@ static      const char      archive_ext[]           = LTDL_ARCHIVE_EXT;
 #ifdef LTDL_SHLIB_EXT
 static const char      shlib_ext[]             = LTDL_SHLIB_EXT;
 #endif
+#ifdef LIBTOOL_LIBEXT
+static const char      lib_ext[]               = LIBTOOL_LIBEXT;
+#endif
 #ifdef LTDL_SYSSEARCHPATH
 static const char      sys_search_path[]       = LTDL_SYSSEARCHPATH;
 #endif
@@ -3143,6 +3146,21 @@ lt_dlopenext (filename)
       return lt_dlopen (filename);
     }
 
+#ifdef LIBTOOL_LIBEXT
+  /* Try appending LIBTOOL_LIBEXT.   */
+  tmp = LT_EMALLOC (char, len + LT_STRLEN (lib_ext) + 1);
+  if (!tmp)
+    return 0;
+
+  strcpy (tmp, filename);
+  strcat (tmp, lib_ext);
+  errors = try_dlopen (&handle, tmp);
+
+  LT_DLFREE (tmp);
+  if (handle)
+    return handle;
+#endif
+
   /* First try appending ARCHIVE_EXT.  */
   tmp = LT_EMALLOC (char, len + LT_STRLEN (archive_ext) + 1);
   if (!tmp)
index afeac1b85070a8f503e9120e8fd8865033c007ed..4d06eac9fd5c8ffecf712c18eece8d1ace9dcd18 100644 (file)
@@ -4723,6 +4723,9 @@ $echo "local: *; };" >> $output_objdir/$libname.ver~
 AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
 test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
 
+AC_DEFINE_UNQUOTED(LIBTOOL_LIBEXT, ".$libext",
+  [Define to the extension used for static libraries, say, ".a".])
+
 variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
 if test "$GCC" = yes; then
   variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"