[Top][All Lists]
[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