* sysdeps/mach/hurd/i386/init-first.c (init): Don't set __environ
authorRoland McGrath <roland@gnu.org>
Mon, 3 Apr 2000 17:13:51 +0000 (17:13 +0000)
committerRoland McGrath <roland@gnu.org>
Mon, 3 Apr 2000 17:13:51 +0000 (17:13 +0000)
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.

ChangeLog
elf/dl-deps.c
resolv/Makefile
sysdeps/i386/dl-machine.h

index 687aa88..a9eb4c0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
index dc372e6..899692e 100644 (file)
@@ -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.  */
index e471b31..260214b 100644 (file)
@@ -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
index 5220d92..3082d4d 100644 (file)
@@ -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\