bug-libtool
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#8976: documentation / behavior discrepancy with lt_dlopenext


From: Andy Wingo
Subject: bug#8976: 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/





reply via email to

[Prev in Thread] Current Thread [Next in Thread]