misc fixes
authorroland <roland>
Tue, 9 May 1995 06:24:12 +0000 (06:24 +0000)
committerroland <roland>
Tue, 9 May 1995 06:24:12 +0000 (06:24 +0000)
elf/dl-error.c
elf/dlsym.c
elf/rtld.c

index 5f8e4e4..acb21a0 100644 (file)
@@ -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);
 }
 
index 3e10812..dbd617e 100644 (file)
@@ -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.  */
index 0605336..85f258a 100644 (file)
@@ -261,3 +261,27 @@ void
 _dl_r_debug_state (void)
 {
 }
+\f
+#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