1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-12-24 17:51:17 +03:00
1998-03-14 11:47  H.J. Lu  <hjl@gnu.org>

	* elf/dl-close.c (_dl_close): Stop unmapping the segments after
	unmapping the last loaded segment.

1998-03-14 15:54  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in: Set base_os for Irix6.
	Correct test for .weakext.

1998-03-14  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* elf/dl-deps.c (_dl_map_object_deps): Add first parameter
	(new_line) to _dl_debug_message call.

	* locale/programs/linereader.c (lr_token): Return EOF token at EOF.
This commit is contained in:
Ulrich Drepper
1998-03-14 16:08:16 +00:00
parent 76fbcfdd66
commit f802accba4
4 changed files with 31 additions and 8 deletions

View File

@@ -80,6 +80,7 @@ _dl_close (struct link_map *map)
/* That was the last reference, and this was a dlopen-loaded
object. We can unmap it. */
const ElfW(Phdr) *ph;
const ElfW(Phdr) *eph;
if (imap->l_info[DT_FINI])
/* Call its termination function. */
@@ -99,9 +100,14 @@ _dl_close (struct link_map *map)
_dl_global_scope_end[1] = NULL;
}
/* Find the first entry specifying a load command. We have
to determine this now since the table itself is also loaded. */
for (eph = imap->l_phdr; eph < imap->l_phdr + imap->l_phnum; ++eph)
if (eph->p_type == PT_LOAD)
break;
/* Unmap the segments. */
for (ph = imap->l_phdr + (imap->l_phnum - 1);
ph >= imap->l_phdr; --ph)
for (ph = imap->l_phdr + (imap->l_phnum - 1); ph >= eph; --ph)
if (ph->p_type == PT_LOAD)
{
ElfW(Addr) mapstart = ph->p_vaddr & ~(ph->p_align - 1);