From 273d56ce89f26233cb7a703c542d2732adbea87d Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Tue, 9 May 1995 07:03:38 +0000 Subject: (__data_start): Define this symbol as the first thing in .data. --- elf/dl-error.c | 1 + elf/dlsym.c | 2 +- elf/elf.h | 2 +- elf/rtld.c | 24 ++++++++++++++++++++++++ 4 files changed, 27 insertions(+), 2 deletions(-) (limited to 'elf') diff --git a/elf/dl-error.c b/elf/dl-error.c index 5f8e4e4088..acb21a0414 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 3e10812da8..dbd617ec9a 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. */ diff --git a/elf/elf.h b/elf/elf.h index 40c0cd8aab..433aa479e7 100644 --- a/elf/elf.h +++ b/elf/elf.h @@ -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. */ 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 -- cgit v1.2.3