From d6e855d810730193280276a2d30584437e2abf4d Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Thu, 15 Oct 2015 14:13:37 -0700 Subject: [PATCH] Mark _dl_catch_error hidden Since _dl_catch_error is only used internally in ld.so, it should be declared in sysdeps/generic/ldsodefs.h, not include/dlfcn.h and it can be made hidden. [BZ #19122] * include/dlfcn.h (_dl_catch_error): Moved to ... * sysdeps/generic/ldsodefs.h (_dl_catch_error): Add attribute_hidden. --- ChangeLog | 4 ++++ include/dlfcn.h | 13 ------------- sysdeps/generic/ldsodefs.h | 12 ++++++++++++ 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index b93c0a80ed..110d6706fe 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,10 @@ 2015-10-15 H.J. Lu [BZ #19122] + * include/dlfcn.h (_dl_catch_error): Moved to ... + * sysdeps/generic/ldsodefs.h (_dl_catch_error): Add + attribute_hidden. + * sysdeps/generic/_itoa.h (_itoa): Add attribute_hidden. (_itoa_word): Likewise. diff --git a/include/dlfcn.h b/include/dlfcn.h index 0ce0af5276..2524292ebc 100644 --- a/include/dlfcn.h +++ b/include/dlfcn.h @@ -71,19 +71,6 @@ extern void *_dl_vsym (void *handle, const char *name, const char *version, void *who) internal_function; -/* Call OPERATE, catching errors from `dl_signal_error'. If there is no - error, *ERRSTRING is set to null. If there is an error, *ERRSTRING is - set to a string constructed from the strings passed to _dl_signal_error, - and the error code passed is the return value and *OBJNAME is set to - the object name which experienced the problems. ERRSTRING if nonzero - points to a malloc'ed string which the caller has to free after use. - ARGS is passed as argument to OPERATE. MALLOCEDP is set to true only - if the returned string is allocated using the libc's malloc. */ -extern int _dl_catch_error (const char **objname, const char **errstring, - bool *mallocedp, void (*operate) (void *), - void *args) - internal_function; - /* Helper function for functions. Runs the OPERATE function via _dl_catch_error. Returns zero for success, nonzero for failure; and arranges for `dlerror' to return the error details. diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h index bb1b3ed7d2..a8caf47bc3 100644 --- a/sysdeps/generic/ldsodefs.h +++ b/sysdeps/generic/ldsodefs.h @@ -738,6 +738,18 @@ extern void _dl_receive_error (receiver_fct fct, void (*operate) (void *), void *args) internal_function attribute_hidden; +/* Call OPERATE, catching errors from `dl_signal_error'. If there is no + error, *ERRSTRING is set to null. If there is an error, *ERRSTRING is + set to a string constructed from the strings passed to _dl_signal_error, + and the error code passed is the return value and *OBJNAME is set to + the object name which experienced the problems. ERRSTRING if nonzero + points to a malloc'ed string which the caller has to free after use. + ARGS is passed as argument to OPERATE. MALLOCEDP is set to true only + if the returned string is allocated using the libc's malloc. */ +extern int _dl_catch_error (const char **objname, const char **errstring, + bool *mallocedp, void (*operate) (void *), + void *args) + internal_function attribute_hidden; /* Open the shared object NAME and map in its segments. LOADER's DT_RPATH is used in searching for NAME.