+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>
}
int
-lt_dlpreopen_default (preloaded)
+lt_dlpreopen_default_ (preloaded)
const lt_dlsymlist *preloaded;
{
#if HAVE_DLPREOPEN
return 0;
}
-#undef FILENAME_MAX
/* max. filename length */
#ifndef FILENAME_MAX
#define FILENAME_MAX 1024
{
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 */
return 0;
}
}
- if (*old_name && tryall_dlopen(handle, old_name) == 0)
- return 0;
last_error = file_not_found_error;
return 1;
}
/* 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);
__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));
_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_ */