Mail Archives: cygwin/2010/03/27/09:47:26
On 3/27/2010 12:10 AM, Eliot Moss wrote:
> On 3/26/2010 11:20 PM, David Rothenberger wrote:
>> I think the .la files are causing the problems. I believe they come from
>> libsasl2-devel. You said you removed that package, but maybe something
>> went wrong.
>
> Perhaps ... so I changed the directory name back to sasl2, but
> added .disabled at the end of the .la files' names, and now
> svn -- version continues to work correctly.
Well, this sounds like something in the svn stack is using libltdl's
portable dynamic loading facilities (e.g. libtool's replacement/wrapper
for dlopen()). That implementation first loads .la files, and uses them
to determine where the .dll/.so is, before using platform specific
functions (LoadLibrary() on native win32, dlopen() on cygwin and most
unices) to load the actual shared library.
Obviously, something is going wrong there. What happens when the .la
file isn't found, is that libltdl falls back on cygwin's dlopen(), which
simply looks in the normal search path for the DLL -- and that
apparently works.
What's really interesting, is that neither svn.exe nor any of the DLLs
that it is directly linked to actually depend on cygltdl*.dll. This
tells me that, whichever member of the stack is calling lt_dlopen(), it
was built by linking in a static (local) copy of libltdl.a. There have
been any number of bugs fixed in that library over the past N years.
I suspect the best solution here is to find out what component:
C:\cygwin-1.7\bin\svn.exe
C:\cygwin-1.7\bin\cygsvn_client-1-0.dll
C:\cygwin-1.7\bin\cygsvn_ra-1-0.dll
C:\cygwin-1.7\bin\cygsvn_ra_local-1-0.dll
C:\cygwin-1.7\bin\cygsvn_repos-1-0.dll
C:\cygwin-1.7\bin\cygsvn_fs-1-0.dll
C:\cygwin-1.7\bin\cygsvn_fs_base-1-0.dll
C:\cygwin-1.7\bin\cygsvn_delta-1-0.dll
C:\cygwin-1.7\bin\cygsvn_subr-1-0.dll
C:\cygwin-1.7\bin\cyggcc_s-1.dll
C:\cygwin-1.7\bin\cygwin1.dll
C:\Windows\system32\ADVAPI32.DLL
C:\Windows\system32\ntdll.dll
C:\Windows\system32\KERNEL32.dll
C:\Windows\system32\RPCRT4.dll
C:\cygwin-1.7\bin\cygapr-1-0.dll
C:\cygwin-1.7\bin\cygaprutil-1-0.dll
C:\cygwin-1.7\bin\cygcrypt-0.dll
C:\cygwin-1.7\bin\cygexpat-1.dll
C:\cygwin-1.7\bin\cygiconv-2.dll
C:\cygwin-1.7\bin\cygintl-8.dll
C:\cygwin-1.7\bin\cygsqlite3-0.dll
C:\cygwin-1.7\bin\cygz.dll
C:\Windows\system32\CRYPT32.DLL
C:\Windows\system32\msvcrt.dll
C:\Windows\system32\USER32.dll
C:\Windows\system32\GDI32.dll
C:\Windows\system32\MSASN1.dll
C:\Windows\system32\USERENV.dll
C:\Windows\system32\Secur32.dll
C:\cygwin-1.7\bin\cygsvn_fs_util-1-0.dll
C:\cygwin-1.7\bin\cygdb-4.2.dll
C:\cygwin-1.7\bin\cygsvn_fs_fs-1-0.dll
C:\cygwin-1.7\bin\cygsvn_ra_neon-1-0.dll
C:\cygwin-1.7\bin\cygneon-27.dll
C:\cygwin-1.7\bin\cygcrypto-0.9.8.dll
C:\cygwin-1.7\bin\cygssl-0.9.8.dll
C:\cygwin-1.7\bin\cygsvn_ra_serf-1-0.dll
C:\cygwin-1.7\bin\cygserf-0-0.dll
C:\cygwin-1.7\bin\cygsvn_ra_svn-1-0.dll
C:\cygwin-1.7\bin\cygsasl2-2.dll
C:\cygwin-1.7\bin\cygsvn_wc-1-0.dll
C:\cygwin-1.7\bin\cygsvn_diff-1-0.dll
is actually opening the .la file (e.g. is compiled against a static
libltdl) and recompile it against a newer version of that library.
Preferably against the "official" shared DLL version cygltdl-N.dll
(which should happen automatically if you libtoolize --force before
rebuiling).
--
Chuck
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
- Raw text -