aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2013-08-26 00:21:26 -0400
committerMike Frysinger <vapier@gentoo.org>2013-08-27 15:47:13 -0400
commit3b813b29653a3ebfd78c2529127a9967d8f2857d (patch)
treebb6c6ae204f8d88666e501c7732c7bf6115b4761 /dlfcn/dlfcn.h
parentClean up h_errno declaration to use __thread unconditionally. (diff)
downloadglibc-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.h6
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. */