aboutsummaryrefslogtreecommitdiff
path: root/elf/link.h
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1995-05-08 09:11:25 +0000
committerRoland McGrath <roland@gnu.org>1995-05-08 09:11:25 +0000
commit421f82e5cc8f81ab003247d771bcecbad799be85 (patch)
tree6d2e888aa32ba05854b1bd793b903cd0eb755bc4 /elf/link.h
parent0fb807c1dbb08de4408c440c2db490b52bd16f57 (diff)
downloadglibc-421f82e5cc8f81ab003247d771bcecbad799be85.zip
glibc-421f82e5cc8f81ab003247d771bcecbad799be85.tar.gz
glibc-421f82e5cc8f81ab003247d771bcecbad799be85.tar.bz2
Sat May 6 11:06:47 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* Makeconfig (+gccwarn): Add -Winline. * hurd/hurdsig.c (_hurd_internal_post_signal): If SS->context is set, avoid abort_rpcs, and use reply and intr ports saved in SS->context. * sysdeps/mach/hurd/i386/trampoline.c: Don't set SS->intr_port from SS->context. Don't clear SS->context. * sysdeps/mach/hurd/i386/sigreturn.c: Don't set SS->intr_port when setting SS->context. If msg_sig_post returns, re-lock and clear SS->context. Fri May 5 10:37:09 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> * mach/Makefile (errsystems.c): Comment out generation rule. * sysdeps/mach/_strerror.c: Consider a system unknown if its bad_sub member is null. * mach/mig-alloc.c: Add weak alias to non-__ name.
Diffstat (limited to 'elf/link.h')
-rw-r--r--elf/link.h26
1 files changed, 17 insertions, 9 deletions
diff --git a/elf/link.h b/elf/link.h
index 7b999dc..66de6d9 100644
--- a/elf/link.h
+++ b/elf/link.h
@@ -131,17 +131,23 @@ extern void _dl_sysdep_fatal (const char *string, ...)
extern int _dl_secure;
/* This function is called by all the internal dynamic linker functions
- when they encounter an error. ERRCODE is either an `errno' code
- or zero; ERRSTRING is a string describing the specific problem. */
+ when they encounter an error. ERRCODE is either an `errno' code or
+ zero; OBJECT is the name of the problematical shared object, or null if
+ it is a general problem; ERRSTRING is a string describing the specific
+ problem. */
-extern void _dl_signal_error (int errcode, const char *errstring)
+extern void _dl_signal_error (int errcode,
+ const char *object,
+ const char *errstring)
__attribute__ ((__noreturn__));
/* 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 the string passed to _dl_signal_error, and the error code passed
- is the return value. */
-extern int _dl_catch_error (const char **errstring, void (*operate) (void));
+ error, *ERRSTRING is set to null. If there is an error, *ERRSTRING and
+ *OBJECT are set to the strings passed to _dl_signal_error, and the error
+ code passed is the return value. */
+extern int _dl_catch_error (const char **errstring,
+ const char **object,
+ void (*operate) (void));
/* Helper function for <dlfcn.h> functions. Runs the OPERATE function via
@@ -166,10 +172,12 @@ extern void _dl_setup_hash (struct link_map *map);
referred to by UNDEF. *SYM is the symbol table entry containing the
reference; it is replaced with the defining symbol, and the base load
address of the defining object is returned. SYMBOL_SCOPE is the head of
- the chain used for searching. */
+ the chain used for searching. REFERENCE_NAME should name the object
+ containing the reference; it is used in error messages. */
extern Elf32_Addr _dl_lookup_symbol (const char *undef,
const Elf32_Sym **sym,
- struct link_map *symbol_scope);
+ struct link_map *symbol_scope,
+ const char *reference_name);
/* List of objects currently loaded. */