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)",