diff options
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | elf/dl-close.c | 8 | ||||
-rw-r--r-- | elf/dl-deps.c | 3 | ||||
-rw-r--r-- | elf/multiload.c | 26 | ||||
-rw-r--r-- | localedata/ChangeLog | 6 |
5 files changed, 47 insertions, 5 deletions
@@ -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 |