On 6/18/2010 6:42 AM, Peter Rosin wrote:
> That error could just as well come from the last_open function.
> I've got this nagging feeling that something clobbers the module
> name before it reaches the last_open function and that it's
> that clobbering that is the cause of the failure. Not time to
> check the details ATM though, sorry. So, I'm still curious about
> the output with the patch in the below message applied (on Chucks
> setup).
> 
> http://lists.gnu.org/archive/html/bug-libtool/2010-06/msg00054.html
> 
> Perhaps the presence of /usr/bin/last.exe is triggering that
> clobbering. Serious WAG warning...

Sorry Peter (Rosin), I'm not subscribed to bug@ so I've been monitoring
via the web. But I missed your post.  Here are the results:

 first_sym (first): first_ctx
 result: first_symbol
 first_close (first): first_ctx
-first_open denies a request
+first_open denies request for "./.libs/module.dll"
 result: module_symbol
-first_open denies a request
-last_open ("last"): last_ctx
-last_sym (last): last_ctx
-result: last_symbol
-first_open denies a request
-last_open denies a request
+first_open denies request for "/usr/bin/last"
+last_open denies request for "/usr/bin/last"
+lt_dlopen failed: file not found
 first_exit: first_ctx
-last_close (last): last_ctx
 last_exit: last_ctx


If I rename /usr/bin/last.exe to something else:

 first_sym (first): first_ctx
 result: first_symbol
 first_close (first): first_ctx
-first_open denies a request
+first_open denies request for "./.libs/module.dll"
 result: module_symbol
-first_open denies a request
+first_open denies request for "last"
 last_open ("last"): last_ctx
 last_sym (last): last_ctx
 result: last_symbol
-first_open denies a request
-last_open denies a request
+first_open denies request for "no-module"
+last_open denies request for "no-module"
 first_exit: first_ctx
 last_close (last): last_ctx
 last_exit: last_ctx

Which tells me if I revert your patch, it'll pass...which it does
(because all my other "debugging" mods output to stderr, which this test
ignores).

Here is that stderr output, during this passing scenario (e.g. with
/usr/bin/last.exe removed):

Searching for preloaded symbol table for dlopen.a
Found preloaded symbol table for libltdlc
Found preloaded symbol table for dlopen.a
oops, bailing at line 183
Searching for preloaded symbol table for loadlibrary.a
Found preloaded symbol table for libltdlc
Found preloaded symbol table for dlopen.a
Found preloaded symbol table for dlopen_LTX_get_vtable
Found preloaded symbol table for loadlibrary.a
oops, bailing at line 183
Searching for preloaded symbol table for first.a
Found preloaded symbol table for libltdlc
Found preloaded symbol table for dlopen.a
Found preloaded symbol table for dlopen_LTX_get_vtable
Found preloaded symbol table for loadlibrary.a
Found preloaded symbol table for loadlibrary_LTX_get_vtable
Found preloaded symbol table for @PROGRAM@
../libtool/libltdl/loaders/preopen.c (191)
Searching for preloaded symbol table for module.a
Found preloaded symbol table for libltdlc
Found preloaded symbol table for dlopen.a
Found preloaded symbol table for dlopen_LTX_get_vtable
Found preloaded symbol table for loadlibrary.a
Found preloaded symbol table for loadlibrary_LTX_get_vtable
Found preloaded symbol table for @PROGRAM@
../libtool/libltdl/loaders/preopen.c (191)
Searching for preloaded symbol table for last.a
Found preloaded symbol table for libltdlc
Found preloaded symbol table for dlopen.a
Found preloaded symbol table for dlopen_LTX_get_vtable
Found preloaded symbol table for loadlibrary.a
Found preloaded symbol table for loadlibrary_LTX_get_vtable
Found preloaded symbol table for @PROGRAM@
../libtool/libltdl/loaders/preopen.c (191)
Searching for preloaded symbol table for last
Found preloaded symbol table for libltdlc
Found preloaded symbol table for dlopen.a
Found preloaded symbol table for dlopen_LTX_get_vtable
Found preloaded symbol table for loadlibrary.a
Found preloaded symbol table for loadlibrary_LTX_get_vtable
Found preloaded symbol table for @PROGRAM@
Searching for preloaded symbol table for no_module.a
Found preloaded symbol table for libltdlc
Found preloaded symbol table for dlopen.a
Found preloaded symbol table for dlopen_LTX_get_vtable
Found preloaded symbol table for loadlibrary.a
Found preloaded symbol table for loadlibrary_LTX_get_vtable
Found preloaded symbol table for @PROGRAM@
../libtool/libltdl/loaders/preopen.c (191)
Searching for preloaded symbol table for no-module
Found preloaded symbol table for libltdlc
Found preloaded symbol table for dlopen.a
Found preloaded symbol table for dlopen_LTX_get_vtable
Found preloaded symbol table for loadlibrary.a
Found preloaded symbol table for loadlibrary_LTX_get_vtable
Found preloaded symbol table for @PROGRAM@


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.

--
Chuck

Reply via email to