diff options
author | Mike Frysinger <vapier@gentoo.org> | 2013-08-26 00:21:26 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2013-08-27 15:47:13 -0400 |
commit | 3b813b29653a3ebfd78c2529127a9967d8f2857d (patch) | |
tree | bb6c6ae204f8d88666e501c7732c7bf6115b4761 /dlfcn/dlfcn.h | |
parent | Clean up h_errno declaration to use __thread unconditionally. (diff) | |
download | glibc-3b813b29653a3ebfd78c2529127a9967d8f2857d.tar.gz glibc-3b813b29653a3ebfd78c2529127a9967d8f2857d.tar.bz2 glibc-3b813b29653a3ebfd78c2529127a9967d8f2857d.zip |
[BZ #15897] dlfcn: do not mark dlopen/dlclose as leaf functions
Since the dlopen funcs might invoke a constructor that calls a func
that is in the same compilation unit as the caller, we cannot mark
them as leaf funcs.
Similarly, dlclose might invoke a destructor that calls a func that
is in the same compilation unit as the caller.
URL: https://sourceware.org/bugzilla/show_bug.cgi?id=15897
Reportedy-by: Fabrice Bauzac <libnoon@gmail.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'dlfcn/dlfcn.h')
-rw-r--r-- | dlfcn/dlfcn.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/dlfcn/dlfcn.h b/dlfcn/dlfcn.h index 241b554165..1ed47b1d1e 100644 --- a/dlfcn/dlfcn.h +++ b/dlfcn/dlfcn.h @@ -53,11 +53,11 @@ __BEGIN_DECLS /* Open the shared object FILE and map it in; return a handle that can be passed to `dlsym' to get symbol values from it. */ -extern void *dlopen (const char *__file, int __mode) __THROW; +extern void *dlopen (const char *__file, int __mode) __THROWNL; /* Unmap and close a shared object opened by `dlopen'. The handle cannot be used again after calling `dlclose'. */ -extern int dlclose (void *__handle) __THROW __nonnull ((1)); +extern int dlclose (void *__handle) __THROWNL __nonnull ((1)); /* Find the run-time address in the shared object HANDLE refers to of the symbol called NAME. */ @@ -66,7 +66,7 @@ extern void *dlsym (void *__restrict __handle, #ifdef __USE_GNU /* Like `dlopen', but request object to be allocated in a new namespace. */ -extern void *dlmopen (Lmid_t __nsid, const char *__file, int __mode) __THROW; +extern void *dlmopen (Lmid_t __nsid, const char *__file, int __mode) __THROWNL; /* Find the run-time address in the shared object HANDLE refers to of the symbol called NAME with VERSION. */ |