diff options
author | Ulrich Drepper <drepper@redhat.com> | 2007-01-15 20:48:56 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2007-01-15 20:48:56 +0000 |
commit | 4e35ef2c710dfefe96a491d133b5a53414e9a5c2 (patch) | |
tree | d9219ecd731de733953c1224356ecbe068b35e7f /elf/dl-sym.c | |
parent | fb453d084d86f22718b60422a135f7c70e47f0ac (diff) | |
download | glibc-4e35ef2c710dfefe96a491d133b5a53414e9a5c2.tar glibc-4e35ef2c710dfefe96a491d133b5a53414e9a5c2.tar.gz glibc-4e35ef2c710dfefe96a491d133b5a53414e9a5c2.tar.bz2 glibc-4e35ef2c710dfefe96a491d133b5a53414e9a5c2.zip |
* sysdeps/generic/ldsodefs.h: Define DL_LOOKUP_SCOPE_LOCK.
* elf/dl-lookup.c (add_dependency): If scope map is locked, unlock
it before getting dl_load_lock and then relock.
(_dl_lookup_symbol_x): Pass flags to add_dependency.
When rerunning _dl_lookup_symbol_x, compute symbol_scope again in
case we unlocked the scope.
* elf/dl-runtime.c (_dl_fixup): Pass DL_LOOKUP_SCOPE_LOCK to
_dl_lookup_symbol_x in case we locked the scope.
(_dl_profile_fixup): Likewise.
* elf/dl-sym.c (do_sym): In flags passed to call_dl_lookup, also
set DL_LOOKUP_SCOPE_LOCK.
Diffstat (limited to 'elf/dl-sym.c')
-rw-r--r-- | elf/dl-sym.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/elf/dl-sym.c b/elf/dl-sym.c index 88a5adb0d5..1c3ab5c877 100644 --- a/elf/dl-sym.c +++ b/elf/dl-sym.c @@ -1,5 +1,5 @@ /* Look up a symbol in a shared object loaded by `dlopen'. - Copyright (C) 1999,2000,2001,2002,2004,2006 Free Software Foundation, Inc. + Copyright (C) 1999-2002,2004,2006,2007 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -126,7 +126,7 @@ do_sym (void *handle, const char *name, void *who, args.name = name; args.map = match; args.vers = vers; - args.flags = flags | DL_LOOKUP_ADD_DEPENDENCY; + args.flags = flags | DL_LOOKUP_ADD_DEPENDENCY | DL_LOOKUP_SCOPE_LOCK; args.refp = &ref; const char *objname; |