[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: libltdl and dlopen global/local
From: |
Ralf Wildenhues |
Subject: |
Re: libltdl and dlopen global/local |
Date: |
Fri, 27 Jul 2007 20:14:09 +0200 |
User-agent: |
Mutt/1.5.13 (2006-08-11) |
> * Brian Barrett wrote on Fri, May 11, 2007 at 07:11:33PM CEST:
> >
> > It looks like the problem with lt_dlopenext() -- we always call it with an
> > absolute path to a dso, minus the extension. Before the patches from Gary,
> > this worked. Now lt_dlopenext() always returns an error in that case, and
> > the error returned from libtool is "file not found".
So here's a patch to fix the actual bug. Please try it. It makes the
test pass on GNU/Linux. OK to apply? Should I rename `attempt', say,
to `filename_ext'?
Cheers,
Ralf
* libltdl/ltdl.c (try_dlopen): Use `attempt' rather than
`filename', as the former has the needed extension when called
by lt_dlopenext.
Report by Brian Barrett.
Index: libltdl/ltdl.c
===================================================================
RCS file: /cvsroot/libtool/libtool/libltdl/ltdl.c,v
retrieving revision 1.254
diff -u -r1.254 ltdl.c
--- libltdl/ltdl.c 4 Jul 2007 23:05:04 -0000 1.254
+++ libltdl/ltdl.c 27 Jul 2007 18:12:06 -0000
@@ -1255,7 +1255,7 @@
}
newhandle = *phandle;
- if (tryall_dlopen (&newhandle, filename, advise, vtable) == 0)
+ if (tryall_dlopen (&newhandle, attempt, advise, vtable) == 0)
{
goto register_handle;
}
@@ -1317,7 +1317,7 @@
}
if (!file)
{
- file = fopen (filename, LT_READTEXT_MODE);
+ file = fopen (attempt, LT_READTEXT_MODE);
}
/* If we didn't find the file by now, it really isn't there. Set
@@ -1415,7 +1415,7 @@
#endif
)))
{
- if (tryall_dlopen (&newhandle, filename, advise, 0) != 0)
+ if (tryall_dlopen (&newhandle, attempt, advise, 0) != 0)
{
newhandle = NULL;
}