updated: guile-1.6.7-2, guile-1.7.2-2

Charles Wilson cygwin@cwilson.fastmail.fm
Sat Oct 8 02:18:00 GMT 2005


Christopher Faylor wrote:

> Either you're using an older version of cygwin or that's not a cygwin
> error.  It looks like something is calling LoadLibrary directly rather
> than using the cygwin dlopen().  Cygwin was changed in 1.5.18 to use
> strerror style output in the result of dlerror.

Until recently, libltdl had support for both direct LoadLibrary() and 
dlopen().  I *thought* that dlopen() was preferred, and LoadLibrary() 
was the fallback -- tho the errors posted by the OP seem to imply otherwise.

However, that's all water under the bridge, as the current version of 
libltdl uses ONLY dlopen().

Perhaps guile should be re-libtoolized and/or Jan should confirm that he 
has the most recent version of /usr/bin/cygltdl-3.dll (from 
libltdl3-1.5.20-2) installed on his machine.

In any case, when using libltdl to manage modules and runtime-loading of 
libraries (which guile does, I think), the .la files are important -- as 
libltdl does NOT use LD_LIBRARY_PATH but rather explicitly dlopen()s 
using the fullpathname of the target dll as computed by parsing the .la 
file(s).  But libltdl *should* be looking in the $(libdir) [*], and 
never in $(bindir) for those .la files.

--
Chuck

[*] there is also some what to set at project compile time (e.g. when 
Jan compiles guile, not when I compile libltdl3) a specific module load 
directory that libltdl3 will use to look for .la files, but I forgot how 
that works and I'm too lazy to look in the docs right now.



More information about the Cygwin-apps mailing list