mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-07 06:43:00 +03:00
Update.
* elf/dl-iteratephdr.c (__dl_iterate_phdr): Don't skip dynamic linker's map. * elf/rtld.c (dl_main): Initialize l_phdr and l_phnum of of the dynamic linker's map.
This commit is contained in:
@@ -1,5 +1,10 @@
|
|||||||
2003-06-15 Ulrich Drepper <drepper@redhat.com>
|
2003-06-15 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* elf/dl-iteratephdr.c (__dl_iterate_phdr): Don't skip dynamic
|
||||||
|
linker's map.
|
||||||
|
* elf/rtld.c (dl_main): Initialize l_phdr and l_phnum of of the
|
||||||
|
dynamic linker's map.
|
||||||
|
|
||||||
Fix cancellation point handling wrt exception based cleanup.
|
Fix cancellation point handling wrt exception based cleanup.
|
||||||
* io/Makefile: Compile fcntl.c, poll.c, and lockf.c with exceptions.
|
* io/Makefile: Compile fcntl.c, poll.c, and lockf.c with exceptions.
|
||||||
* misc/Makefile: Compile pselect.c, readv.c, writev.c, and usleep.c
|
* misc/Makefile: Compile pselect.c, readv.c, writev.c, and usleep.c
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/* Get loaded objects program headers.
|
/* Get loaded objects program headers.
|
||||||
Copyright (C) 2001, 2002 Free Software Foundation, Inc.
|
Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Jakub Jelinek <jakub@redhat.com>, 2001.
|
Contributed by Jakub Jelinek <jakub@redhat.com>, 2001.
|
||||||
|
|
||||||
@@ -36,9 +36,6 @@ __dl_iterate_phdr (int (*callback) (struct dl_phdr_info *info,
|
|||||||
|
|
||||||
for (l = GL(dl_loaded); l != NULL; l = l->l_next)
|
for (l = GL(dl_loaded); l != NULL; l = l->l_next)
|
||||||
{
|
{
|
||||||
/* Skip the dynamic linker. */
|
|
||||||
if (l->l_phdr == NULL)
|
|
||||||
continue;
|
|
||||||
info.dlpi_addr = l->l_addr;
|
info.dlpi_addr = l->l_addr;
|
||||||
info.dlpi_name = l->l_name;
|
info.dlpi_name = l->l_name;
|
||||||
info.dlpi_phdr = l->l_phdr;
|
info.dlpi_phdr = l->l_phdr;
|
||||||
|
@@ -931,6 +931,13 @@ of this helper program; chances are you did not intend to run this program.\n\
|
|||||||
GL(dl_rtld_map).l_prev = GL(dl_loaded);
|
GL(dl_rtld_map).l_prev = GL(dl_loaded);
|
||||||
++GL(dl_nloaded);
|
++GL(dl_nloaded);
|
||||||
|
|
||||||
|
/* Set up the program header information for the dynamic linker
|
||||||
|
itself. It is needed in the dl_iterate_phdr() callbacks. */
|
||||||
|
ElfW(Ehdr) *rtld_ehdr = (ElfW(Ehdr) *) GL(dl_rtld_map.l_addr);
|
||||||
|
GL(dl_rtld_map).l_phdr = (ElfW(Phdr) *) (GL(dl_rtld_map.l_addr)
|
||||||
|
+ rtld_ehdr->e_phoff);
|
||||||
|
GL(dl_rtld_map).l_phnum = rtld_ehdr->e_phnum;
|
||||||
|
|
||||||
/* We have two ways to specify objects to preload: via environment
|
/* We have two ways to specify objects to preload: via environment
|
||||||
variable and via the file /etc/ld.so.preload. The latter can also
|
variable and via the file /etc/ld.so.preload. The latter can also
|
||||||
be used when security is enabled. */
|
be used when security is enabled. */
|
||||||
|
Reference in New Issue
Block a user