[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: documentation / behavior discrepancy with lt_dlopenext
From: |
Andy Wingo |
Subject: |
Re: documentation / behavior discrepancy with lt_dlopenext |
Date: |
Fri, 01 Jul 2011 17:03:03 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux) |
Hi list,
Re-sending this report, now that you have debbugs.
On Wed 30 Mar 2011 19:19, Andy Wingo <address@hidden> 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/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: documentation / behavior discrepancy with lt_dlopenext,
Andy Wingo <=