libtool
[Top][All Lists]
Advanced

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

Re: Unhelpful error message in libltdl


From: John Bytheway
Subject: Re: Unhelpful error message in libltdl
Date: Sun, 09 Mar 2008 00:06:15 +0200
User-agent: Mozilla-Thunderbird 2.0.0.9 (X11/20080110)

Ralf Wildenhues wrote:
> * John Bytheway wrote on Sat, Mar 08, 2008 at 08:18:12PM CET:
>> Ralf Wildenhues wrote:
>>> I've given your bug description a
>>> shot at a test that exposes this issue, but have so far failed.  Below
>>> is where I'm at, patch against current HEAD.  Can you point me to how
>>> your setup is different?  Specifically, how do you get a failure of
>>> dlopen due to an undefined symbol on GNU/Linux when RTLD_NOW is not set?
>> Ah, yes.  I hadn't realised quite how tricky it is; one answer (the one
>> that I encountered) is to have an undefined reference to a vtable in
>> C++.  I've included a patch below on your proposed lt_dlopen.at which
>> uses this method.  I'll leave it to someone else to try to construct an
>> equivalent example in C.  I had to make my best guess at the correct
>> syntax for compiling C++ in this context (I've never encountered
>> autotest before).  Note also that I removed dep.c and associated stuff
>> which seemed to be an unnecessary extra level of confusion.
>>
>> However, this is not the end of the story.  If you run this test you
>> should see the "file not found" error which was exactly the unhelpful
>> error which my original patch was supposed to fix, so clearly something
>> still isn't right.
> 
> Hmm.  I have some qualms with this additional patch to ltdl.c.  To make
> my life easier, rather than thinking about whether that can pessimize
> legitimate uses (which I'm pretty sure it does) and how that can be
> avoided, I'd like to go back a step first.

Indeed.  I should have said that I don't really think my additional
patch to ltdl.c is the right solution, I was just providing it to
explain what I had done.

> Your first patch against
> ltdl.c clearly fixed some issue for you, no?  Let's try to only deal
> with that issue for now and construct a testcase for that.  It can be
> C++ or another language, it can be system-specific no matter what, all
> I'd like is a reproducible example in some way that matches what that
> patch fixes.

Well, I had this problem originally with an earlier version of libtool
(I don't know which exactly - probably 1.5.x) and the equivalent patch
on that version of ltdl.c fixed the problem.

When I submitted the patch I didn't actually check that it fixed the
problem in the new libtool (I know I should have!), I simply checked
that it didn't break anything else and that the relevant bits looked
sufficiently similar that the change could be expected to have the same
effect.

I have just this moment tried to replicate the original problem against
this new libtool.  I get the same behaviour as I do with the test as
patched with what I sent in my last message.

So, in summary:
- My alteration of the test should demonstrate the problem.
- My first ltdl.c patch fixed the problem in some older version of libtool.
- My first ltdl.c patch doesn't seem to fix the problem on CVS HEAD.
- The combination of both my ltdl.c patches does seem to fix the
problem, but also causes another problem.

Sorry to cause confusion.

John




reply via email to

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