aboutsummaryrefslogtreecommitdiff
path: root/include/dlfcn.h
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2021-06-02 07:32:20 +0200
committerFlorian Weimer <fweimer@redhat.com>2021-06-02 09:06:10 +0200
commita23c28ec0d1cd67d25972181f613ef6dbfe4e299 (patch)
treea6dd4e7c1a2ebb65af836b87e8b441ae6ece357a /include/dlfcn.h
parentc44838ebf8b8da0795d56e05b477c5d2b37b4a19 (diff)
downloadglibc-a23c28ec0d1cd67d25972181f613ef6dbfe4e299.zip
glibc-a23c28ec0d1cd67d25972181f613ef6dbfe4e299.tar.gz
glibc-a23c28ec0d1cd67d25972181f613ef6dbfe4e299.tar.bz2
dlfcn: Move dlerror into libc
The symbol was moved using scripts/move-symbol-to-libc.py. There is a minor functionality enhancement: dlerror now sets errno if it was set as part of the exception. (This is the result of using %m in asprintf, to avoid the strerror PLT call.) The previous errno value upon function return was unpredictable. Documenting this as a feature is premature; we need to make sure that the error codes are meaningful when they are set by the dynamic loader. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Diffstat (limited to 'include/dlfcn.h')
-rw-r--r--include/dlfcn.h8
1 files changed, 3 insertions, 5 deletions
diff --git a/include/dlfcn.h b/include/dlfcn.h
index a8d48bd..a92b2ae 100644
--- a/include/dlfcn.h
+++ b/include/dlfcn.h
@@ -96,8 +96,8 @@ extern void *_dl_vsym (void *handle, const char *name, const char *version,
_dl_catch_error. Returns zero for success, nonzero for failure; and
arranges for `dlerror' to return the error details.
ARGS is passed as argument to OPERATE. */
-extern int _dlerror_run (void (*operate) (void *), void *args)
- attribute_hidden;
+extern int _dlerror_run (void (*operate) (void *), void *args);
+libc_hidden_proto (_dlerror_run)
#ifdef SHARED
# define DL_CALLER_DECL /* Nothing */
@@ -124,7 +124,7 @@ struct dlfcn_hook
};
extern struct dlfcn_hook *_dlfcn_hook;
-libdl_hidden_proto (_dlfcn_hook)
+libc_hidden_proto (_dlfcn_hook)
extern void *__dlopen (const char *file, int mode DL_CALLER_DECL)
attribute_hidden;
@@ -137,8 +137,6 @@ extern void *__dlsym (void *handle, const char *name DL_CALLER_DECL)
extern void *__dlvsym (void *handle, const char *name, const char *version
DL_CALLER_DECL)
attribute_hidden;
-extern char *__dlerror (void)
- attribute_hidden;
extern int __dladdr (const void *address, Dl_info *info)
attribute_hidden;
extern int __dladdr1 (const void *address, Dl_info *info,