about summary refs log tree commit diff
path: root/sysdeps/generic
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2015-10-15 14:13:37 -0700
committerH.J. Lu <hjl.tools@gmail.com>2015-10-15 14:13:50 -0700
commitd6e855d810730193280276a2d30584437e2abf4d (patch)
treebced08a2b5295166d4f1a7bf6fea7dcc12bae817 /sysdeps/generic
parenta1afb41193e908668eeac7e3a25a48ac535aff67 (diff)
downloadglibc-d6e855d810730193280276a2d30584437e2abf4d.tar.gz
glibc-d6e855d810730193280276a2d30584437e2abf4d.tar.xz
glibc-d6e855d810730193280276a2d30584437e2abf4d.zip
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.
Diffstat (limited to 'sysdeps/generic')
-rw-r--r--sysdeps/generic/ldsodefs.h12
1 files changed, 12 insertions, 0 deletions
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.