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 | 7f9d00341057eb80b43fa83956b8d7798b4dabea (diff) | |
download | glibc-3b813b29653a3ebfd78c2529127a9967d8f2857d.tar.gz glibc-3b813b29653a3ebfd78c2529127a9967d8f2857d.tar.xz 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. */ |