about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2000-04-03 17:13:51 +0000
committerRoland McGrath <roland@gnu.org>2000-04-03 17:13:51 +0000
commitc6d80202830057548b130381c214ddb383fccd5d (patch)
tree1b5cc503acb22f56e94fa86a9c415a32b914988b
parent9129b9874db71c9325ee0772810fee8a5e4a82f8 (diff)
downloadglibc-c6d80202830057548b130381c214ddb383fccd5d.tar.gz
glibc-c6d80202830057548b130381c214ddb383fccd5d.tar.xz
glibc-c6d80202830057548b130381c214ddb383fccd5d.zip
* 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--ChangeLog16
-rw-r--r--elf/dl-deps.c5
-rw-r--r--resolv/Makefile4
-rw-r--r--sysdeps/i386/dl-machine.h1
4 files changed, 22 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 687aa8878b..a9eb4c0370 100644
--- 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
diff --git a/elf/dl-deps.c b/elf/dl-deps.c
index dc372e6cd9..899692ee3f 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 e471b3134c..260214b868 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 5220d923b7..3082d4d4e8 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\