Mail Archives: cygwin/2010/03/27/11:09:21
On 3/27/2010 11:23 AM, David Rothenberger wrote:
> On 3/27/2010 7:47 AM, Charles Wilson wrote:
>> 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.
>
> I'm pretty sure it's libsasl2 that's the culprit, but since its DLLs are
> in /usr/lib/sasl2, which is not in the PATH, I don't see how that could
> work.
Ah, but cygwin's dlopen() is sensitive to LD_LIBRARY_PATH -- and you can
also give dlopen() the full path to where you expect the DLL to be.
Obviously libsasl2 "knows" about /usr/lib/sasl2/, because that's where
it's currently looking for the .la files. So, I wouldn't be surprised
if, in the absense of .la files messing up the
libsasl2->libltdl->.la->.dll lookup, the libsasl2->libltdl->.dll works fine.
Hey...I have an idea. NORMALLY, the .la file says:
dlname='../bin/cygfoo-N.dll'
This tells libltdl how to find the DLL, which is not normally installed
in the /usr/lib heirarchy on cygwin. However, in this case, the sasl2
dlls ARE in /usr/lib/sasl2.
So, the .la files OUGHT to say
dlname="cyg*.dll"
with no ../bin component. Plus, ../bin wouldn't be correct in this case
either, as /usr/lib/sasl2/../bin == /usr/lib/bin, which isn't right.
(FWIW, this bug was fixed only very recently in libtool).
So, I wonder if editing the .la files to specify the correct relative
path to the DLLs would fix it?
> I might take a look at libsasl2 and see if recompiling it helps.
> Unfortunately, it's orphaned and I know absolutely nothing about SASL,
> so I'm loathe to adopt it.
Ack.
> Worse comes to worse, I'll just disable SASL support in SVN.
Yep, that's often the best policy when it comes to abandonware, unless
you're willing to adopt it.
> It's interesting, though, that this behavior just surfaced. This didn't
> occur with Cygwin 1.7.1 as far as I remember, and I'm sure I had
> libsasl2-devel installed at that point. There must have been some change
> in cygwin1.dll that has caused this.
Hmm. I remember having transient problems with svn and many of the
1.7.0 snapshots, but they were intermittent and I had bigger fish to
fry. I don't recall any issues with 1.7.1, nor am I having any trouble
with 1.7.2. However, I would not be surprised if
(a) the "problem" is some intermittent interaction between
cygwin-1.7.x's completely redesigned file name handling and an old,
statically-linked, compiled during the 1.5.x era, libltdl
(b) the reason you didn't see it in 1.7.1 was just that -- it's
intermittent, and you didn't HAPPEN to see it during that 3-month window.
(c) if libsasl2 had been linked against the DLL version of cygltdl, then
perhaps none of this would have happened -- since I try to keep the
officially distributed libtool more-or-less up to date, and rigorously
tested.
--
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 -