]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
* libltdl/ltdl.h (lt_dlpreopen_default): reverted to a macro
authorAlexandre Oliva <oliva@dcc.unicamp.br>
Sun, 17 Jan 1999 04:15:06 +0000 (04:15 +0000)
committerAlexandre Oliva <aoliva@redhat.com>
Sun, 17 Jan 1999 04:15:06 +0000 (04:15 +0000)
without arguments, that calls lt_dlpreopen_default_ with
lt_dlpreloaded_symbols
* libltdl/ltdl.c (lt_dlpreopen_default_): renamed from
lt_dlpreopen_default

ChangeLog
libltdl/ltdl.c
libltdl/ltdl.h

index 8c061b51db8cd040e838eecf3c041d3f1a3e0af1..c84c541a2acbb5c5e4092bd93d445a1d9127e48a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+1999-01-17  Alexandre Oliva  <oliva@dcc.unicamp.br>
+
+       * libltdl/ltdl.h (lt_dlpreopen_default): reverted to a macro
+       without arguments, that calls lt_dlpreopen_default_ with
+       lt_dlpreloaded_symbols
+       * libltdl/ltdl.c (lt_dlpreopen_default_): renamed from
+       lt_dlpreopen_default
+
 1999-01-15  Gary V. Vaughan  <gvaughan@oranda.demon.co.uk>
 
        From Andrey Slepuhin <pooh@msu.ru>
index 0e93215f61c294d055b773f8ef1bd7dc27415f5f..05057009b6fa11388d9639c424deb06a198544f0 100644 (file)
@@ -697,7 +697,7 @@ lt_dlpreopen (preloaded)
 }
 
 int
-lt_dlpreopen_default (preloaded)
+lt_dlpreopen_default_ (preloaded)
        const lt_dlsymlist *preloaded;
 {
 #if HAVE_DLPREOPEN
@@ -792,7 +792,6 @@ tryall_dlopen (handle, filename)
        return 0;
 }
 
-#undef FILENAME_MAX
 /* max. filename length */
 #ifndef FILENAME_MAX
 #define FILENAME_MAX 1024
@@ -808,6 +807,12 @@ find_module (handle, dir, libdir, dlname, old_name)
 {
        char    fullname[FILENAME_MAX];
        
+       /* search for old library first; if it was dlpreopened, we
+           want the preopened version of it, even if a dlopenable
+           module is available */
+       if (*old_name && tryall_dlopen(handle, old_name) == 0)
+               return 0;
+
        /* search a module */
        if (*dlname) {
                /* try to open the installed module */
@@ -833,8 +838,6 @@ find_module (handle, dir, libdir, dlname, old_name)
                                return 0;
                }
        }
-       if (*old_name && tryall_dlopen(handle, old_name) == 0)
-               return 0;
        last_error = file_not_found_error;
        return 1;
 }
@@ -1213,9 +1216,9 @@ lt_dlsym (handle, symbol)
        /* otherwise try "symbol" */
        if (handle->type->sym_prefix) {
                strcpy(sym, handle->type->sym_prefix);
-               strcat(sym, handle->name);
+               strcat(sym, symbol);
        } else 
-               strcpy(sym, handle->name);
+               strcpy(sym, symbol);
        address = handle->type->find_sym(handle, sym);
        if (sym != lsym)
                free(sym);
index 18ccbc8d9d1593c192b6f158b2cd84dcdac1227a..c792df90cbc030d406bd076a31b5a7e0508010f9 100644 (file)
@@ -76,7 +76,7 @@ typedef struct {
 __BEGIN_DECLS
 _LTDLL_EXTERN int lt_dlinit __P((void));
 _LTDLL_EXTERN int lt_dlpreopen __P((const lt_dlsymlist *preloaded));
-_LTDLL_EXTERN int lt_dlpreopen_default __P((const lt_dlsymlist *preloaded));
+_LTDLL_EXTERN int lt_dlpreopen_default_ __P((const lt_dlsymlist *preloaded));
 _LTDLL_EXTERN int lt_dlexit __P((void));
 _LTDLL_EXTERN lt_dlhandle lt_dlopen __P((const char *filename));
 _LTDLL_EXTERN int lt_dlclose __P((lt_dlhandle handle));
@@ -85,7 +85,7 @@ _LTDLL_EXTERN const char *lt_dlerror __P((void));
 _LTDLL_EXTERN const char *lt_dlsearchpath __P((const char *search_path));
 
 extern const lt_dlsymlist lt_preloaded_symbols[];
-
+#define lt_dlpreopen_default() lt_dlpreopen_default_(lt_preloaded_symbols)
 __END_DECLS
 
 #endif /* !_LTDL_H_ */