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 _______________________________________________ http://lists.gnu.org/mailman/listinfo/libtool
