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.
This commit is contained in:
Ulrich Drepper 2000-08-15 07:06:23 +00:00
parent b8fd550293
commit 07a3d63e52
5 changed files with 47 additions and 5 deletions

View File

@ -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

View File

@ -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)

View File

@ -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 *));

View File

@ -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;
}

View File

@ -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