libtool-patches
[Top][All Lists]
Advanced

[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;
            }




reply via email to

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