diff options
author | Roland McGrath <roland@gnu.org> | 2000-04-03 17:13:51 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2000-04-03 17:13:51 +0000 |
commit | c6d80202830057548b130381c214ddb383fccd5d (patch) | |
tree | 1b5cc503acb22f56e94fa86a9c415a32b914988b | |
parent | 9129b9874db71c9325ee0772810fee8a5e4a82f8 (diff) | |
download | glibc-c6d80202830057548b130381c214ddb383fccd5d.zip glibc-c6d80202830057548b130381c214ddb383fccd5d.tar.gz glibc-c6d80202830057548b130381c214ddb383fccd5d.tar.bz2 |
* sysdeps/mach/hurd/i386/init-first.c (init): Don't set __environ
here, before we might move the stack.
(posixland_init): Set __libc_argc, __libc_argc, and __environ here.
(init1): And not here.
* sysdeps/i386/dl-machine.h (RTLD_START): Fix code broken by last
change, to restore argc value in call-clobbered register after
RTLD_START_SPECIAL_INIT, which will contain a call.
* elf/dl-deps.c (_dl_map_object_deps): Fix size calculations for
allocating and initializing L->l_initfini.
* resolv/Makefile (headers): Add bits/netdb.h, so it gets installed.
-rw-r--r-- | ChangeLog | 16 | ||||
-rw-r--r-- | elf/dl-deps.c | 5 | ||||
-rw-r--r-- | resolv/Makefile | 4 | ||||
-rw-r--r-- | sysdeps/i386/dl-machine.h | 1 |
4 files changed, 22 insertions, 4 deletions
@@ -1,3 +1,19 @@ +2000-04-03 Roland McGrath <roland@baalperazim.frob.com> + + * sysdeps/mach/hurd/i386/init-first.c (init): Don't set __environ + here, before we might move the stack. + (posixland_init): Set __libc_argc, __libc_argc, and __environ here. + (init1): And not here. + + * sysdeps/i386/dl-machine.h (RTLD_START): Fix code broken by last + change, to restore argc value in call-clobbered register after + RTLD_START_SPECIAL_INIT, which will contain a call. + + * elf/dl-deps.c (_dl_map_object_deps): Fix size calculations for + allocating and initializing L->l_initfini. + + * resolv/Makefile (headers): Add bits/netdb.h, so it gets installed. + 2000-04-03 Ulrich Drepper <drepper@redhat.com> * elf/dl-load.c (_dl_init_paths): Use (void*) -1 to signal non-existing diff --git a/elf/dl-deps.c b/elf/dl-deps.c index dc372e6..899692e 100644 --- a/elf/dl-deps.c +++ b/elf/dl-deps.c @@ -449,12 +449,11 @@ _dl_map_object_deps (struct link_map *map, { needed[nneeded++] = NULL; - l->l_initfini = - (struct link_map **) malloc (nneeded * sizeof (struct link_map)); + l->l_initfini = malloc (nneeded * sizeof needed[0]); if (l->l_initfini == NULL) _dl_signal_error (ENOMEM, map->l_name, "cannot allocate dependency list"); - memcpy (l->l_initfini, needed, nneeded * sizeof (struct link_map)); + memcpy (l->l_initfini, needed, nneeded * sizeof needed[0]); } /* If we have no auxiliary objects just go on to the next map. */ diff --git a/resolv/Makefile b/resolv/Makefile index e471b31..260214b 100644 --- a/resolv/Makefile +++ b/resolv/Makefile @@ -21,7 +21,9 @@ # subdir := resolv -headers := resolv.h netdb.h arpa/nameser.h arpa/nameser_compat.h \ +headers := resolv.h \ + netdb.h bits/netdb.h \ + arpa/nameser.h arpa/nameser_compat.h \ sys/bitypes.h distribute := ../conf/portability.h mapv4v6addr.h mapv4v6hostent.h \ Banner res_hconf.h res_debug.h diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h index 5220d92..3082d4d 100644 --- a/sysdeps/i386/dl-machine.h +++ b/sysdeps/i386/dl-machine.h @@ -233,6 +233,7 @@ _dl_start_user:\n\ " RTLD_START_SPECIAL_INIT "\n\ # Load the parameters again.\n\ # (eax, edx, ecx, *--esp) = (_dl_loaded, argc, argv, envp)\n\ + movl (%esp), %edx\n\ movl _dl_loaded@GOT(%ebx), %esi\n\ leal 8(%esp,%edx,4), %eax\n\ leal 4(%esp), %ecx\n\ |