summary refs log tree commit diff
path: root/elf/multiload.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-08-15 07:06:23 +0000
committerUlrich Drepper <drepper@redhat.com>2000-08-15 07:06:23 +0000
commit07a3d63e524f13dd09e14adb0ac2623f6600401d (patch)
tree7a19ce309262c7d2d7fa26ad15df1aeaa969b9f4 /elf/multiload.c
parentb8fd550293431d4df42b281fc868ef0ab80e822b (diff)
downloadglibc-07a3d63e524f13dd09e14adb0ac2623f6600401d.tar.gz
glibc-07a3d63e524f13dd09e14adb0ac2623f6600401d.tar.xz
glibc-07a3d63e524f13dd09e14adb0ac2623f6600401d.zip
Update.
2000-08-15  Ulrich Drepper  <drepper@redhat.com>

	* elf/multiload.c: Add mtrace call.  Call dlclose for all handles and
	free wd.
	* elf/dl-deps.c (_dl_map_object_deps): Don't allocate needed list if
	there is already one.

	* elf/dl-close.c: Pretty print.
Diffstat (limited to 'elf/multiload.c')
-rw-r--r--elf/multiload.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/elf/multiload.c b/elf/multiload.c
index 724c1ed562..3727d97f6a 100644
--- a/elf/multiload.c
+++ b/elf/multiload.c
@@ -1,5 +1,6 @@
 #include <dlfcn.h>
 #include <errno.h>
+#include <mcheck.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -16,6 +17,8 @@ main (void)
   char *base;
   char *buf;
 
+  mtrace ();
+
   /* Change to the binary directory.  */
   if (chdir (OBJDIR) != 0)
     {
@@ -68,6 +71,29 @@ main (void)
       exit (EXIT_FAILURE);
     }
 
+  if (dlclose (a) != 0)
+    {
+      puts ("closing `a' failed");
+      exit (EXIT_FAILURE);
+    }
+  if (dlclose (b) != 0)
+    {
+      puts ("closing `a' failed");
+      exit (EXIT_FAILURE);
+    }
+  if (dlclose (c) != 0)
+    {
+      puts ("closing `a' failed");
+      exit (EXIT_FAILURE);
+    }
+  if (dlclose (d) != 0)
+    {
+      puts ("closing `a' failed");
+      exit (EXIT_FAILURE);
+    }
+
+  free (wd);
+
   return 0;
 }