From 8e17ea58173d35e2e5dabfeb9fa5abf2609cfc51 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 10 Jun 2000 04:01:36 +0000 Subject: Update. 2000-06-09 Ulrich Drepper Rewrite error message handling. * elf/dl-deps.c (_dl_map_object_deps): Pass new parameter to _dl_catch_error. * elf/dl-error (struct catch): Add objname member. (_dl_signal_error): Take new parameter with object name. When passing message on simply store object name and duplicate error message. (_dl_catch_error): Take new parameter. Store object name in the place pointed to. * include/dlfcn.h: Adjust _dl_catch_error prototype. * sysdeps/generic/ldsodefs.h: Adjust _dl_signal_error prototype. * elf/dl-libc.c (dlerror_run): Pass new parameter to _dl_catch_error. * elf/dl-open.c (_dl_open): Likewise. * elf/rtld.c (dl_main): Likewise. * elf/dl-close.c: Mark error messages with N_(). * elf/dl-deps.c: Likewise. * elf/dl-error.c: Likewise. * elf/dl-load.c: Likewise. * elf/dl-open.c: Likewise. * elf/dl-reloc.c: Likewise. * elf/dl-support.c: Likewise. * elf/dl-sym.c: Likewise. * elf/dl-version.c: Likewise. * elf/dl-lookup.c: Add comments about problems with error message translations. * elf/dl-reloc.c: Likewise. * elf/dl-version.c: Likewise. --- include/dlfcn.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'include/dlfcn.h') diff --git a/include/dlfcn.h b/include/dlfcn.h index a2398c4c93..ad445aef28 100644 --- a/include/dlfcn.h +++ b/include/dlfcn.h @@ -36,14 +36,15 @@ extern void *_dl_sym (void *handle, const char *name, void *who) 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. ERRSTRING if nonzero + 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. */ -extern int _dl_catch_error (char **errstring, +extern int _dl_catch_error (const char **objname, const char **errstring, void (*operate) (void *), void *args) internal_function; -- cgit v1.2.3