On 06/18/2010 08:36 AM, Peter O'Gorman wrote:
On 06/18/2010 08:33 AM, Peter O'Gorman wrote:
On 06/18/2010 08:09 AM, Charles Wilson wrote:

Here's the key bit:

Searching for preloaded symbol table for last
vs
Searching for preloaded symbol table for /usr/bin/last

SO, before preopen:vmopen is called, somebody -- one of the other
loaders? -- modified 'filename' simply because /usr/bin/last.exe exists.
But I thought preopen was the very first loader.


This should (hopefully) stop the preopen loader getting used twice, and perhaps (I'm really dreaming now) give a better error.

Peter
diff --git a/libltdl/ltdl.c b/libltdl/ltdl.c
index 1213f0d..094673f 100644
--- a/libltdl/ltdl.c
+++ b/libltdl/ltdl.c
@@ -424,8 +424,11 @@ tryall_dlopen (lt_dlhandle *phandle, const char *filename,
 	if (vtable)
 	  loader_vtable = vtable;
 	else
-	  loader_vtable = lt_dlloader_get (loader);
-
+	  {
+	    loader_vtable = lt_dlloader_get (loader);
+	    /* We already tried the preopen loader, no need to do it again */
+	    if (loader_vtable == lt_dlloader_find ("lt_preopen")) continue;
+	  }
 #ifdef LT_DEBUG_LOADERS
 	fprintf (stderr, "Calling %s->module_open (%s)\n",
 		 (loader_vtable && loader_vtable->name) ? loader_vtable->name : "(null)",

Reply via email to