Hi list, Re-sending this report, now that you have debbugs.
On Wed 30 Mar 2011 19:19, Andy Wingo <[email protected]> writes: > The ltdl docs say: > > — Function: lt_dlhandle lt_dlopenext (const char *filename) > > The same as lt_dlopen, except that it tries to append different file > name extensions to the file name. If the file with the file name > FILENAME cannot be found libltdl tries to append the following > extensions: [...] > > However, there are cases in which lt_dlopenext does not look for a bare > filename. Specifically the code does: > > if (!filename > || !advise > || !advise->try_ext > || has_library_ext (filename)) > try the bare file > else if (filename && *filename) > try extensions... > > So, we see that if has_library_ext is FALSE, we don't try the bare > file. But that check fails for full paths, like > "/usr/lib64/libSDL-1.2.so.0.11.3". > > $ strace guile -c '(dynamic-link "/usr/lib64/libSDL-1.2.so.0.11.3")' > [...] > open("/usr/lib64/libSDL-1.2.so.0.11.3.la", O_RDONLY) = -1 ENOENT (No such > file or directory) > open("/usr/lib64/libSDL-1.2.so.0.11.3.so", O_RDONLY) = -1 ENOENT (No such > file or directory) > [...] > > The documentation and the code do not agree. I propose that we fix the > code, to add another `stat' (I know) -- of the bare file name, before > trying to add extensions, in the dlopenext case. > > What do you think? The original discussion was here: http://thread.gmane.org/gmane.lisp.guile.bugs/5387 Any ideas? :-) Andy -- http://wingolog.org/
