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/rtld.c | |
parent | 421f82e5cc8f81ab003247d771bcecbad799be85 (diff) | |
download | glibc-273d56ce89f26233cb7a703c542d2732adbea87d.tar.gz glibc-273d56ce89f26233cb7a703c542d2732adbea87d.tar.xz glibc-273d56ce89f26233cb7a703c542d2732adbea87d.zip |
(__data_start): Define this symbol as the first thing in .data.
Diffstat (limited to 'elf/rtld.c')
-rw-r--r-- | elf/rtld.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/elf/rtld.c b/elf/rtld.c index 0605336603..85f258a948 100644 --- a/elf/rtld.c +++ b/elf/rtld.c @@ -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 |