aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog19
-rw-r--r--elf/dl-libc.c19
2 files changed, 26 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index 08e96a597e..2ea7c47033 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2002-11-19 Ulrich Drepper <drepper@redhat.com>
+
+ * include/dlfcn.h: __libc_dlopen is now a macro calling
+ __libc_dlopen_mode with the extra parameter RTLD_LAZY.
+ (__libc_dlopen_mode): New prototype.
+ * elf/dl-libc.c (__libc_dlopen_mode): Renamed from __libc_dlopen. Add
+ new parameter. Store new parameter in mode field of structure passed
+ to do_dlopen.
+ (struct do_dlopen_args): Add new field mode.
+ (do_dlopen): Pass mode from parameter structure to _dl_open.
+
2002-11-11 Randolf Chung <tausq@debian.org>
* sysdeps/unix/sysv/linux/hppa/bits/fcntl.h [__USE_FILE_OFFSET64]
@@ -16,8 +27,8 @@
from gcc-3.0 era for backwards compatibility.
* sysdeps/unix/sysv/linux/configure: Regenerate.
- * sysdeps/unix/sysv/linux/hppa/sys/ucontext.h:
- Define mcontext_t as a sigcontext.
+ * sysdeps/unix/sysv/linux/hppa/sys/ucontext.h:
+ Define mcontext_t as a sigcontext.
2002-11-18 Roland McGrath <roland@redhat.com>
@@ -139,8 +150,8 @@
2002-11-11 Paul Eggert <eggert@twinsun.com>
- * manual/crypt.texi (Cryptographic Functions): Mention that
- the MD5 one-way algorithm is compatible with BSD's.
+ * manual/crypt.texi (Cryptographic Functions): Mention that
+ the MD5 one-way algorithm is compatible with BSD's.
2002-11-11 Isamu Hasegawa <isamu@yamato.ibm.com>
diff --git a/elf/dl-libc.c b/elf/dl-libc.c
index d69e49f359..1810b13074 100644
--- a/elf/dl-libc.c
+++ b/elf/dl-libc.c
@@ -54,6 +54,8 @@ struct do_dlopen_args
{
/* Argument to do_dlopen. */
const char *name;
+ /* Opening mode. */
+ int mode;
/* Return from do_dlopen. */
struct link_map *map;
@@ -75,7 +77,7 @@ do_dlopen (void *ptr)
{
struct do_dlopen_args *args = (struct do_dlopen_args *) ptr;
/* Open and relocate the shared object. */
- args->map = _dl_open (args->name, RTLD_LAZY, NULL);
+ args->map = _dl_open (args->name, args->mode, NULL);
}
static void
@@ -97,29 +99,30 @@ do_dlclose (void *ptr)
/* ... and these functions call dlerror_run. */
void *
-__libc_dlopen (const char *__name)
+__libc_dlopen_mode (const char *name, int mode)
{
struct do_dlopen_args args;
- args.name = __name;
+ args.name = name;
+ args.mode = mode;
return (dlerror_run (do_dlopen, &args) ? NULL : (void *) args.map);
}
void *
-__libc_dlsym (void *__map, const char *__name)
+__libc_dlsym (void *map, const char *name)
{
struct do_dlsym_args args;
- args.map = __map;
- args.name = __name;
+ args.map = map;
+ args.name = name;
return (dlerror_run (do_dlsym, &args) ? NULL
: (void *) (DL_SYMBOL_ADDRESS (args.loadbase, args.ref)));
}
int
-__libc_dlclose (void *__map)
+__libc_dlclose (void *map)
{
- return dlerror_run (do_dlclose, __map);
+ return dlerror_run (do_dlclose, map);
}