aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--elf/dl-close.c8
-rw-r--r--elf/dl-deps.c3
-rw-r--r--elf/multiload.c26
-rw-r--r--localedata/ChangeLog6
5 files changed, 47 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 8fcc19effc..e89c8bd5e8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+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.
+
2000-08-14 Ulrich Drepper <drepper@redhat.com>
* sysdeps/posix/ttyname.c: Make name variable from getttyname function
diff --git a/elf/dl-close.c b/elf/dl-close.c
index 99d52d02e2..6bdedd1b80 100644
--- a/elf/dl-close.c
+++ b/elf/dl-close.c
@@ -189,10 +189,10 @@ _dl_close (void *_map)
/* Remove the searchlists. */
if (imap != map)
{
- if (imap->l_searchlist.r_list != NULL)
- free (imap->l_searchlist.r_list);
- else if (imap->l_initfini != NULL)
- free (imap->l_initfini);
+ if (imap->l_searchlist.r_list != NULL)
+ free (imap->l_searchlist.r_list);
+ else if (imap->l_initfini != NULL)
+ free (imap->l_initfini);
}
if (imap->l_phdr_allocated)
diff --git a/elf/dl-deps.c b/elf/dl-deps.c
index 5bc048edb9..4fc2943c14 100644
--- a/elf/dl-deps.c
+++ b/elf/dl-deps.c
@@ -201,7 +201,8 @@ _dl_map_object_deps (struct link_map *map,
/* Allocate a temporary record to contain the references to the
dependencies of this object. */
- if (l->l_searchlist.r_list == NULL && l != map && l->l_ldnum > 0)
+ if (l->l_searchlist.r_list == NULL && l->l_initfini == NULL
+ && l != map && l->l_ldnum > 0)
needed = (struct link_map **) alloca (l->l_ldnum
* sizeof (struct link_map *));
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;
}
diff --git a/localedata/ChangeLog b/localedata/ChangeLog
index 51b10428b9..5d3e847c3b 100644
--- a/localedata/ChangeLog
+++ b/localedata/ChangeLog
@@ -1,3 +1,9 @@
+2000-08-14 Ulrich Drepper <drepper@redhat.com>
+
+ * locales/iso14651_t1: Rearrange cyrillic and greek sections to
+ separate uppercase from non-uppercase characters to enable correct
+ handling in range expressions.
+
2000-08-13 Ulrich Drepper <drepper@redhat.com>
* Makefile (install-locales): Use --prefix option of localedef to