diff options
author | Roland McGrath <roland@gnu.org> | 1995-05-09 07:03:38 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 1995-05-09 07:03:38 +0000 |
commit | 273d56ce89f26233cb7a703c542d2732adbea87d (patch) | |
tree | e489d7e9e6cd644a5d0d85d4b39a8c75692e3633 /elf | |
parent | 421f82e5cc8f81ab003247d771bcecbad799be85 (diff) | |
download | glibc-273d56ce89f26233cb7a703c542d2732adbea87d.zip glibc-273d56ce89f26233cb7a703c542d2732adbea87d.tar.gz glibc-273d56ce89f26233cb7a703c542d2732adbea87d.tar.bz2 |
(__data_start): Define this symbol as the first thing in .data.
Diffstat (limited to 'elf')
-rw-r--r-- | elf/dl-error.c | 1 | ||||
-rw-r--r-- | elf/dlsym.c | 2 | ||||
-rw-r--r-- | elf/elf.h | 2 | ||||
-rw-r--r-- | elf/rtld.c | 24 |
4 files changed, 27 insertions, 2 deletions
diff --git a/elf/dl-error.c b/elf/dl-error.c index 5f8e4e4..acb21a0 100644 --- a/elf/dl-error.c +++ b/elf/dl-error.c @@ -30,6 +30,7 @@ _dl_signal_error (int errcode, const char *errstring) { signalled_errstring = errstring ?: "DYNAMIC LINKER BUG!!!"; + signalled_objname = objname; longjmp (catch_env, errcode ?: -1); } diff --git a/elf/dlsym.c b/elf/dlsym.c index 3e10812..dbd617e 100644 --- a/elf/dlsym.c +++ b/elf/dlsym.c @@ -33,7 +33,7 @@ dlsym (void *handle, const char *name) void doit (void) { const Elf32_Sym *ref = NULL; - value = _dl_lookup_symbol (name, map->l_name, &ref, map); + value = _dl_lookup_symbol (name, &ref, map, map->l_name); } /* Confine the symbol scope to just this map. */ @@ -545,7 +545,7 @@ typedef struct /* Legal values for p_type field of Elf32_Phdr. */ -#define PT_MIPS_REGINFO 0x70000000 /* Regiser usage information */ +#define PT_MIPS_REGINFO 0x70000000 /* Register usage information */ /* Legal values for d_tag field of Elf32_Dyn. */ @@ -261,3 +261,27 @@ void _dl_r_debug_state (void) { } + +#ifndef NDEBUG + +/* Define (weakly) our own assert failure function which doesn't use stdio. + If we are linked into the user program (-ldl), the normal __assert_fail + defn can override this one. */ + +#include "../stdio/_itoa.h" + +void +__assert_fail (const char *assertion, + const char *file, unsigned int line, const char *function) +{ + char buf[64]; + buf[sizeof buf - 1] = '\0'; + _dl_sysdep_fatal ("BUG IN DYNAMIC LINKER ld.so: ", + file, ": ", _itoa (line, buf + sizeof buf - 1, 10, 0), + ": ", function ?: "", function ? ": " : "", + "Assertion `", assertion, "' failed!\n"); + +} +weak_symbol (__assert_fail) + +#endif |