summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog466
-rw-r--r--Makefile2
-rw-r--r--Makerules2
-rw-r--r--elf/Makefile5
-rw-r--r--elf/ldd.bash.in66
-rw-r--r--elf/ldd.sh.in30
-rwxr-xr-xrellns-sh67
-rw-r--r--stdlib/stdlib.h7
-rw-r--r--stdlib/strtol.c79
-rw-r--r--sysdeps/generic/putenv.c55
-rw-r--r--sysdeps/generic/setenv.c92
-rw-r--r--sysdeps/stub/setenv.c19
-rw-r--r--sysdeps/stub/timebits.h49
-rw-r--r--sysdeps/unix/sysv/linux/alpha/timebits.h41
-rw-r--r--sysdeps/unix/sysv/linux/errnos.h30
-rw-r--r--sysdeps/unix/sysv/linux/resourcebits.h186
-rw-r--r--sysdeps/unix/sysv/linux/timebits.h49
-rw-r--r--time/Makefile9
-rw-r--r--time/sys/time.h12
19 files changed, 892 insertions, 374 deletions
diff --git a/ChangeLog b/ChangeLog
index 80d2e3f8cc..765b8bc710 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,41 @@
+Sat Nov  2 01:48:47 1996  Ulrich Drepper  <drepper@cygnus.com>
+
+	* sysdeps/unix/sysv/linux/errnos.h: Move declaration of errno
+	and __errno_location to correct position.
+
+Thu Oct 31 22:51:25 1996  Ulrich Drepper  <drepper@cygnus.com>
+
+	* Makefile (distribute): Add rellns-sh.
+	* rellns-sh: New file.
+	* Makerules (make-link): Use rellns-sh.
+	* time/Makefile ($(installed-localtime-file)): Likewise.
+
+Thu Oct 31 11:33:01 1996  Ulrich Drepper  <drepper@cygnus.com>
+
+	* elf/Makefile ($objpfx)ldd) Substitute $(version) for @VERSION@.
+	(distribute): Add ldd.bash.in.
+	* elf/ldd.sh.in: Process --help and --version parameter.
+	Correct comments.
+	* elf/ldd.bash.in: New file.
+
+	* stdlib/stdlib.h: Add prototype for clearenv.
+	* sysdeps/generic/setenv.c: Add implementation of clearenv.
+	(setenv): Handle __environ == NULL correctly.
+	* sysdeps/stub/setenv.c: Add stub definition for unsetenv and
+	clearenv.
+
+	* sysdeps/generic/putenv.c: Correct layout to fit in libit.
+	* sysdeps/generic/setenv.c: Likewise.
+	* stdlib/strtol.h: Likewise.
+
+	* time/sys/time.h: Define __need_timeval and include <timebits.h>.
+	Remove definition of struct timeval.
+	* sysdeps/stub/timebits.h [__need_timeval]: Define struct timeval
+	using `time_t' for members.
+	* sysdeps/unix/sysv/linux/timebits.h [__need_timeval]: Likewise.
+	* sysdeps/unix/sysv/linux/alpha/timebits.h: New file.  Same
+	as old Linux specific version.
+
 Thu Oct 31 00:01:39 1996  Ulrich Drepper  <drepper@cygnus.com>
 
 	* signal/Makefile (routines): Add sigwait.
@@ -44,7 +82,7 @@ Tue Oct 29 12:37:22 1996  Ulrich Drepper  <drepper@cygnus.com>
 	* string/string.h: Likewise.
 	* time/time.h: Likewise.
 
-	* string/argz.h: Use __const is definitions.
+	* string/argz.h: Use __const in definitions.
 
 	* elf/dlfcn.h: Use __const and __P.  Reformat copyright.
 	* misc/err.h: Likewise.
@@ -83,7 +121,7 @@ Tue Oct 29 12:37:22 1996  Ulrich Drepper  <drepper@cygnus.com>
 
 	* sysdeps/unix/getlogin_r.c: Return ERANGE when buffer is too small.
 
-	* inet/herrno.c: Don't define __h_errno.  Only h_errno otherwise the
+	* inet/herrno.c: Don't define __h_errno, only h_errno otherwise the
 	ELF aliasing creates strange situations.
 	* sysdeps/unix/sysv/linux/errnos.H: Define __set_errno as inline
 	function.
@@ -282,7 +320,7 @@ Mon Oct 21 15:41:59 1996  Ulrich Drepper  <drepper@cygnus.com>
 	* sysdeps/mach/_strerror.c: Likewise.
 
 	* sysdeps/unix/sysv/i386/time.S: Add PSEUDO_END to get
- 	__syscall_error defined..
+	__syscall_error defined.
 
 Sat Oct 19 12:27:50 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
 
@@ -321,7 +359,7 @@ Mon Oct 21 01:32:36 1996  Ulrich Drepper  <drepper@cygnus.com>
 	translation while `_dl_starting_up' is nonzero.
 
 	* elf/dl-deps.c (_dl_map_object_deps): Add new parameter
- 	TRACE_MODE.
+	TRACE_MODE.
 	Pass parameter value to _dl_map_object.
 	* elf/dl-load (_dl_map_object): Add new parameter TRACE_MODE.
 	If TRACE_MODE is nonzero don#t signal error when shared lib
@@ -389,7 +427,7 @@ Sun Oct 20 17:17:12 1996  Ulrich Drepper  <drepper@cygnus.com>
 	Add implementation of POSIX.1g function getaddrinfo.
 	* posix/Makefile (routines): Add getaddrinfo.
 	* sysdeps/posix/getaddrinfo.c.: New file.  Add implementation by
- 	Craig Metz.
+	Craig Metz.
 	* sysdeps/stub/getaddrinfo.c: New file.  Stub implementation.
 	* resolv/netdb.h [__USE_POSIX]: Add getaddrinfo prototypes and
 	related constants and structures.
@@ -418,7 +456,7 @@ Sun Oct 20 13:02:34 1996  Ulrich Drepper  <drepper@cygnus.com>
 Sun Oct 19 23:05:32 1996  Jim Meyering  <meyering@asic.sc.ti.com>
 
 	* crypt/md5.c (md5_process_bytes): Used casting for pointer
- 	arithmetic.
+	arithmetic.
 
 Sun Oct 20 03:53:23 1996  Ulrich Drepper  <drepper@cygnus.com>
 
@@ -435,15 +473,15 @@ Fri Oct 17 13:20:35 1996  Thorsten Kukuk  <kukuk@weber.uni-paderborn.de>
 Fri Oct 18 22:56:45 1996  Ulrich Drepper  <drepper@cygnus.com>
 
 	* sunrpc/Makefile (install-sbin): Remove portmap.  This version is
- 	buggy and more competent people work on a usable version which is
- 	distributed separately.
+	buggy and more competent people work on a usable version which is
+	distributed separately.
 	* sunrpc/portmap.c: Removed.
 	Suggested by Thorsten Kukuk.
 
 Fri Oct 18 12:17:09 1996  Enrique Melero  <justine@iprolink.ch>
 
 	* sysdeps/libm-ieee754/s_finitel.c: Change function name to
- 	`finitel'.
+	`finitel'.
 
 Fri Oct 18 00:01:10 1996  Ulrich Drepper  <drepper@cygnus.com>
 
@@ -456,7 +494,7 @@ Thu Oct 17 22:10:19 1996  Ulrich Drepper  <drepper@cygnus.com>
 	* Makerules ($(libdir)/libc.so): Fix typo.
 
 	* elf/ldd.sh.in: Test whether given file really exist and give
- 	better message if it is not available.
+	better message if it is not available.
 
 Thu Oct 17 04:25:38 1996  Ulrich Drepper  <drepper@cygnus.com>
 
@@ -499,12 +537,12 @@ Thu Oct 17 00:26:20 1996  NIIBE Yutaka  <gniibe@mri.co.jp>
 Wed Oct 16 12:26:53 1996  Sven Verdoolaege  <skimo@breughel.ufsia.ac.be>
 
 	* locale/programs/localedef.c (main): Test with -1 to find out
- 	whether read failed.
+	whether read failed.
 
 Wed Oct 16 14:54:59 1996  Ulrich Drepper  <drepper@cygnus.com>
 
 	* sysdeps/unix/sysv/linux/i386/clone.S: Use JUMPTARGET and
- 	PSEUDO_END macro.
+	PSEUDO_END macro.
 
 Tue Oct 15 21:27:42 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
 
@@ -538,8 +576,8 @@ Tue Oct 15 23:39:48 1996  Ulrich Drepper  <drepper@cygnus.com>
 	Reported by Andreas Jaeger.
 
 	The available nlist implementation is not generally usable.
-  	Especially on the currently supported ELF systems the nlist
- 	function comes with the libelf.
+	Especially on the currently supported ELF systems the nlist
+	function comes with the libelf.
 	* misc/Makefile (headers): Remove nlist.h.
 	(routines): Remove nlist.
 
@@ -692,7 +730,7 @@ Fri Oct 11 23:36:31 1996  Miles Bader  <miles@gnu.ai.mit.edu>
 Fri Oct 11 19:13:34 1996  Ulrich Drepper  <drepper@cygnus.com>
 
 	* locale/Makefile (CPPFLAGS): Set CHARMAP_PATH to
- 	"$(i18ndir)/charmaps".
+	"$(i18ndir)/charmaps".
 
 Fri Oct 11 22:12:41 1996  NIIBE Yutaka  <gniibe@mri.co.jp>
 
@@ -701,7 +739,7 @@ Fri Oct 11 22:12:41 1996  NIIBE Yutaka  <gniibe@mri.co.jp>
 
 	* sysdeps/unix/sysv/linux/Makefile [$(subdir)=socket] (subdir_headers):
 	Add net/if.h, net/if_ppp.h, net/ppp-comp.h, net/ppp_defs.h,
- 	net/if_arp.h, and net/route.h.
+	net/if_arp.h, and net/route.h.
 	* sysdeps/unix/sysv/linux/net/if_arp.h: New file.
 	* sysdeps/unix/sysv/linux/net/route.h: New file.
 
@@ -763,7 +801,7 @@ Thu Oct 10 15:53:17 1996  Richard Henderson  <rth@tamu.edu>
 	* sysdeps/alpha/stxcpy.S ($unaligned): In single word copy, correct
 	last-byte-written bit for source word misalignment.
 	* sysdeps/alpha/strchr.c: Removed.  There is now an assembler
- 	version.
+	version.
 
 Thu Oct 10 17:17:23 1996  Ulrich Drepper  <drepper@cygnus.com>
 
@@ -901,7 +939,7 @@ Mon Oct  7 13:42:20 1996  Ulrich Drepper  <drepper@cygnus.com>
 	Suggested by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>.
 
 	* nss/nss_files/files-parse.c: Define LOOKUP_NAME even if
- 	EXTERN_PARSER is defined.
+	EXTERN_PARSER is defined.
 
 Sat Oct  5 17:05:36 1996  Andreas Jaeger  <aj@arthur.pfalz.de>
 
@@ -1247,13 +1285,13 @@ Thu Oct  3 13:33:31 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>
 	Don't declare key_t here.
 
 	* hurd/alloc-fd.c (_hurd_alloc_fd): If realloc fails, bother to
- 	set errno (to ENOMEM).
+	set errno (to ENOMEM).
 
 Wed Oct  2 13:41:48 1996  Ulrich Drepper  <drepper@cygnus.com>
 
 	* sysdeps/generic/strtok.c: Don't set stored pointer to NULL when
- 	nothing is found.  This guarantees all subsequent calls behave
- 	the same.
+	nothing is found.  This guarantees all subsequent calls behave
+	the same.
 	* sysdeps/generic/strtok_r.c: Likewise.
 
 Mon Sep 30 22:27:36 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
@@ -1270,10 +1308,10 @@ Mon Sep 30 22:38:29 1996  Richard Henderson  <rth@tamu.edu>
 Tue Oct  1 09:12:21 1996  Ulrich Drepper  <drepper@cygnus.com>
 
 	* locale/programs/ld-time.c: Always write some bytes at the end of
- 	the file even if no `era's are specified.
+	the file even if no `era's are specified.
 
 	* stdio-common/tmpname.c (tmpbuf): Don't define as array of
- 	pointers.
+	pointers.
 
 Tue Oct  1 01:43:11 1996  Ulrich Drepper  <drepper@cygnus.com>
 
@@ -1438,7 +1476,7 @@ Mon Sep 30 00:14:26 1996  Ulrich Drepper  <drepper@cygnus.com>
 Sun Sep 29 12:55:58 1996  Ulrich Drepper  <drepper@cygnus.com>
 
 	* sysdeps/unix/sysv/linux/syscalls.list: Change function name for
- 	_llseek to _llseek (not llseek).
+	_llseek to _llseek (not llseek).
 	Reported by Matthias Urlichs <smurf@smurf.noris.de>.
 
 Sun Sep 29 05:34:32 1996  Ulrich Drepper  <drepper@cygnus.com>
@@ -1466,7 +1504,7 @@ Sat Sep 28 03:02:49 1996  Ulrich Drepper  <drepper@cygnus.com>
 	to prevent warnings.
 
 	* sysdeps/unix/sysv/linux/getsysstats.c (get_proc_path):
- 	Initialize `result'.
+	Initialize `result'.
 
 Sat Sep 28 01:16:42 1996  Ulrich Drepper  <drepper@cygnus.com>
 
@@ -1569,7 +1607,7 @@ Fri Sep 27 14:12:27 1996  Ulrich Drepper  <drepper@cygnus.com>
 	* sysdeps/posix/mk-stdiolim.c: Count final \0 byte in L_tmpnam value.
 
 	* time/strftime.c: Remove unused variables alt_digits and
- 	end_alt_digits.
+	end_alt_digits.
 
 	* sysdeps/unix/sysv/linux/sys/sysinfo.h: Correct prototype names
 	for get_nprocs and get_nprocs_conf.
@@ -1585,12 +1623,12 @@ Fri Sep 27 03:49:56 1996  Ulrich Drepper  <drepper@cygnus.com>
 	Add support for cancelable system calls.
 
 	* csu/initfini.c: Make in crti.o reference to symbol
- 	__libc_force_cancel_wrapper when compiling reentrant version.
+	__libc_force_cancel_wrapper when compiling reentrant version.
 	* misc/Makefile (routines): Add force-wrapper.
 	* misc/force-wrapper.c: New file.
 
 	* posix/system.c: Rename function to __libc_system and make system
- 	a weak alias.
+	a weak alias.
 	* sysdeps/stub/system.c: Likewise.
 	* posix/wait.c: Rename function to __libc_wait and make __wait a
 	weak alias.  De-ANSI-fy.
@@ -1601,7 +1639,7 @@ Fri Sep 27 03:49:56 1996  Ulrich Drepper  <drepper@cygnus.com>
 	make __write a weak alias.
 	* sysdeps/stub/write.c: Likewise.
 	* sysdeps/stub/tcdrain.c: Rename function to __libc_tcdrain and
- 	make tcdrain a weak alias.
+	make tcdrain a weak alias.
 	* sysdeps/unix/bsd/tcdrain.c: Likewise.
 	* sysdeps/unix/bsd/bsd4.4/tcdrain.c: Likewise.
 	* sysdeps/unix/sysv/tcdrain.c: Likewise.
@@ -1617,8 +1655,8 @@ Fri Sep 27 03:49:56 1996  Ulrich Drepper  <drepper@cygnus.com>
 	and make pause a weak alias.  De-ANSI-fy.
 
 	* sysdeps/unix/syscalls.list: Change name for close, fcntl, fsync,
- 	lseek, open, read, and write to have __libc_ prefix and make old
- 	names a weak alias.
+	lseek, open, read, and write to have __libc_ prefix and make old
+	names a weak alias.
 	* sysdeps/unix/mman/syscalls.list: Likewise for msync.
 	* sysdeps/unix/sysv/linux/syscalls.list: Likewise for nanosleep.
 
@@ -1634,7 +1672,7 @@ Thu Sep 26 19:15:55 1996  Ulrich Drepper  <drepper@cygnus.com>
 Thu Sep 26 14:40:10 1996  Ulrich Drepper  <drepper@cygnus.com>
 
 	* sysdeps/posix/pathconf.c: Pass descriptor for just opened file
- 	to fpathconf.
+	to fpathconf.
 	Reported by Martin von Loewis <martin@mira.isdn.cs.tu-berlin.de>.
 
 Thu Sep 26 04:02:43 1996  Ulrich Drepper  <drepper@cygnus.com>
@@ -1646,7 +1684,7 @@ Thu Sep 26 04:02:43 1996  Ulrich Drepper  <drepper@cygnus.com>
 	* locale/C-time.c (_nl_C_LC_TIME): Add initializer for new fields.
 	* locale/categories.def: Add postload function for LC_TIME.
 	* locale/setlocale.c: Make lock global and rename to
- 	__libc_setlocale_lock.
+	__libc_setlocale_lock.
 	* locale/localeinfo.h (struct era_entry): New type.  Used in strftime.
 	Add prototypes for _nl_get_era_entry and _nl_get_alt_digit.
 	* locale/lc-time.c (_nl_postload_time): New function.  Initialize
@@ -1665,7 +1703,7 @@ Wed Sep 25 17:31:55 1996  Ulrich Drepper  <drepper@cygnus.com>
 	Reported by Hans Grobler <grobh@nolian.ee.sun.ac.za>.
 
 	* elf/rtld.c (dl_main): Process LD_PRELOAD before loading
- 	ld.so.preload.  Suggested by David Engel <david@elo.ods.com>.
+	ld.so.preload.  Suggested by David Engel <david@elo.ods.com>.
 
 Wed Sep 25 13:10:57 1996  Ulrich Drepper  <drepper@cygnus.com>
 
@@ -1689,7 +1727,7 @@ Wed Sep 25 02:44:41 1996  Ulrich Drepper  <drepper@cygnus.com>
 Tue Sep 24 21:46:02 1996  Ulrich Drepper  <drepper@cygnus.com>
 
 	* shadow/lckpwdf.c (PWD_LOCKFILE): Change to /etc/lock.pwd to be
- 	on the same device as the password file.
+	on the same device as the password file.
 	* shadow/shadow.h (struct spwd): Change type of numeric fields
 	to `long int' since there value are days, not seconds.
 	* shadow/putspent.c: Change casts from time_t to `long int'.
@@ -1708,7 +1746,7 @@ Mon Sep 23 23:05:24 1996  Ulrich Drepper  <drepper@cygnus.com>
 	* shadow/putspent.c: Don't include <errno.h>.
 
 	* dirent/scandir.c (scandir): Use __set_errno to set errno
- 	variable.
+	variable.
 	* elf/dl-load.c (open_path): Likewise.
 	* inet/rcmd.c (rcmd): Likewise.
 	(rresvport): Likewise.
@@ -2177,7 +2215,7 @@ Sat Sep 21 15:08:25 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.
 Sat Sep 21 13:50:40 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
 
 	* libio/genops.c (_IO_init) [_IO_MTSAFE_IO]: Dereference pointer
- 	to lock when passing it to __libc_lock_init macro.
+	to lock when passing it to __libc_lock_init macro.
 	(_IO_default_finish) [_IO_MTSAFE_IO]: Dereference pointer to lock
 	when passing it to __libc_lock_fini macro.
 
@@ -2187,8 +2225,8 @@ Sat Sep 21 14:35:40 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.
 	[_LIBC_REENTRANT]: Add missing semicolon.
 
 	* sysdeps/unix/sysv/linux/m68k/sysdep.S: Move inclusion of
- 	sysdep.h to the top outside of #ifndef PIC.  Don't include errnos.h.
-  	Use the ENTRY macro.
+	sysdep.h to the top outside of #ifndef PIC.  Don't include errnos.h.
+	Use the ENTRY macro.
 
 Sat Sep 21 14:33:41 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
 
@@ -2209,11 +2247,11 @@ Mon Sep 23 03:00:10 1996  Ulrich Drepper  <drepper@cygnus.com>
 	Patch by NIIBE Yutaka <gniibe@mri.co.jp>.
 
 	* shadow/sgetspent_r.c (LINE_PARSER): Don't accept any chars after
- 	9th field.
+	9th field.
 
 	* sysdeps/unix/sysv/linux/Makefile [$(subdir)==misc]
 	(sysdep_headers): Add sys/debugreg.h, sys/kd.h, sys/soundcard.h,
- 	and sys/vt.h.
+	and sys/vt.h.
 	* sysdeps/unix/sysv/linux/sys/debugreg.h: New file.
 	* sysdeps/unix/sysv/linux/sys/kd.h: New file.
 	* sysdeps/unix/sysv/linux/sys/soundcard.h: New file.
@@ -2243,11 +2281,11 @@ Mon Sep 23 15:31:04 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>
 Sun Sep 22 15:18:41 1996  Ulrich Drepper  <drepper@cygnus.com>
 
 	* sysdeps/unix/sysv/linux/init-first.c: Define dummy function
- 	`_dl_start' so that linking fails if this file should ever be used
- 	in ld.so.
+	`_dl_start' so that linking fails if this file should ever be used
+	in ld.so.
 
 	* catgets/gencat.c (main): Change --version message according to
- 	RMS' last standard revision.
+	RMS' last standard revision.
 	* db/makedb.c: Likewise.
 	* locale/programs/locale.c: Likewise.
 	* locale/programs/localedef.c: Likewise.
@@ -2281,7 +2319,7 @@ Sat Sep 21 19:15:24 1996  Ulrich Drepper  <drepper@cygnus.com>
 	* misc/Makefile (headers): Add sys/sysinfo.h.
 	(routines): Add getsysstats.
 	* sysdeps/unix/sysv/linux/Makefile [$(subdir)==misc]
- 	(sysdep_headers): Remove sys/sysinfo.h.
+	(sysdep_headers): Remove sys/sysinfo.h.
 	* sysdeps/generic/sys/sysinfo.h: New file.
 	* sysdeps/unix/sysv/linux/sys/sysinfo.h: Add prototype for get_nprocs,
 	get_phys_pages, and get_avphys_pages.
@@ -2310,8 +2348,8 @@ Sat Sep 21 05:20:36 1996  Ulrich Drepper  <drepper@cygnus.com>
 	* version.h (VERSION): Bump to 1.95.
 
 	* Make-dist (+tsrcs): Don't filter out files in subdirs which
- 	match files in the sysdeps hierachy (welcome back,
- 	sys/syscall.h!).
+	match files in the sysdeps hierachy (welcome back,
+	sys/syscall.h!).
 
 	* resolv/Makefile (libresolv-routines): Remove getnetnamad.
 
@@ -2320,8 +2358,8 @@ Sat Sep 21 03:00:19 1996  Ulrich Drepper  <drepper@cygnus.com>
 	* locale/loadlocale.c (_nl_free_locale): Remove function.
 	* locale/localeinfo.h: Remove prototype for _nl_free_locale.
 	* locale/setlocale.c (setlocale): Don't free locale data of
- 	categories which succeeded to load after a wrong or missing data
- 	file was observed.
+	categories which succeeded to load after a wrong or missing data
+	file was observed.
 
 	* locale/setlocale (setlocale): Initialize NEWNAME correctly so
 	that it works even when the locale data is not used.
@@ -2432,7 +2470,7 @@ Thu Sep 19 18:59:55 1996  Ulrich Drepper  <drepper@cygnus.com>
 	inclusion.
 
 	* libio/iofgets.c: Use __flockfile and __funlockfile instead of
- 	_IO_flockfile and _IO_funlockfile resp.
+	_IO_flockfile and _IO_funlockfile resp.
 
 	* locale/categories.def: Partly support for correct `era' handling
 	in LC_TIME category.
@@ -2452,10 +2490,10 @@ Thu Sep 19 18:59:55 1996  Ulrich Drepper  <drepper@cygnus.com>
 Tue Sep 17 16:14:34 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
 
 	* sysdeps/m68k/fpu/__math.h (__inline_mathop): Changed to generate
- 	all three versions of the math function.
+	all three versions of the math function.
 	(__inline_mathopf, __inline_mathopl): Removed.
 	(__inline_functions): New temporary definition containing all
- 	non-trivial inline functions.
+	non-trivial inline functions.
 
 Wed Sep 18 00:25:41 1996  Ulrich Drepper  <drepper@cygnus.com>
 
@@ -2628,7 +2666,7 @@ Thu Sep 12 20:12:40 1996  Ulrich Drepper  <drepper@cygnus.com>
 Thu Sep 12 14:03:29 1996  Ulrich Drepper  <drepper@cygnus.com>
 
 	* crypt/Makefile: Include Makeconfig and add crypt object dir to
- 	rpath-link so that running the check finds the new library.
+	rpath-link so that running the check finds the new library.
 	* crypt/cert.c: provide correct prototypes to prevent warnings.
 	Reported by Andreas Jaeger.
 
@@ -2713,7 +2751,7 @@ Thu Sep 12 02:21:44 1996  Ulrich Drepper  <drepper@cygnus.com>
 	* time/time.h (tm_gmtoff, tm_zone): Prefix with `__' unless
 	__USE_BSD; this is required for ANSI C compatibility.
 	* manual/time.texi: Replace GMT by UTC, daylight savings by
- 	daylight saving, timezone by time zone.
+	daylight saving, timezone by time zone.
 	Rewrite description of %V to match ISO 8601.
 	Fix TZ Posix string example for US Eastern time.
 	Explain tzname[1] when DST isn't used.
@@ -2759,7 +2797,7 @@ Tue Sep 10 14:14:33 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.
 	(__errno_location): New function.
 	[_LIBC_REENTRANT]: Set errno using __errno_location function.
 	* sysdeps/unix/sysv/linux/m68k/sysdep.h [PIC]: Add second
- 	syscall_error handler for reentrant libc.
+	syscall_error handler for reentrant libc.
 
 Tue Sep 10 13:27:49 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
 
@@ -2768,7 +2806,7 @@ Tue Sep 10 13:27:49 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.
 Wed Sep 11 04:40:57 1996  Ulrich Drepper  <drepper@cygnus.com>
 
 	* time/tzset.c (__tzname_cur_max): Use type `size_t' to avoid
- 	warning.
+	warning.
 	* time/tzfile.c (compute_tzname_max): Likewise.
 
 Wed Sep 11 02:57:31 1996  Ulrich Drepper  <drepper@cygnus.com>
@@ -2815,7 +2853,7 @@ Mon Sep  9 20:31:27 1996  Ulrich Drepper  <drepper@cygnus.com>
 	Reported by Andreas Jaeger.
 
 	* libio/stdio.h [!__USE_REENTRANT]: Don't define getc as
- 	_IO_getc_unlocked.
+	_IO_getc_unlocked.
 	[__USE_REENTRANT]: Don't define
 
 Mon Sep  9 15:59:32 1996  Ulrich Drepper  <drepper@cygnus.com>
@@ -2996,7 +3034,7 @@ Sun Sep  8 02:36:02 1996  Ulrich Drepper  <drepper@cygnus.com>
 	banner.
 	Change bug report address to bug-glibc@prep not @gnu.
 	* locale/programs/locale.c (main): Use `PACKAGE' for package name
- 	in version information banner.
+	in version information banner.
 	Change bug report address to bug-glibc@prep not @gnu.
 	* locale/programs/localedef.c (main): Likewise.
 
@@ -3045,20 +3083,20 @@ Sat Sep  7 03:55:47 1996  Ulrich Drepper  <drepper@cygnus.com>
 	* configure.in: Add AC_SUBST(DEFINES).
 
 	* libio/Makefile (routines): When compiling reentrant libc add
- 	clearerr_u, feof_u, ferror_u, fputc_u, getc_u, getchar_u,
- 	iofflush_u, putc_u, putchar_u, ioflockfile.
+	clearerr_u, feof_u, ferror_u, fputc_u, getc_u, getchar_u,
+	iofflush_u, putc_u, putchar_u, ioflockfile.
 	(CPPFLAGS): Add -D_IO_MTSAFE_IO for reentrant libc.
 
 	* sysdeps/stub/libc-lock.h: Add stubs for __libc_cleanup_region_start
 	and __libc_cleanup_region_end.
 
 	* sysdeps/unix/i386/sysdep.S [_LIBC_REENTRANT]: Set errno
- 	using __errno_location function.
+	using __errno_location function.
 	* sysdeps/unix/sysv/linux/i386/sysdep.S [_LIBC_REENTRANT]: Set errno
 	using __errno_location function.
 	(__errno_location): New function.
 	* sysdeps/unix/sysv/linux/i386/sysdep.h [PIC]: Add second
- 	syscall_error handler for reentrant libc.
+	syscall_error handler for reentrant libc.
 
 	* sysdeps/unix/opendir.c: Remove unneeded `;'.
 
@@ -3125,15 +3163,15 @@ Sat Sep  7 03:55:47 1996  Ulrich Drepper  <drepper@cygnus.com>
 	* libio/putchar.c: Likewise.
 
 	* libio/feof_u.c: Undefine macro with name of function before
- 	definition of function itself.
+	definition of function itself.
 
 	* libio/ioflockfile.c: New file.  Implementation of flockfile and
- 	funlockfile.
+	funlockfile.
 
 	* libio/putchar_u.c: Fix typo.  Use stdout instead of fp.
 
 	* malloc/malloc.h: Don't include <libc-lock.h> and don't declare
- 	_malloc_loc.
+	_malloc_loc.
 
 	* malloc/free.c: Include <libc-lock.h>.
 	* malloc/realloc.c: Likewise.
@@ -3170,7 +3208,7 @@ Fri Sep  6 19:38:49 1996  Ulrich Drepper  <drepper@cygnus.com>
 	Patch by Andres Schwab.
 
 	* sysdeps/posix/sysconf.c: Don't use PTHREAD_DESTRUCTOR_ITERATIONS
- 	but _POSIX_THREAD_DESTRUCTOR_ITERATIONS.
+	but _POSIX_THREAD_DESTRUCTOR_ITERATIONS.
 
 	* sysdeps/unix/sysv/linux/errnos.h: New file.
 	* sysdeps/unix/sysv/linux/schedbits.h: New file.
@@ -3203,9 +3241,9 @@ Thu Sep  5 22:55:49 1996  Richard Henderson  <rth@tamu.edu>
 	version of h_errno variable.  Declare alias __h_errno for h_errno.
 	* resolv/res_query (h_errno): Remove definition.
 	* sysdeps/unix/sysv/linux/errnos.h [!__ASSEMBLER__ && __USE_REENTRANT]:
- 	Add macro `errno' to get thread specific variable.
+	Add macro `errno' to get thread specific variable.
 	* sysdeps/unix/alpha/sysdep.S [_LIBC_REENTRANT]: Set errno using
- 	__errno_location function.
+	__errno_location function.
 	(__errno_location): New function.
 
 Thu Sep  5 21:08:44 1996  Ulrich Drepper  <drepper@cygnus.com>
@@ -3246,7 +3284,7 @@ Thu Sep  5 13:18:25 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>
 	* mach/Machrules (mig.uh, mig.__h): Don't include $(user-MIGFLAGS)
 	here.
 
- 	* malloc/free.c (free): __lib_malloc_lock -> __libc_malloc_lock.
+	* malloc/free.c (free): __lib_malloc_lock -> __libc_malloc_lock.
 
 	* malloc/free.c: Provide extern decl of __libc_malloc_lock.
 	* malloc/realloc.c: Likewise.
@@ -3386,7 +3424,7 @@ Sat Aug 31 12:34:29 1996  Ulrich Drepper  <drepper@cygnus.com>
 Sat Aug 31 03:07:39 1996  Ulrich Drepper  <drepper@cygnus.com>
 
 	* intl/l10nflist.c (_nl_normalize_codeset): We convert to lower
- 	case, so don't prepend uppercase `ISO' for only numeric arg.
+	case, so don't prepend uppercase `ISO' for only numeric arg.
 
 Wed Sep  4 16:16:13 1996  Ulrich Drepper  <drepper@cygnus.com>
 
@@ -3396,7 +3434,7 @@ Wed Sep  4 16:16:13 1996  Ulrich Drepper  <drepper@cygnus.com>
 Tue Sep  3 11:16:07 1996  Thomas Bushnell/ n/BSG  <thomas@gnu.ai.mit.edu>
 
 	* shadow/lckpwdf.c (__ulckpwdf): Don't take address of LOCK in
- 	call to __libc_lock_lock.
+	call to __libc_lock_lock.
 
 	* sysdeps/mach/hurd/send.c (__send): Declare BUF const.
 	* sysdeps/mach/hurd/sendto.c (sendto): Likewise.
@@ -3413,7 +3451,7 @@ Fri Aug 30 19:55:27 1996  Ulrich Drepper  <drepper@cygnus.com>
 Fri Aug 30 15:40:04 1996  Ulrich Drepper  <drepper@cygnus.com>
 
 	* sysdeps/unix/sysv/linux/Dist: Add sys/procfs.h and
- 	sys/sysmacros.h.  Reported by Curtiss <1CMC3466@IBM.MTSAC.EDU>.
+	sys/sysmacros.h.  Reported by Curtiss <1CMC3466@IBM.MTSAC.EDU>.
 
 Fri Aug 30 13:53:32 1996  Andreas Jaeger  <aj@arthur.pfalz.de>
 
@@ -3471,10 +3509,10 @@ Thu Aug 29 18:03:06 1996  Ulrich Drepper  <drepper@cygnus.com>
 	* Makerules: Make sure directory exists before generating stamp file.
 	(BUILD_CFLAGS): Always refer to using $(..).
 	* manual/Makefile: Make sure directory exists before generating
- 	stamp file.
+	stamp file.
 	(make-target-directory): Add macro definition.
 	* sysdeps/generic/Makefile: Make sure directory exists before
- 	generating stamp file.
+	generating stamp file.
 
 	* Makefile (distribute): Add autolock.sh.  Reported by Fila Kolodny.
 
@@ -3526,7 +3564,7 @@ Thu Aug 29 17:45:49 1996  Ulrich Drepper  <drepper@cygnus.com>
 Thu Aug 29 15:53:33 1996  Ulrich Drepper  <drepper@cygnus.com>
 
 	* sysdeps/libm-ieee754/e_acoshl.c: New file. `long double'
- 	implementation.
+	implementation.
 	* sysdeps/libm-ieee754/e_atanhl.c: Likewise.
 	* sysdeps/libm-ieee754/e_remainderl.c: Likewise.
 	* sysdeps/libm-ieee754/e_scalbl.c: Likewise.
@@ -3555,7 +3593,7 @@ Thu Aug 29 12:00:30 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>
 Thu Aug 29 00:28:08 1996  Ulrich Drepper  <drepper@cygnus.com>
 
 	* stdio-common/printf_fp.c (__printf_fp): Use default value '.' if
- 	`decimal' char is 0.
+	`decimal' char is 0.
 
 	* C-numeric.c (not_available): New constant.
 	(_nl_C_LC_NUMERIC): Use `not_available' for grouping value.
@@ -3568,18 +3606,18 @@ Thu Aug 29 00:28:08 1996  Ulrich Drepper  <drepper@cygnus.com>
 1996-08-28  Paul Eggert  <eggert@twinsun.com>
 
 	* C-messages.c (_nl_C_LC_MESSAGES): Set yesexpr to "^[yY]" and
- 	noexpr to "^[nN]"; this conforms to POSIX.2.
+	noexpr to "^[nN]"; this conforms to POSIX.2.
 
 	* C-time.c (_nl_C_LC_TIME): Change %d to %e in d_t_format, to
- 	conform to POSIX.2.
+	conform to POSIX.2.
 
 1996-08-28  Paul Eggert  <eggert@twinsun.com>
 
 	* C-monetary.c (not_available): New constant.
 	(_nl_C_LC_MONETARY): Set mon_decimal_point to "", and set
- 	mon_grouping, int_frac_digits, frac_digits, p_cs_precedes,
- 	p_sep_by_space, n_cs_precedes, n_sep_by_space, p_sign_posn, and
- 	n_sign_posn to CHAR_MAX, as required by the POSIX Standard.
+	mon_grouping, int_frac_digits, frac_digits, p_cs_precedes,
+	p_sep_by_space, n_cs_precedes, n_sep_by_space, p_sign_posn, and
+	n_sign_posn to CHAR_MAX, as required by the POSIX Standard.
 
 Wed Aug 28 23:12:28 1996  Ulrich Drepper  <drepper@cygnus.com>
 
@@ -3690,7 +3728,7 @@ Mon Aug 26 16:31:33 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>
 Mon Aug 26 13:35:16 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>
 
 	* sysdeps/mach/hurd/i386/init-first.c (__libc_multiple_libcs): New
- 	variable.
+	variable.
 	* sysdeps/i386/init-first.c: Likewise.
 	* sysdeps/stub/init-first.c: Likewise.
 
@@ -3730,8 +3768,8 @@ Sun Aug 25 01:31:33 1996  Ulrich Drepper  <drepper@cygnus.com>
 Sat Aug 24 03:16:47 1996  Ulrich Drepper  <drepper@cygnus.com>
 
 	* misc/syslog.c (vsyslog): Don't use `localtime' or `gmtime' since
- 	this changes the global state for `localtime' and `gmtime'.  Use
- 	`__localtime_r'/`__gmtime_r' instead.
+	this changes the global state for `localtime' and `gmtime'.  Use
+	`__localtime_r'/`__gmtime_r' instead.
 	* resolv/res_debug.c (__p_secstodate): Likewise.
 	* sysdeps/generic/ftime.c: Likewise.
 	* sysdeps/posix/gettimeofday.c: Likewise.
@@ -3739,7 +3777,7 @@ Sat Aug 24 03:16:47 1996  Ulrich Drepper  <drepper@cygnus.com>
 
 	* time/gmtime.c: De-ANSI-fy.
 	* time/strftime.c: Don't call non-reentrant functions which change
- 	state.
+	state.
 
 Wed Aug 21 10:14:59 1996  Richard Henderson  <rth@tamu.edu>
 
@@ -3763,13 +3801,13 @@ Tue Aug 20 17:42:10 1996  Miles Bader  <miles@gnu.ai.mit.edu>
 Sat Aug 17 12:19:37 1996  David Mosberger-Tang  <davidm@azstarnet.com>
 
 	* login/pututline_r.c (__pututline_r): Fix handling of case where
- 	getutid_r() fails with ESRCH.  Reported by Miquel van Smoorenburg.
+	getutid_r() fails with ESRCH.  Reported by Miquel van Smoorenburg.
 
 Wed Aug 14 14:10:54 1996  David Mosberger-Tang  <davidm@azstarnet.com>
 
 	* sysdeps/unix/sysv/linux/alpha/ioperm.c (platform): Change entry
- 	for "Jensen" so _bus_base() returns 0 on that platform.  Use
- 	_bus_base_sparse() to determine base address of sparse memory.
+	for "Jensen" so _bus_base() returns 0 on that platform.  Use
+	_bus_base_sparse() to determine base address of sparse memory.
 
 	* sysdeps/unix/sysv/linux/sys/io.h: Enclose #include <asm/io.h>
 	and declarations in __BEGIN_DECLS/__END_DECLS.
@@ -3892,13 +3930,13 @@ Wed Aug 14 17:57:08 1996  Ulrich Drepper  <drepper@cygnus.com>
 Sun Aug 11 13:45:33 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
 
 	* MakeTAGS (all-pot): Remove $P/errlist.pot, all error messages
- 	are now in $P/stdio-common.pot.
+	are now in $P/stdio-common.pot.
 	(XGETTEXTFLAGS-errlist.pot): Variable removed.
 
 Mon Aug 12 19:25:03 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
 
 	* Makerules (do-ar, o-iterator-doit): Compute path to autolock
- 	script at run time, not configure time.
+	script at run time, not configure time.
 	* config.make.in, configure.in: Undo previous change.
 
 Wed Aug 14 13:20:02 1996  Ulrich Drepper  <drepper@cygnus.com>
@@ -3927,18 +3965,18 @@ Tue Aug 13 00:55:03 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.
 Tue Aug 13 20:51:21 1996  Ulrich Drepper  <drepper@cygnus.com>
 
 	* stdlib/canonicalize.c (canonicalize): Add cast to prevent
- 	warning.
+	warning.
 
 	* Makerules (o-iterator-doit): Use autolock.sh when running ranlib.
 
 Tue Aug 13 18:26:45 1996  Ulrich Drepper  <drepper@cygnus.com>
 
 	* nss/nsswitch.c (__nss_configure_lookup): Use fact that list is
- 	sorted.
+	sorted.
 
 	Update from bind-4.9.5-T1A.
 	* resolv/Makefile (libresolv-routines): Add base64, inet_net_ntop,
- 	inet_net_pton, inet_net.
+	inet_net_pton, inet_net.
 
 	* resolv/gethnamaddr.c: Include <sys/types.h>.
 	* resolv/getnetnamadr.c: Likewise.
@@ -3953,14 +3991,14 @@ Tue Aug 13 18:26:45 1996  Ulrich Drepper  <drepper@cygnus.com>
 	* resolv/res_send.c: Likewise.
 
 	* resolv/gethnamaddr.c [! SPRINTF_CHAR] (SPRINTF): Cast return
- 	value of sprintf.
+	value of sprintf.
 	* resolv/inet_ntop.c: Likewise.
 
 	* resolv/gethnamaddr.c [BSD]: Include <stdlib.h>.
 	Remove prototype of gethostbyname_ipv4.
 
 	* resolv/inet_ntop.c, resolv/inet_pton.c: Use ISO C `mem*'
- 	functions instead of BSD `b*' functions.
+	functions instead of BSD `b*' functions.
 
 	* resolv/nsap_addr.c: Add copyright message.
 
@@ -3998,10 +4036,10 @@ Mon Aug 12 19:03:22 1996  Thomas Bushnell n/BSG  <thomas@psilocin.gnu.ai.mit.edu
 	* sysdeps/generic/gnu/types.h: Declare __fd_mask as `unsigned long'.
 
 	* mach/Makefile (mach/mach_host.uh): Depend on
- 	$(objpfx)/mach-syscalls.mk.
+	$(objpfx)/mach-syscalls.mk.
 	($(objpfx)mach-shortcuts.h): Depend on $(objpfx)mach/mach_host.h.
 	(This fixes a make loop; thanks to Marcus Daniels
- 	<marcus@sysc.pdx.edu> for the patch.)
+	<marcus@sysc.pdx.edu> for the patch.)
 
 Mon Aug 12 16:41:52 1996  Thomas Bushnell n/BSG  <thomas@gnu.ai.mit.edu>
 
@@ -4013,7 +4051,7 @@ Mon Aug 12 16:41:52 1996  Thomas Bushnell n/BSG  <thomas@gnu.ai.mit.edu>
 Mon Aug 12 04:33:09 1996  Ulrich Drepper  <drepper@cygnus.com>
 
 	* nss/nsswitch.c (__nss_database_lookup): Always release locks
- 	before returning.  Reported by Miles Bader.
+	before returning.  Reported by Miles Bader.
 
 Mon Aug 12 03:31:58 1996  Ulrich Drepper  <drepper@cygnus.com>
 
@@ -4072,8 +4110,8 @@ Sat Aug 10 13:17:27 1996  David Mosberger-Tang  <davidm@azstarnet.com>
 	* shadow.h: New file.
 
 	* sysdeps/unix/sysv/linux/netinet/in.h: Move
- 	__BEGIN_DECLS/__END_DECLS up so ntohl() et al are bracketed as
- 	well.
+	__BEGIN_DECLS/__END_DECLS up so ntohl() et al are bracketed as
+	well.
 
 	* socket/sys/socket.h [__cplusplus]: Use old-style __SOCKADDR_ARG.
 	g++ 2.7.2 (and earlier) has no transparent unions support.
@@ -4094,14 +4132,14 @@ Tue Aug  6 10:23:18 1996  David Mosberger-Tang  <davidm@azstarnet.com>
 	!__isatty(fd) (POSIX.1 says so.)
 
 	* sysdeps/unix/getlogin.c (getlogin): Fix to check fd 0 only.
-  	This is not a gross hack, after all---for compatibility,
- 	getlogin() really should check fd 0 only and not try to base its
- 	operation on the controlling tty.
+	This is not a gross hack, after all---for compatibility,
+	getlogin() really should check fd 0 only and not try to base its
+	operation on the controlling tty.
 
 Wed Jul 17 10:54:20 1996  David Mosberger-Tang  <davidm@azstarnet.com>
 
 	* sysdeps/unix/getlogin.c (getlogin): Add static variable NAME,
- 	change utmp_data from static to auto.
+	change utmp_data from static to auto.
 
 Sun Aug 11 02:56:08 1996  Ulrich Drepper  <drepper@cygnus.com>
 
@@ -4128,7 +4166,7 @@ Fri Aug  9 17:38:58 1996  Ulrich Drepper  <drepper@cygnus.com>
 	Reported by Matthias Urlichs.
 
 	* sysdeps/posix/tempname.c [USE_IN_LIBIO]: Don't clear
- 	_IO_file_flags.  It's the same as _flags.
+	_IO_file_flags.  It's the same as _flags.
 	Reported by Miquel van Smoorenburg <miquels@Q.cistron.nl>.
 
 Wed Aug  7 19:38:47 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
@@ -4179,7 +4217,7 @@ Thu Aug  8 16:17:38 1996  Ulrich Drepper  <drepper@cygnus.com>
 Thu Aug  8 13:33:45 1996  Ulrich Drepper  <drepper@cygnus.com>
 
 	* sysdeps/unix/sysv/linux/ftime.c: New file.  Available system
- 	call is only a stub.
+	call is only a stub.
 	Reported by Matthias Urlichs.
 
 	* Makeconfig [!default_cflags]: Change default value from `-g'
@@ -4260,23 +4298,23 @@ Sun Aug  4 00:12:41 1996  David Mosberger-Tang  <davidm@azstarnet.com>
 Sat Aug  3 16:20:02 1996  David Mosberger-Tang  <davidm@azstarnet.com>
 
 	* sysdeps/unix/sysv/linux/alpha/ioperm.c (platform): Add entry for
- 	Mikasa.
+	Mikasa.
 
 	* socket/sys/socket.h (send, __send, sendto): Declare buffer
- 	pointer as __const.
+	pointer as __const.
 
 	* string/tester.c (main): Test stpncpy.
 
 	* sysdeps/generic/stpncpy.c (__stpncpy): Fix so it works without
- 	segfault when called with an N that is not a multiple of four and
- 	src[N-1]=='\0'.
+	segfault when called with an N that is not a multiple of four and
+	src[N-1]=='\0'.
 
 	* misc/syslog.c (LogType): New variable.
 	(openlog): If connect() with SOCK_DGRAM fails with EPROTOTYPE,
- 	try again with SOCK_STREAM (the Linux syslogd uses a socket of the
- 	latter type).
+	try again with SOCK_STREAM (the Linux syslogd uses a socket of the
+	latter type).
 	(vsyslog): When LogType==SOCK_STREAM, also send ASCII NUL
- 	terminator as a record-delimiter.  If __send(LogFile) fails,
+	terminator as a record-delimiter.  If __send(LogFile) fails,
 	call closelog() so logfile gets re-opened next time.
 
 Wed Aug  7 15:15:14 1996  Ulrich Drepper  <drepper@cygnus.com>
@@ -4346,13 +4384,13 @@ Tue Aug  6 01:13:56 1996  Ulrich Drepper  <drepper@cygnus.com>
 	* login/getutid_r.c: Rename defined function to `__getutent_r',
 	make `getutent_r' weak alias.
 	* login/getutline.c (getutline): Call `__getutline_r', not
- 	`getutline_r'.
+	`getutline_r'.
 	* login/getutline_r.c: Rename defined function to `__getutline_r',
 	make `getutline_r' weak alias.
 	* login/pututline_r.c: Rename defined function to `__pututline_r',
 	make `pututline_r' weak alias.
 	* login/setutent.c (setutent): Call `__setutline_r', not
- 	`setutline_r'.
+	`setutline_r'.
 	* login/setutent_r.c: Rename defined function to `__setutline_r',
 	make `setutline_r' weak alias.
 	Rename `utmpname' to `__utmpname' and make former weak alias.
@@ -4386,7 +4424,7 @@ Tue Aug  6 01:13:56 1996  Ulrich Drepper  <drepper@cygnus.com>
 	* libc/stdio/vscanf.c: De-ANSI-fy.
 	Rename function to `__vscanf' and make `vscanf' a weak alias.
 	* stdio-common/scanf.c (scanf): Use _IO_vscanf/__vscanf instead
- 	of `vscanf'.
+	of `vscanf'.
 
 	* stdio-common/reg-printf.c: De-ANSI-fy.
 	Rename function to `__register_printf_function' and make
@@ -4400,7 +4438,7 @@ Tue Aug  6 01:13:56 1996  Ulrich Drepper  <drepper@cygnus.com>
 	* stdlib/wcstombs.c: Call `__wcsrtombs' instead of `wcsrtombs'.
 	* stdlib/wctomb.c: Call `__wcrtomb' instead of `wcrtomb'.
 	* wcsmbs/mbrtowc.c: Prepend function name with __ and make old
- 	name a weak alias.
+	name a weak alias.
 	* wcsmbs/mbsrtowcs.c: Likewise.
 	* wcsmbs/wcrtomb.c: Likewise.
 	* wcsmbs/wcsrtombs.c: Likewise.
@@ -4469,7 +4507,7 @@ Sat Aug  3 18:41:36 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.
 	* locale/C-ctype.c (_nl_C_LC_CTYPE_toupper): Fix EOF entry.
 	(_nl_C_LC_CTYPE): Fix ordering.
 	* locale/categories.def (LC_CTYPE): Add missing ctype-class32; fix
- 	typo.
+	typo.
 
 Sat Aug  3 12:31:06 1996  Richard Henderson  <rth@tamu.edu>
 
@@ -4481,17 +4519,17 @@ Sat Aug  3 12:31:06 1996  Richard Henderson  <rth@tamu.edu>
 Fri Aug  2 03:12:40 1996  Ulrich Drepper  <drepper@cygnus.com>
 
 	* initfini.c: (__libc_is_static): New variable.  Will be
- 	initialized in init-first.c.  Some actions in the libc work
- 	different when libc is static or dynamic.
+	initialized in init-first.c.  Some actions in the libc work
+	different when libc is static or dynamic.
 
 	* sysdeps/unix/sysv/linux/init-first.c (init): Use
- 	`__libc_is_static' variable to determine whether call to
- 	`personality' and `setfpucw' is necessary.  When done set variable
- 	to +-1 depending on library type.
+	`__libc_is_static' variable to determine whether call to
+	`personality' and `setfpucw' is necessary.  When done set variable
+	to +-1 depending on library type.
 
 	* locale/setlocale.c (setlocale): Use global variable
- 	`__libc_enable_secure' instead of calling `get{,e}{g,u}id()' to
- 	determine whether it's a SET[UG]ID program.
+	`__libc_enable_secure' instead of calling `get{,e}{g,u}id()' to
+	determine whether it's a SET[UG]ID program.
 
 Fri Aug  2 14:40:22 1996  Roland McGrath  <roland@fast.cs.utah.edu>
 
@@ -4617,7 +4655,7 @@ Tue Jul 30 13:23:13 1996  Ulrich Drepper  <drepper@cygnus.com>
 Tue Jul 30 14:35:17 1996  Miles Bader  <miles@gnu.ai.mit.edu>
 
 	* sysdeps/mach/hurd/dl-sysdep.c	(__open): Use open_file.
- 	(open_file): New function, contents mostly from __open.
+	(open_file): New function, contents mostly from __open.
 	(_dl_sysdep_read_whole_file): New function.
 
 Sat Jul 27 11:23:59 1996  Miles Bader  <miles@gnu.ai.mit.edu>
@@ -4702,7 +4740,7 @@ Sun Jul 28 22:40:25 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
 Sat Jul 27 13:02:09 1996  Ulrich Drepper  <drepper@cygnus.com>
 
 	* elf/rtld.c (dl_main): Ignore arguments when environment variable
- 	LD_TRACE_LOADED_OBJECTS is set.
+	LD_TRACE_LOADED_OBJECTS is set.
 
 Sun Jul 28 19:42:51 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
 
@@ -4951,7 +4989,7 @@ Tue Jul 23 18:13:37 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
 Thu Jul 18 21:41:25 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
 
 	* sysdeps/generic/stpncpy.c: Fix semantics to make `stpncpy (d, s,
- 	n)' equivalent to `strncpy (d, s, n), d += strnlen (d, n)'.
+	n)' equivalent to `strncpy (d, s, n), d += strnlen (d, n)'.
 
 Tue Jul 23 02:49:58 1996  Ulrich Drepper  <drepper@cygnus.com>
 
@@ -5012,8 +5050,8 @@ Sat Jul 20 13:28:52 1996  Miles Bader  <miles@gnu.ai.mit.edu>
 Sat Jul 20 07:15:33 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
 
 	* crypt/Makefile, crypt/nocrypt.c: Removed.  It is illegal to export
- 	from the USA any software that even makes it easy to drop in an
- 	encryption module of foreign origin.
+	from the USA any software that even makes it easy to drop in an
+	encryption module of foreign origin.
 	* Makerules (cryptobjdir): Variable removed.
 	($(libdir)/libc.so): Remove dep on libcrypt.so$(libcrypt.so-version).
 	* Makefile (subdirs): Remove crypt.
@@ -5026,18 +5064,18 @@ Fri Jul 19 15:45:20 1996  Ulrich Drepper  <drepper@cygnus.com>
 Fri Jul 19 15:10:37 1996  David Mosberger-Tang  <davidm@azstarnet.com>
 
 	* sunrpc/xdr_mem.c (xdrmem_putlong): Don't cast LP to int32 (the
- 	old code would have failed on a big-endian 64-bit architecture).
+	old code would have failed on a big-endian 64-bit architecture).
 	* sunrpc/xdr_stdio.c (xdrstdio_putlong): Ditto.
 
 	* sunrpc/xdr.c (xdr_int): Handle XDR_FREE case.
 	(xdr_u_long): Use switch instead of chain of if-statements.
-  	Remove gratitous parentheses around return expressions.
+	Remove gratitous parentheses around return expressions.
 	(xdr_enum): Open code case where INT_MAX<LONG_MAX.
 
 	* sunrpc/svc.c (svc_getreqset): Increment SOCK by 32, not NFDBITS.
 
 	* sunrpc/portmap.c (reg_service): Declare ANS and PORT as long,
- 	not int.
+	not int.
 
 Fri Jul 19 16:56:41 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
 
@@ -5083,14 +5121,14 @@ Wed Jul 17 10:54:20 1996  David Mosberger-Tang  <davidm@azstarnet.com>
 	* sysdeps/stub/ustat.c: Ditto.
 	* sysdeps/unix/sysv/linux/ustatbits.h: Ditto.
 	* misc/Makefile (headers): Mention ustat.h, sys/ustat.h, and
- 	ustatbits.h.
+	ustatbits.h.
 	(routines): Mention ustat.
 
 	* sysdeps/unix/sysv/linux/alpha/start.S: Move to ...
 	* sysdeps/alpha/elf/start.S: here.
 
 	* sysdeps/unix/sysv/linux/syscalls.list: Mention klogctl in
- 	alphabetically correct place.  Mention ustat.
+	alphabetically correct place.  Mention ustat.
 
 	* sysdeps/unix/alpha/sysdep.S: Make errno a bss symbol, not a
 	common symbol (makes errno accessible from gdb).
@@ -5099,20 +5137,20 @@ Wed Jul 17 10:54:20 1996  David Mosberger-Tang  <davidm@azstarnet.com>
 	test, not ut_type.
 
 	* login/logwtmp.c (logwtmp): Reimplemented.  Must ensure that a
- 	record always gets appended at end of file (wtmp is a log file,
- 	after all).  Set ut_type to DEAD_PROCESS if name is empty.
+	record always gets appended at end of file (wtmp is a log file,
+	after all).  Set ut_type to DEAD_PROCESS if name is empty.
 
 	* login/getutid_r.c (getutid_r): Handle search for UT_TYPE in
 	separate loop from search for UT_ID.  Fix code so it is in
 	sync with Unix man page.
 
 	* login/getutline_r.c (getutline_r): Stop searching only if
- 	ut_line matches and type is either USER_PROCESS or LOGIN_PROCESS.
+	ut_line matches and type is either USER_PROCESS or LOGIN_PROCESS.
 
 Tue Jul 16 15:06:18 1996  David Mosberger-Tang  <davidm@azstarnet.com>
 
 	* sysdeps/unix/sysv/linux/netinet/in.h: Base on <linux/in.h> to
- 	avoid duplicate declarations.
+	avoid duplicate declarations.
 
 Sun Jul 14 19:08:55 1996  David Mosberger-Tang  <davidm@azstarnet.com>
 
@@ -5177,7 +5215,7 @@ Wed Jul 17 17:08:48 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
 Wed Jul 17 11:29:26 1996  Miles Bader  <miles@gnu.ai.mit.edu>
 
 	* stdio/linewrap.c (lwupdate): Fix boundary condition where a
- 	word extends right up to rmargin.
+	word extends right up to rmargin.
 
 	* stdio/linewrap.c (lwupdate): When we've done a word wrap and
 	output the wrap margin, set point_col to wmargin.
@@ -5185,7 +5223,7 @@ Wed Jul 17 11:29:26 1996  Miles Bader  <miles@gnu.ai.mit.edu>
 	(line_wrap_point): Return 0 for a negative point_col.
 	(line_wrap_stream): Make wmargin ssize_t.
 	* stdio/linewrap.h (struct line_wrap_data): Make wmargin &
- 	point_col ssize_t.
+	point_col ssize_t.
 	(line_wrap_stream): Make wmargin ssize_t.
 	(line_wrap_point): Return 0 for a negative point_col.
 
@@ -5201,7 +5239,7 @@ Tue Jul 16 01:52:42 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.
 Tue Jul 16 00:18:19 1996  Miles Bader  <miles@gnu.ai.mit.edu>
 
 	* stdio/linewrap.c (__line_wrap_update): Add hackery from flshfp
- 	to fiddle __put_limit in conjunction with __linebuf_active.
+	to fiddle __put_limit in conjunction with __linebuf_active.
 
 Tue Jul 16 00:14:07 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
 
@@ -5362,22 +5400,22 @@ Sat Jul 13 02:47:53 1996  David Mosberger-Tang  <davidm@azstarnet.com>
 	it that way.
 
 	* grp/initgroups.c (initgroups): Add groups that user is a member
- 	of, not the ones he is _not_ a member of.
+	of, not the ones he is _not_ a member of.
 
 	* nss/nsswitch.c (known_compare): Make known_compare() a static
- 	instead of a local function.  The latter are difficult to debug
- 	and slow to execute on certain platforms.
+	instead of a local function.  The latter are difficult to debug
+	and slow to execute on certain platforms.
 
 	* sysdeps/posix/ttyname_r.c (ttyname_r): Use sizeof (dev) - 1 in
- 	place of sizeof (dev).  The size of a literal string includes the
- 	NUL byte.
+	place of sizeof (dev).  The size of a literal string includes the
+	NUL byte.
 
 	* sysdeps/unix/getlogin.c (getlogin): Initialize ut_fd with -1.
 
 Thu Jul 11 16:59:10 1996  David Mosberger-Tang  <davidm@azstarnet.com>
 
 	* misc/mntent.c (addmntent): Seek to end of file before writing
- 	entry.  Return 1 on error, not -1.
+	entry.  Return 1 on error, not -1.
 
 Tue Jul  9 19:08:05 1996  David Mosberger-Tang  <davidm@azstarnet.com>
 
@@ -5387,7 +5425,7 @@ Tue Jul  9 19:08:05 1996  David Mosberger-Tang  <davidm@azstarnet.com>
 Fri Jul  5 18:44:55 1996  David Mosberger-Tang  <davidm@azstarnet.com>
 
 	* sysdeps/unix/sysv/linux/alpha/ioperm.c (port_to_cpu_addr): Size
- 	shift amount for Jensen must be 5 not 4.
+	shift amount for Jensen must be 5 not 4.
 
 Sat Jul 13 20:04:28 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
 
@@ -5497,7 +5535,7 @@ Tue Jul  9 09:37:55 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
 	* sysdeps/generic/machine-gmon.h: Declare mcount_internal.
 
 	* sysdeps/unix/inet/syscalls.list: Define __ names with weak aliases
- 	for send and connect syscalls.
+	for send and connect syscalls.
 
 	* socket/sys/socket.h: New file, taken from non-sysdep parts of
 	linux/sys/socket.h; break sysdeps parts out into socketbits.h.
@@ -5536,7 +5574,7 @@ Thu Jul  4 01:34:04 1996  Ulrich Drepper  <drepper@cygnus.com>
 	* locale/programs/stringtrans.c: Fix typo in copyright.
 
 	* stdio-common/printf-prs.c: Add casts to prevent
-        signed<->unsigned warnings.
+	signed<->unsigned warnings.
 
 	* stdio-common/printf-parse.h: Initialize state variable before
 	calling mbrlen.
@@ -5575,8 +5613,8 @@ Thu Jul  4 01:34:04 1996  Ulrich Drepper  <drepper@cygnus.com>
 Tue Jul  9 06:19:29 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
 
 	* sysdeps/unix/sysv/linux/configure.in: Use version number in cache
- 	variable name, so new a libc with new requirements won't fail to
- 	notice an insufficient Linux version.
+	variable name, so new a libc with new requirements won't fail to
+	notice an insufficient Linux version.
 
 	* sysdeps/unix/sysv/linux/direntry.h: New file from David Mosberger.
 
@@ -5599,8 +5637,8 @@ Tue Jul  9 06:19:29 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
 Tue Jul  9 00:14:52 1996  Michael I. Bushnell p/BSG  <mib@gnu.ai.mit.edu>
 
 	* sysdeps/mach/hurd/ioctls.h (MDMBUF, ECHO, TOSTOP, FLUSHO,
- 	PENDIN, NOFLSH): Undefine these at start if they are already
- 	defined to avoid collision with termbits.h.
+	PENDIN, NOFLSH): Undefine these at start if they are already
+	defined to avoid collision with termbits.h.
 	* sysdeps/generic/termbits.h (ECHO, TOSTOP, NOFLSH): Likewise.
 	(MDMBUF, FLUSHO, PENDIN) [__USE_BSD]: Likewise.
 
@@ -5620,7 +5658,7 @@ Mon Jul  8 13:37:40 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
 Mon Jul  8 13:10:50 1996  Michael I. Bushnell p/BSG  <mib@gnu.ai.mit.edu>
 
 	* sysdeps/mach/hurd/errnos.awk: Skip entries where the
- 	error is 0.  The "placeholder" entries recently added to
+	error is 0.  The "placeholder" entries recently added to
 	errno.texi convert to zero since `???/' is at the front of them.
 	* sysdeps/gnu/errlist.awk (errnoh): Likewise.
 
@@ -5630,7 +5668,7 @@ Mon Jul  8 13:10:50 1996  Michael I. Bushnell p/BSG  <mib@gnu.ai.mit.edu>
 	* stdlib/stdlib.h (random): Declare return type to be int32_t.
 
 	* string/argz-delete.c (argz_delete): Use memmove instead of
- 	memcpy for possibly overlapping strings.
+	memcpy for possibly overlapping strings.
 
 Mon Jul  8 02:14:25 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
 
@@ -5648,7 +5686,7 @@ Mon Jul  8 00:11:15 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
 	* libc-symbols.h (weak_function): New macro.
 	For GCC 2.7+ define as __attribute__ ((weak)).
 	* elf/dl-minimal.c: Use weak_function as keyword in function defns
- 	instead of weak_symbol (NAME) after the defn.
+	instead of weak_symbol (NAME) after the defn.
 	* stdlib/strtol.c: Likewise.
 	* stdlib/strtod.c: Likewise.
 	* sysdeps/mach/hurd/dl-sysdep.c: Likewise.
@@ -5697,7 +5735,7 @@ Sun Jun  2 22:28:43 1996  Miles Bader  <miles@gnu.ai.mit.edu>
 
 	* stdio/linewrap.c (lwupdate): Update D->point_offs when done.
 	Use memmove instead of memcpy where overlap is possible (not
- 	necessary using current implementation of memcpy, but...).
+	necessary using current implementation of memcpy, but...).
 	(__line_wrap_update): Don't update D->point_offs (lwupdate does it).
 
 Fri May 31 11:48:46 1996  Miles Bader  <miles@gnu.ai.mit.edu>
@@ -5760,8 +5798,8 @@ Fri Jul  5 12:22:51 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
 	(struct timeval): Add bodiless decl for scope.
 
 	* time/time.h (struct timespec): Rename members from `ts_*' to `tv_*'.
-  	Move struct timespec defn outside [_TIME_H] so it can be got with
- 	#define __need_timespec.
+	Move struct timespec defn outside [_TIME_H] so it can be got with
+	#define __need_timespec.
 
 	* time/sys/time.h (TIMEVAL_TO_TIMESPEC): Use `tv_*' instead of `ts_*'
 	for `struct timespec' member names.
@@ -5789,8 +5827,8 @@ Thu Jul  4 05:21:59 1996  David Mosberger-Tang  <davidm@azstarnet.com>
 	* login/utmp.h: Fix typos.
 
 	* misc/syslog.c (vsyslog): Use __send instead of send and
- 	__connect instead of connect to avoid name-space collisions (e.g.,
- 	with psgetty).
+	__connect instead of connect to avoid name-space collisions (e.g.,
+	with psgetty).
 
 Wed Jul  3 16:29:41 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
 
@@ -5814,16 +5852,16 @@ Tue Jul  2 23:45:14 1996  Ulrich Drepper  <drepper@cygnus.com>
 	The latest Japanese proposal for POSIX locales renames the
 	CHARMAP keyword in locale definition files to CHARCONV.
 	* locale/programs/ld-ctype.c, locale/programs/locales.h: Rename
-        function ctype_is_charmap to ctype_is_charconv.
+	function ctype_is_charmap to ctype_is_charconv.
 	* locale/programs/locfile-kw.gperf: Replace charmap keyword with
-        charconv.
+	charconv.
 	* locale/programs/locfile-token.h: Add definition of token
-        charconv.
+	charconv.
 	* locale/programs/locfile.c: Recognize charconv keyword.  Rename
-        lables according to this.
+	lables according to this.
 
 	* locale/weight.h (get_weight): Cast constants to prevent
-        warnings.
+	warnings.
 
 	* stdlib/strtod.c, stdlib/strtol.c, string/strcoll.c,
 	string/strxfrm.c: Add some more casts to prevent signed<->unsigned
@@ -6034,7 +6072,7 @@ Sat Jun 29 01:08:35 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.
 Fri Jun 28 23:25:35 1996  Miles Bader  <miles@gnu.ai.mit.edu>
 
 	* login/login.c (login): Initialize DATA so that setutent_r will
- 	actually do something.
+	actually do something.
 
 Fri Jun 28 16:53:01 1996  David Mosberger-Tang  <davidm@azstarnet.com>
 
@@ -6044,10 +6082,10 @@ Fri Jun 28 16:53:01 1996  David Mosberger-Tang  <davidm@azstarnet.com>
 	using ElfW() instead of Elf32_*.
 
 	* sysdeps/unix/sysv/linux/alpha/init-first.h,
- 	sysdeps/unix/sysv/linux/m68k/init-first.h,
- 	sysdeps/unix/sysv/linux/i386/init-first.h: New files.
+	sysdeps/unix/sysv/linux/m68k/init-first.h,
+	sysdeps/unix/sysv/linux/i386/init-first.h: New files.
 	* sysdeps/unix/sysv/linux/init-first.c: Use platform-dependent
- 	init-first.h to make abstract machine dependent parts of
+	init-first.h to make abstract machine dependent parts of
 	initialization.
 
 	* sysdeps/unix/alpha/sysdep.h: Undo PIC-optimization of syscall
@@ -6057,7 +6095,7 @@ Fri Jun 28 16:53:01 1996  David Mosberger-Tang  <davidm@azstarnet.com>
 	Fix by Richard Henderson.
 
 	* sysdeps/alpha/dl-machine.h (elf_alpha_fix_plt): Fix
- 	typo/extraneous whitespace.
+	typo/extraneous whitespace.
 
 	* sunrpc/xdr.c (xdr_int, xdr_u_int): Use <limits.h> to test
 	determine what integer sizes we're dealing with.
@@ -6069,8 +6107,8 @@ Fri Jun 28 15:46:02 1996  Michael I. Bushnell, p/BSG  <mib@gnu.ai.mit.edu>
 	parenthesizing correctly.
 
 	* hurd/hurdsig.c (_hurd_internal_post_signal): In
- 	check-for-pending signals code, release _hurd_siglock before
- 	jumping to deliver_pending.
+	check-for-pending signals code, release _hurd_siglock before
+	jumping to deliver_pending.
 
 Thu Jun 27 04:04:27 1996  David Mosberger-Tang  <davidm@azstarnet.com>
 
@@ -6261,7 +6299,7 @@ Tue Jun 25 10:58:23 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
 Tue Jun 25 09:55:47 1996  David Mosberger-Tang  <davidm@AZStarNet.com>
 
 	* catgets/gencat.c (write_out): Use %Zu to print variables of type
- 	size_t.
+	size_t.
 	* resolv/res_debug.c (__p_rr): Print size_t variable as %lu and
 	cast it to (unsigned long) to make it work both on 32 and 64
 	bit architectures.
@@ -6320,7 +6358,7 @@ Tue Jun 25 02:59:11 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
 	PTR is outside the heap.
 
 	* elf/dl-load.c (_dl_map_object): If the requested name matches the
- 	soname of a loaded object, use that object.
+	soname of a loaded object, use that object.
 
 Mon Jun 24 19:57:01 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
 
@@ -6438,7 +6476,7 @@ Sun Jun 23 19:42:05 1996  Ulrich Drepper  <drepper@cygnus.com>
 	Implementation of libnss_files.so module for file based databases
 	in NSS service.
 	* nss/nss_dns/dns-host.c, nss/nss_dns/dns-network.c: Implementation
-        if libnss_dns.so module for DNS name lookup in NSS service.
+	if libnss_dns.so module for DNS name lookup in NSS service.
 
 	* inet/getproto.c, inet/getprtent.c, inet/getprtname.c,
 	inet/getservent.c, inet/getsrvbynm.c, inet/getsrvbypt.c:
@@ -6513,13 +6551,13 @@ Sat Jun 22 10:44:09 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
 Fri Jun 21 00:27:51 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
 
 	* elf/dl-load.c (_dl_map_object_from_fd): Fix mapping and l_phdr
- 	guessing to not assume p_vaddr of first load cmd is zero.
+	guessing to not assume p_vaddr of first load cmd is zero.
 
 	* sysdeps/sparc/elf/start.S: New file.
 	* sysdeps/sparc/dl-machine.h: New file.
 
 	* posix/fnmatch.c (fnmatch): Fix \*[*?]+ case to increment name ptr
- 	only for ?s, not for *s.  Fix from Chet Ramey.
+	only for ?s, not for *s.  Fix from Chet Ramey.
 
 	Fixes thanks to Raja R Harinath <harinath@cs.umn.edu>:
 	* sysdeps/unix/sysv/utmpbits.h: Define _HAVE_UT_{TYPE,ID,TV,HOST}.
@@ -6591,7 +6629,7 @@ Wed Jun 19 01:27:57 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
 Wed Jun 19 03:24:58 1996  Ulrich Drepper  <drepper@cygnus.com>
 
 	* locale/codeset_name.c: New file.  Provide function for information
- 	about currently used character set.
+	about currently used character set.
 	* locale/Makefile (routines): Add codeset_name.
 	* locale/langinfo.h (_NL_CTYPE_CODESET_NAME): Add new constant.
 	* locale/localeinfo.h: Change magic number because of incompatible
@@ -6600,7 +6638,7 @@ Wed Jun 19 03:24:58 1996  Ulrich Drepper  <drepper@cygnus.com>
 	* locale/programs/ld-ctype.c: Implement handling of `codeset_name'.
 
 	* locale/programs/locfile.c: Don't depend in pre-2.0 Linux specific
- 	name `MAX_IOVEC'.  Instead use standard name `UIO_MAXIOV'.
+	name `MAX_IOVEC'.  Instead use standard name `UIO_MAXIOV'.
 
 	* locale/setlocale.c (setlocale): Initialize local variables to
 	prevent warnings.
@@ -6612,27 +6650,27 @@ Thu Jun 13 17:25:11 1996  David Mosberger-Tang  <davidm@azstarnet.com>
 	* locale/programs/locale.c: Include string.h.
 
 	* sunrpc/xdr_stdio.c (xdrstdio_getlong), sunrpc/xdr_rec.c
- 	(xdrrec_getlong), sunrpc/xdr_mem.c (xdrmem_getlong): Make sure
- 	appropriate sign-extension is performed on machines with
- 	sizeof(long) > 4.
+	(xdrrec_getlong), sunrpc/xdr_mem.c (xdrmem_getlong): Make sure
+	appropriate sign-extension is performed on machines with
+	sizeof(long) > 4.
 
 	* sunrpc/xdr.c (xdr_int, xdr_u_int): If sizeof(long)==8 and
- 	sizeof(int)<sizeof(long), we need to go through a temporary
- 	variable.
+	sizeof(int)<sizeof(long), we need to go through a temporary
+	variable.
 
 	* locale/programs/ld-numeric.c: Include <alloca.h>
 
 	* libio/stdio.h (__libc_fatal): Add prototype.
 
 	* libio/cleanup.c: Use __P() to declare prototype when __STDC__ is
- 	in efect.
+	in efect.
 
 	* libio/iopopen.c (read_or_write, parent_end, child_end): Declare
- 	volatile to avoid "might get clobbered by longjmp" warning.
+	volatile to avoid "might get clobbered by longjmp" warning.
 
 	* features.h (__KERNEL_STRICT_NAMES): Define __KERNEL_STRICT_NAMES
- 	unless _LOOSE_KERNEL_NAMES is in effect (which, with high
- 	probability is a sure loser).
+	unless _LOOSE_KERNEL_NAMES is in effect (which, with high
+	probability is a sure loser).
 	* sysdeps/unix/sysv/linux/gnu/types.h (__KERNEL_STRICT_NAMES): Remove.
 
 	* sysdeps/unix/bsd/osf/alpha/start.S (errno): Removed.
@@ -6646,52 +6684,52 @@ Mon Jun 10 17:50:31 1996  David Mosberger-Tang  <davidm@azstarnet.com>
 	* sysdeps/unix/sysv/linux/alpha/pipe.S: Use PSEUDO.
 
 	* sysdeps/unix/sysv/linux/alpha/sysdep.S,
- 	sysdeps/unix/sysv/linux/alpha/brk.S,
- 	sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S,
- 	sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S,
- 	sysdeps/unix/sysv/linux/alpha/llseek.S,
- 	sysdeps/unix/sysv/linux/alpha/sigsuspend.S,
- 	sysdeps/unix/sysv/linux/alpha/syscall.S: Rename syscall_error to
- 	__syscall_error to avoid intruding application name space.
+	sysdeps/unix/sysv/linux/alpha/brk.S,
+	sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S,
+	sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S,
+	sysdeps/unix/sysv/linux/alpha/llseek.S,
+	sysdeps/unix/sysv/linux/alpha/sigsuspend.S,
+	sysdeps/unix/sysv/linux/alpha/syscall.S: Rename syscall_error to
+	__syscall_error to avoid intruding application name space.
 
 	* sysdeps/unix/sysv/linux/alpha/sysdep.h: Rename __NR_get?id
 	to SYS_get?id so that syscall stubs in sysdeps/unix define
 	these syscalls in terms of getxpid/getxuid/getxgid.
 
 	* sysdeps/unix/_exit.S, sysdeps/unix/getegid.S,
- 	sysdeps/unix/geteuid.S, sysdeps/unix/getppid.S,
- 	sysdeps/unix/execve.S, sysdeps/unix/fork.S,
- 	sysdeps/unix/syscall.S: Terminate syscall with PSEUDO_END.
+	sysdeps/unix/geteuid.S, sysdeps/unix/getppid.S,
+	sysdeps/unix/execve.S, sysdeps/unix/fork.S,
+	sysdeps/unix/syscall.S: Terminate syscall with PSEUDO_END.
 
 	* sysdeps/unix/make-syscalls.sh, sysdeps/unix/sysdep.h
- 	(PSEUDO_END): Rename END() to PSEUDO_END().
+	(PSEUDO_END): Rename END() to PSEUDO_END().
 
 	* sysdeps/unix/alpha/sysdep.h: Move error-handling code in PSEUDO
- 	to PSEUDO_END to improve branch-prediction.  Include .frame
- 	directive to make syscalls debugabble.
+	to PSEUDO_END to improve branch-prediction.  Include .frame
+	directive to make syscalls debugabble.
 	(PSEUDO_END): New macro.
 
 	* sysdeps/unix/alpha/sysdep.h, sysdeps/alpha/bb_init_func.S,
- 	sysdeps/unix/sysv/linux/alpha/brk.S: Use ldiq instead of ldi since
- 	latter is illegal under DEC Unix.
+	sysdeps/unix/sysv/linux/alpha/brk.S: Use ldiq instead of ldi since
+	latter is illegal under DEC Unix.
 
 	* sysdeps/unix/alpha/sysdep.S: Renamed from
 	sysdeps/unix/sysv/linux/alpha/sysdep.S.  This file works for OSF/1
- 	as well.
+	as well.
 	* sysdeps/unix/bsd/osf/alpha/sysdep.S: Remove (note that the
- 	EWOULDBLOCK -> EAGAIN mapping was unnecessary since
- 	EWOULDBLOCK==EAGAIN under DEC Unix and Linux/Alpha).
+	EWOULDBLOCK -> EAGAIN mapping was unnecessary since
+	EWOULDBLOCK==EAGAIN under DEC Unix and Linux/Alpha).
 
 	* sysdeps/alpha/divrem.h: Use retaddr instead of ra as the return
- 	address register in the .frame directive.
+	address register in the .frame directive.
 
 	* sysdeps/alpha/copysign.c: Remove.
 
 	* sunrpc/rpc/types.h: Include <sys/param.h> and <netinet/in.h> to
- 	avoid RPC definitions of INADDR_LOOPBACK and/or MAXHOSTNAMELEN.
+	avoid RPC definitions of INADDR_LOOPBACK and/or MAXHOSTNAMELEN.
 
 	* errno.h: Move __END_DECLS to correct place to make file
- 	compilable under c++.
+	compilable under c++.
 
 	* dirent/dirent.h: Document _DIRENT_HAVE_D_OFF macro.  Define
 	d_ino only if <direntry.h> hasn't defined d_fileno.
@@ -6705,8 +6743,8 @@ Mon Jun 10 17:50:31 1996  David Mosberger-Tang  <davidm@azstarnet.com>
 Thu Jun  6 21:39:38 1996  David Mosberger-Tang  <davidm@azstarnet.com>
 
 	* sysdeps/unix/bsd/sun/sunos4/tcsetattr.c (tcsetattr): Declare cmd
- 	as unsigned long, not as int (to avoid incorrect int->long
- 	promotion).
+	as unsigned long, not as int (to avoid incorrect int->long
+	promotion).
 
 
 
diff --git a/Makefile b/Makefile
index ceaf5b0b62..ac9e822b48 100644
--- a/Makefile
+++ b/Makefile
@@ -279,7 +279,7 @@ distribute  := README INSTALL FAQ NOTES NEWS PROJECTS			\
 	       ansidecl.h mkinstalldirs move-if-change install-sh	\
 	       configure configure.in aclocal.m4 config.sub config.guess\
 	       config.h.in config.make.in config-name.in Makefile.in	\
-	       autolock.sh munch-tmpl.c munch.awk interp.c		\
+	       autolock.sh rellns-sh munch-tmpl.c munch.awk interp.c	\
 	       sysdep.h set-hooks.h libc-symbols.h version.h shlib-versions \
 	       rpm/Makefile rpm/template rpm/rpmrc nsswitch.h netgroup.h
 
diff --git a/Makerules b/Makerules
index c563f04ef5..b7c95526b3 100644
--- a/Makerules
+++ b/Makerules
@@ -605,7 +605,7 @@ rm -f $(@F).new; \
 if test '$(@D)' = '$(<D)'; then \
   $(LN_S) $(<F) $(@F).new; \
 else \
-  $(LN_S) $< $(@F).new; \
+  $(SHELL) $(common-objpfx)$(..)rellns-sh $< $(@F).new; \
 fi; \
 mv -f $(@F).new $(@F)
 endef
diff --git a/elf/Makefile b/elf/Makefile
index cbb9c11f42..dcca90411f 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -35,7 +35,7 @@ elide-routines.so = $(dl-routines) dl-support enbl-secure
 # interpreter and operating independent of libc.
 rtld-routines	:= rtld $(dl-routines) dl-sysdep dl-minimal
 distribute	= $(rtld-routines:=.c) dynamic-link.h do-rel.h dl-machine.h \
-		  soinit.c sofini.c ldd.sh.in eval.c
+		  soinit.c sofini.c ldd.sh.in ldd.bash.in eval.c
 
 extra-libs	 = libdl
 extra-libs-others = $(extra-libs)
@@ -100,7 +100,8 @@ $(objpfx)libdl.so: $(objpfx)libdl_pic.a $(common-objpfx)libc.so $(objpfx)ld.so
 $(slibdir)/$(rtld-installed-name): $(objpfx)ld.so; $(do-install-program)
 
 $(objpfx)ldd: ldd.sh.in Makefile
-	sed 's%@RTLD@%$(slibdir)/$(rtld-installed-name)%g' < $< > $@.new
+	sed -e 's%@RTLD@%$(slibdir)/$(rtld-installed-name)%g' \
+	    -e 's%@VERSION@%$(version)%g' < $< > $@.new
 	chmod 555 $@.new
 	mv -f $@.new $@
 
diff --git a/elf/ldd.bash.in b/elf/ldd.bash.in
new file mode 100644
index 0000000000..e7ad21fa9d
--- /dev/null
+++ b/elf/ldd.bash.in
@@ -0,0 +1,66 @@
+#! @BASH@
+
+# This is the `ldd' command, which lists what shared libraries are
+# used by given dynamically-linked executables.  It works by invoking the
+# run-time dynamic linker as a command and setting the environment
+# variable LD_TRACE_LOADED_OBJECTS to a non-empty value.
+
+RTLD=@RTLD@
+usage=$"\
+ldd [OPTION]... FILE...
+  --help           print this help and exit
+  --version        print version information and exit
+Report bugs to <bug-glibc@prep.ai.mit.edu>."
+
+while test $# -gt 0; do
+  case "$1" in
+  --v*)
+    echo 'ldd (GNU libc) @VERSION@'; exit 0 ;;
+  --h*)
+    echo "$usage"; exit 0 ;;
+  --)		# Stop option prcessing
+    shift; break ;;
+  *)
+    break ;;
+  esac
+done
+
+case $# in
+0)
+  echo >&2 $"\
+ldd: missing file arguments
+Try \`ldd --help' for more information."
+  exit 1 ;;
+1)
+  # We don't list the file name when there is only one.
+  case "$1" in
+  /*) file="$1" ;;
+  *) file="./$1" ;;
+  esac
+  if test ! -f "$file"; then
+    echo "${file}:" $"no such file"
+  elif ${RTLD} --verify "$file"; then
+    LD_TRACE_LOADED_OBJECTS=1 exec ${RTLD} "$file" && exit 1
+  else
+    echo $"	not a dynamic executable"
+  fi
+  exit ;;
+*)
+  set -e	# Bail out immediately if ${RTLD} loses on any argument.
+  for file; do
+    echo "${file}:"
+    case "$file" in
+    /*) : ;;
+    *) file="./$file" ;;
+    esac
+    if test ! -f "$file"; then
+      echo "$file:" $"no such file"
+    elif ${RTLD} --verify "$file"; then
+      LD_TRACE_LOADED_OBJECTS=1 ${RTLD} "$file"
+    else
+      echo $"	not a dynamic executable"
+    fi
+  done
+esac
+
+exit 0
diff --git a/elf/ldd.sh.in b/elf/ldd.sh.in
index ede1b9790b..16d3fd8b79 100644
--- a/elf/ldd.sh.in
+++ b/elf/ldd.sh.in
@@ -2,14 +2,34 @@
 
 # This is the `ldd' command, which lists what shared libraries are
 # used by given dynamically-linked executables.  It works by invoking the
-# run-time dynamic linker as a command and giving it the special `--list'
-# switch.
+# run-time dynamic linker as a command and setting the environment
+# variable LD_TRACE_LOADED_OBJECTS to a non-empty value.
 
 RTLD=@RTLD@
+usage="\
+ldd [OPTION]... FILE...
+  --help           print this help and exit
+  --version        print version information and exit
+Report bugs to <bug-glibc@prep.ai.mit.edu>."
+
+while test $# -gt 0; do
+  case "$1" in
+  --v*)
+    echo 'ldd (GNU libc) @VERSION@'; exit 0 ;;
+  --h*)
+    echo "$usage"; exit 0 ;;
+  --)		# Stop option prcessing
+    shift; break ;;
+  *)
+    break ;;
+  esac
+done
 
 case $# in
 0)
-  echo >&2 "Usage: $0 FILE..."
+  echo >&2 "\
+ldd: missing file arguments
+Try \`ldd --help' for more information."
   exit 1 ;;
 1)
   # We don't list the file name when there is only one.
@@ -18,7 +38,7 @@ case $# in
   *) file="./$1" ;;
   esac
   if test ! -f "$file"; then
-    echo "$file: no such file"
+    echo "${file}: no such file"
   elif ${RTLD} --verify "$file"; then
     LD_TRACE_LOADED_OBJECTS=1 exec ${RTLD} "$file" && exit 1
   else
@@ -30,7 +50,7 @@ case $# in
   for file; do
     echo "${file}:"
     case "$file" in
-    /*) file="$file" ;;
+    /*) : ;;
     *) file="./$file" ;;
     esac
     if test ! -f "$file"; then
diff --git a/rellns-sh b/rellns-sh
new file mode 100755
index 0000000000..f761b6bb77
--- /dev/null
+++ b/rellns-sh
@@ -0,0 +1,67 @@
+#! /bin/sh
+# rellns-sh - Simplified ln program to generate relative symbolic link.
+# Copyright (C) 1996 Free Software Foundation, Inc.
+# Written by Ulrich Drepper <drepper@cygnus.com>, October 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+if test $# -ne 2; then
+  echo "Usage: rellns SOURCE DEST"
+  exit 1
+fi
+
+case $1 in
+/*)
+  # Make both paths absolute.
+  to=`echo $1 | sed 's%^/%%'`
+
+  if test -d $2; then
+    fromname=.
+    from=`echo $2 | sed 's%/$%%' | sed 's%^/%%'`
+  else
+    fromname=`echo $2 | sed 's%.*/\([^/]*\)$%\1%'`
+    from=`echo $2 | sed "s%/*$fromname$%%" | sed 's%^/%%'`
+  fi
+
+  case $from in
+  /*) ;;
+  ?*) from=`cd $from && pwd | sed 's%^/%%'` ;;
+  *) from=`pwd | sed 's%^/%%'` ;;
+  esac
+
+  while test -n "$to" && test -n "$from"; do
+    preto=`echo $to | sed 's%^\([^/]*\)/.*%\1%'`
+    prefrom=`echo $from | sed 's%^\([^/]*\)/.*%\1%'`
+
+    test "$preto" != "$prefrom" && break
+
+    to=`echo $to | sed 's%^[^/]*/\(.*\)$%\1%'`
+    from=`echo $from | sed 's%^[^/]*/\(.*\)$%\1%'`
+  done
+
+  while test -n "$from"; do
+    rfrom="../$rfrom"
+    from=`echo $from | sed 's%^[^/]*/*%%'`
+  done
+
+  ln -s $rfrom$to $2
+  ;;
+*)
+  # Nothing to do, the path is already relative.
+  ln -s $1 $2
+  ;;
+esac
+
+exit 0
diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h
index d11b8bf73b..b43c170951 100644
--- a/stdlib/stdlib.h
+++ b/stdlib/stdlib.h
@@ -382,6 +382,13 @@ extern int setenv __P ((__const char *__name, __const char *__value,
 extern void unsetenv __P ((__const char *__name));
 #endif
 
+#ifdef	__USE_MISC
+/* The `clearenv' was planned to be added to POSIX.1 but probably
+   never made it.  Nevertheless the POSIX.9 standard (POSIX bindings
+   for Fortran 77) requires this function.  */
+extern int clearenv __P ((void));
+#endif
+
 /* Execute the given line as a shell command.  */
 extern int system __P ((__const char *__command));
 
diff --git a/stdlib/strtol.c b/stdlib/strtol.c
index 5543ab94d1..c38f61c52f 100644
--- a/stdlib/strtol.c
+++ b/stdlib/strtol.c
@@ -1,22 +1,23 @@
-/* Copyright (C) 1991, 92, 94, 95, 96 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
-
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
-
-#ifdef HAVE_CONFIG_H
+/* strtol - Convert string representation of a number into an integer value.
+   Copyright (C) 1991, 92, 94, 95, 96 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#if HAVE_CONFIG_H
 # include <config.h>
 #endif
 
@@ -32,7 +33,7 @@ Cambridge, MA 02139, USA.  */
 extern int errno;
 #endif
 #ifndef __set_errno
-# define __set_errno(val) errno = (val)
+# define __set_errno(Val) errno = (Val)
 #endif
 
 #ifdef HAVE_LIMITS_H
@@ -121,27 +122,27 @@ extern int errno;
 #ifdef USE_WIDE_CHAR
 # include <wchar.h>
 # include <wctype.h>
-# define L_(ch) L##ch
+# define L_(Ch) L##Ch
 # define UCHAR_TYPE wint_t
 # define STRING_TYPE wchar_t
-# define ISSPACE(ch) iswspace (ch)
-# define ISALPHA(ch) iswalpha (ch)
-# define TOUPPER(ch) towupper (ch)
+# define ISSPACE(Ch) iswspace (Ch)
+# define ISALPHA(Ch) iswalpha (Ch)
+# define TOUPPER(Ch) towupper (Ch)
 #else
-# define L_(ch) ch
+# define L_(Ch) Ch
 # define UCHAR_TYPE unsigned char
 # define STRING_TYPE char
-# define ISSPACE(ch) isspace (ch)
-# define ISALPHA(ch) isalpha (ch)
-# define TOUPPER(ch) toupper (ch)
+# define ISSPACE(Ch) isspace (Ch)
+# define ISALPHA(Ch) isalpha (Ch)
+# define TOUPPER(Ch) toupper (Ch)
 #endif
 
 #ifdef __STDC__
-# define INTERNAL(x) INTERNAL1(x)
-# define INTERNAL1(x) __##x##_internal
-# define WEAKNAME(x) WEAKNAME1(x)
+# define INTERNAL(X) INTERNAL1(X)
+# define INTERNAL1(X) __##X##_internal
+# define WEAKNAME(X) WEAKNAME1(X)
 #else
-# define INTERNAL(x) __/**/x/**/_internal
+# define INTERNAL(X) __/**/X/**/_internal
 #endif
 
 #ifdef USE_NUMBER_GROUPING
@@ -340,6 +341,20 @@ noconv:
 }
 
 /* External user entry point.  */
+
+#if _LIBC - 0 == 0
+# undef PARAMS
+# if defined (__STDC__) && __STDC__
+#  define PARAMS(Args) Args
+# else
+#  define PARAMS(Args) ()
+# endif
+
+/* Prototype.  */
+INT strtol PARAMS ((const STRING_TYPE *nptr, STRING_TYPE **endptr, int base));
+#endif
+
+
 INT
 #ifdef weak_function
 weak_function
diff --git a/sysdeps/generic/putenv.c b/sysdeps/generic/putenv.c
index d8258cf270..e5031c4285 100644
--- a/sysdeps/generic/putenv.c
+++ b/sysdeps/generic/putenv.c
@@ -1,51 +1,50 @@
-/* Copyright (C) 1991, 1994, 1995 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1994, 1995, 1996 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
 
-This file is part of the GNU C Library.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
 
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
 
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 #if defined (_AIX) && !defined (__GNUC__)
  #pragma alloca
 #endif
 
-#ifdef HAVE_CONFIG_H
-#include <config.h>
+#if HAVE_CONFIG_H
+# include <config.h>
 #endif
 
 #if _LIBC || HAVE_STDLIB_H
-#include <stdlib.h>
+# include <stdlib.h>
 #endif
 #if _LIBC || HAVE_STRING_H
-#include <string.h>
+# include <string.h>
 #endif
 
 #if !__GNU_LIBRARY__ && !HAVE_STRCHR
-#define strchr index
+# define strchr index
 #endif
 
 #ifndef _LIBC
-#ifdef HAVE_ALLOCA_H
-#include <alloca.h>
-#else
-#ifdef __GNUC__
-#define alloca __builtin_alloca
-#else
+# ifdef HAVE_ALLOCA_H
+#  include <alloca.h>
+# else
+#  ifdef __GNUC__
+#   define alloca __builtin_alloca
+#  else
 extern char *alloca ();
-#endif /* __GNUC__ */
-#endif /* HAVE_ALLOCA_H */
+#  endif /* __GNUC__ */
+# endif /* HAVE_ALLOCA_H */
 #endif /* _LIBC */
 
 
diff --git a/sysdeps/generic/setenv.c b/sysdeps/generic/setenv.c
index 44830e9aa7..9403ccb035 100644
--- a/sysdeps/generic/setenv.c
+++ b/sysdeps/generic/setenv.c
@@ -1,52 +1,57 @@
 /* Copyright (C) 1992, 1995, 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
+   This file is part of the GNU C Library.
 
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
 
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
 
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
-#ifdef HAVE_CONFIG_H
-#include <config.h>
+#if HAVE_CONFIG_H
+# include <config.h>
 #endif
 
 #include <errno.h>
 
 #if _LIBC || HAVE_STDLIB_H
-#include <stdlib.h>
+# include <stdlib.h>
 #endif
 #if _LIBC || HAVE_STRING_H
-#include <string.h>
+# include <string.h>
 #endif
 #if _LIBC || HAVE_UNISTD_H
-#include <unistd.h>
+# include <unistd.h>
 #endif
 
 #if _LIBC - 0 == 0
-#define	__environ	environ
+# define __environ	environ
 #endif
 
 #if _LIBC - 0
 /* This lock protects against simultaneous modifications of `environ'.  */
-#include <libc-lock.h>
+# include <libc-lock.h>
 __libc_lock_define_initialized (static, envlock)
-#define LOCK	__libc_lock_lock (envlock)
-#define UNLOCK	__libc_lock_unlock (envlock)
+# define LOCK	__libc_lock_lock (envlock)
+# define UNLOCK	__libc_lock_unlock (envlock)
 #else
-#define LOCK
-#define UNLOCK
+# define LOCK
+# define UNLOCK
 #endif
 
+/* If this variable is not a null pointer we allocated the current
+   environment.  */
+static char **last_environ;
+
+
 int
 setenv (name, value, replace)
      const char *name;
@@ -61,17 +66,17 @@ setenv (name, value, replace)
   LOCK;
 
   size = 0;
-  for (ep = __environ; *ep != NULL; ++ep)
-    if (!strncmp (*ep, name, namelen) && (*ep)[namelen] == '=')
-      break;
-    else
-      ++size;
+  if (__environ != NULL)
+    for (ep = __environ; *ep != NULL; ++ep)
+      if (!strncmp (*ep, name, namelen) && (*ep)[namelen] == '=')
+	break;
+      else
+	++size;
 
-  if (*ep == NULL)
+  if (__environ == NULL || *ep == NULL)
     {
-      static char **last_environ;
       char **new_environ;
-      if (__environ == last_environ)
+      if (__environ == last_environ && __environ != NULL)
 	/* We allocated this space; we can extend it.  */
 	new_environ = (char **) realloc (last_environ,
 					 (size + 2) * sizeof (char *));
@@ -151,3 +156,26 @@ unsetenv (name)
 
   UNLOCK;
 }
+
+/* The `clearenv' was planned to be added to POSIX.1 but probably
+   never made it.  Nevertheless the POSIX.9 standard (POSIX bindings
+   for Fortran 77) requires this function.  */
+int
+clearenv ()
+{
+  LOCK;
+
+  if (__environ == last_environ && __environ != NULL)
+    {
+      /* We allocated this environment so we can free it.  */
+      free (__environ);
+      last_environ = NULL;
+    }
+
+  /* Clear the environment pointer removes the whole environment.  */
+  __environ = NULL;
+
+  UNLOCK;
+
+  return 0;
+}
diff --git a/sysdeps/stub/setenv.c b/sysdeps/stub/setenv.c
index f318475718..a5172fab37 100644
--- a/sysdeps/stub/setenv.c
+++ b/sysdeps/stub/setenv.c
@@ -30,3 +30,22 @@ setenv (name, value, replace)
 }
 
 stub_warning (setenv)
+
+void
+unsetenv (name)
+     const char *name;
+{
+  __set_errno (ENOSYS);
+}
+
+stub_warning (unseenv)
+
+
+int
+clearenv (void)
+{
+  __set_errno (ENOSYS);
+  return -1;
+}
+
+stub_warning (clearenv)
diff --git a/sysdeps/stub/timebits.h b/sysdeps/stub/timebits.h
index 8de0ebce8e..45185cc356 100644
--- a/sysdeps/stub/timebits.h
+++ b/sysdeps/stub/timebits.h
@@ -1,21 +1,36 @@
 /* System-dependent timing definitions.  Stub version.
-Copyright (C) 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
-
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
+   Copyright (C) 1996 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#ifdef __need_timeval
+# undef __need_timeval
+# ifndef _STRUCT_TIMEVAL
+#  define _STRUCT_TIMEVAL	1
+/* A time value that is accurate to the nearest
+   microsecond but also has a range of years.  */
+struct timeval
+  {
+    time_t tv_sec;		/* Seconds.  */
+    time_t tv_usec;		/* Microseconds.  */
+  };
+# endif	/* struct timeval */
+#endif	/* need timeval */
+
 
 #ifndef _TIMEBITS_H
 #define	_TIMEBITS_H	1
diff --git a/sysdeps/unix/sysv/linux/alpha/timebits.h b/sysdeps/unix/sysv/linux/alpha/timebits.h
new file mode 100644
index 0000000000..f777dc2aa8
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/timebits.h
@@ -0,0 +1,41 @@
+/* System-dependent timing definitions.  Linux/Alpha version.
+   Copyright (C) 1996 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#ifdef __need_timeval
+# undef __need_timeval
+# ifndef _STRUCT_TIMEVAL
+#  define _STRUCT_TIMEVAL	1
+/* A time value that is accurate to the nearest
+   microsecond but also has a range of years.  */
+struct timeval
+  {
+    int tv_sec;			/* Seconds.  */
+    int tv_usec;		/* Microseconds.  */
+  };
+# endif	/* struct timeval */
+#endif	/* need timeval */
+
+
+#ifndef _TIMEBITS_H
+#define	_TIMEBITS_H	1
+
+#include <asm/param.h>
+#define CLOCKS_PER_SEC HZ	/* XXX names not kosher */
+
+#endif	/* timebits.h */
diff --git a/sysdeps/unix/sysv/linux/errnos.h b/sysdeps/unix/sysv/linux/errnos.h
index 4456e570f0..53a2ec053d 100644
--- a/sysdeps/unix/sysv/linux/errnos.h
+++ b/sysdeps/unix/sysv/linux/errnos.h
@@ -1,21 +1,21 @@
 /* errnos.h - error constants.  Linux specific version.
-Copyright (C) 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
+   Copyright (C) 1996 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
 
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
 
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
 
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 #ifdef _ERRNO_H
 
@@ -24,13 +24,13 @@ Boston, MA 02111-1307, USA.  */
 # include <linux/errno.h>
 
 # ifndef __ASSEMBLER__
-#  ifdef _LIBC
 /* We now need a declaration of the `errno' variable.  */
 extern int errno;
 
 /* Function to get address of global `errno' variable.  */
 extern int *__errno_location __P ((void)) __attribute__ ((__const__));
 
+#  if defined _LIBC
 #   ifdef _LIBC_REENTRANT
 static inline int
 __set_errno (int __err)
diff --git a/sysdeps/unix/sysv/linux/resourcebits.h b/sysdeps/unix/sysv/linux/resourcebits.h
new file mode 100644
index 0000000000..69a0cfdc7d
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/resourcebits.h
@@ -0,0 +1,186 @@
+/* Bit values & structures for resource limits.  Linux version.
+Copyright (C) 1994, 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+Cambridge, MA 02139, USA.  */
+
+#include <asm/resource.h>
+
+/* Transmute defines to enumerations.  The macro re-definitions are
+   necessary because some programs want to test for operating system
+   features with #ifdef RUSAGE_SELF.  In ISO C the reflexive
+   definition is a no-op.  */
+
+/* Kinds of resource limit.  */
+enum __rlimit_resource
+{
+  /* Per-process CPU limit, in seconds.  */
+  _RLIMIT_CPU = RLIMIT_CPU,
+#undef RLIMIT_CPU
+  RLIMIT_CPU = _RLIMIT_CPU,
+#define RLIMIT_CPU RLIMIT_CPU
+
+  /* Largest file that can be created, in bytes.  */
+  _RLIMIT_FSIZE = RLIMIT_FSIZE,
+#undef RLIMIT_FSIZE
+  RLIMIT_FSIZE = _RLIMIT_FSIZE,
+#define	RLIMIT_FSIZE RLIMIT_FSIZE
+
+  /* Maximum size of data segment, in bytes.  */
+  _RLIMIT_DATA = RLIMIT_DATA,
+#undef RLIMIT_DATA
+  RLIMIT_DATA = _RLIMIT_DATA,
+#define	RLIMIT_DATA RLIMIT_DATA
+
+  /* Maximum size of stack segment, in bytes.  */
+  _RLIMIT_STACK = RLIMIT_STACK,
+#undef RLIMIT_STACK
+  RLIMIT_STACK = _RLIMIT_STACK,
+#define	RLIMIT_STACK RLIMIT_STACK
+
+  /* Largest core file that can be created, in bytes.  */
+  _RLIMIT_CORE = RLIMIT_CORE,
+#undef RLIMIT_CORE
+  RLIMIT_CORE = _RLIMIT_CORE,
+#define	RLIMIT_CORE RLIMIT_CORE
+
+  /* Largest resident set size, in bytes.
+     This affects swapping; processes that are exceeding their
+     resident set size will be more likely to have physical memory
+     taken from them.  */
+  _RLIMIT_RSS = RLIMIT_RSS,
+#undef RLIMIT_RSS
+  RLIMIT_RSS = _RLIMIT_RSS,
+#define	RLIMIT_RSS RLIMIT_RSS
+
+  /* Number of open files.  */
+  _RLIMIT_NOFILE = RLIMIT_NOFILE,
+#undef RLIMIT_NOFILE
+  RLIMIT_NOFILE = _RLIMIT_NOFILE,
+  RLIMIT_OFILE = RLIMIT_NOFILE, /* BSD name for same.  */
+#define RLIMIT_NOFILE RLIMIT_NOFILE
+#define RLIMIT_OFILE RLIMIT_OFILE
+
+  /* Address space limit (?) */
+  _RLIMIT_AS = RLIMIT_AS,
+#undef RLIMIT_AS
+  RLIMIT_AS = _RLIMIT_AS,
+#define RLIMIT_AS RLIMIT_AS
+
+  /* Number of processes.  */
+  _RLIMIT_NPROC = RLIMIT_NPROC,
+#undef RLIMIT_NPROC
+  RLIMIT_NPROC = _RLIMIT_NPROC,
+#define RLIMIT_NPROC RLIMIT_NPROC
+
+  /* Locked-in-memory address space.  */
+  _RLIMIT_MEMLOCK = RLIMIT_MEMLOCK,
+#undef RLIMIT_MEMLOCK
+  RLIMIT_MEMLOCK = _RLIMIT_MEMLOCK,
+#define RLIMIT_MEMLOCK RLIMIT_MEMLOCK
+
+  RLIMIT_NLIMITS = RLIM_NLIMITS,
+#undef RLIM_NLIMITS
+  RLIM_NLIMITS = RLIMIT_NLIMITS,
+#define RLIMIT_NLIMITS RLIMIT_NLIMITS
+#define RLIM_NLIMITS RLIM_NLIMITS
+
+  /* Value to indicate that there is no limit.  */
+  RLIM_INFINITY = (long int)(~0UL >> 1)
+#define RLIM_INFINITY RLIM_INFINITY
+};
+
+struct rlimit
+{
+  /* The current (soft) limit.  */
+  long int rlim_cur;
+  /* The hard limit.  */
+  long int rlim_max;
+};
+
+/* Whose usage statistics do you want?  */
+enum __rusage_who
+{
+  /* The calling process.  */
+  RUSAGE_SELF = 0,
+#define RUSAGE_SELF RUSAGE_SELF
+
+  /* All of its terminated child processes.  */
+  RUSAGE_CHILDREN = -1,
+#define RUSAGE_CHILDREN RUSAGE_CHILDREN
+
+  /* Both.  */
+  RUSAGE_BOTH = -2
+#define RUSAGE_BOTH RUSAGE_BOTH
+};
+
+#include <sys/time.h>		/* For `struct timeval'.  */
+
+/* Structure which says how much of each resource has been used.  */
+struct rusage
+{
+  /* Total amount of user time used.  */
+  struct timeval ru_utime;
+  /* Total amount of system time used.  */
+  struct timeval ru_stime;
+  /* Maximum resident set size (in kilobytes).  */
+  long int ru_maxrss;
+  /* Amount of sharing of text segment memory
+     with other processes (kilobyte-seconds).  */
+  long int ru_ixrss;
+  /* Amount of data segment memory used (kilobyte-seconds).  */
+  long int ru_idrss;
+  /* Amount of stack memory used (kilobyte-seconds).  */
+  long int ru_isrss;
+  /* Number of soft page faults (i.e. those serviced by reclaiming
+     a page from the list of pages awaiting reallocation.  */
+  long int ru_minflt;
+  /* Number of hard page faults (i.e. those that required I/O).  */
+  long int ru_majflt;
+  /* Number of times a process was swapped out of physical memory.  */
+  long int ru_nswap;
+  /* Number of input operations via the file system.  Note: This
+     and `ru_oublock' do not include operations with the cache.  */
+  long int ru_inblock;
+  /* Number of output operations via the file system.  */
+  long int ru_oublock;
+  /* Number of IPC messages sent.  */
+  long int ru_msgsnd;
+  /* Number of IPC messages received.  */
+  long int ru_msgrcv;
+  /* Number of signals delivered.  */
+  long int ru_nsignals;
+  /* Number of voluntary context switches, i.e. because the process
+     gave up the process before it had to (usually to wait for some
+     resource to be available).  */
+  long int ru_nvcsw;
+  /* Number of involuntary context switches, i.e. a higher priority process
+     became runnable or the current process used up its time slice.  */
+  long int ru_nivcsw;
+};
+
+/* Priority limits.  */
+#define PRIO_MIN	-20	/* Minimum priority a process can have.  */
+#define PRIO_MAX	20	/* Maximum priority a process can have.  */
+
+/* The type of the WHICH argument to `getpriority' and `setpriority',
+   indicating what flavor of entity the WHO argument specifies.  */
+enum __priority_which
+{
+  PRIO_PROCESS = 0,		/* WHO is a process ID.  */
+  PRIO_PGRP = 1,		/* WHO is a process group ID.  */
+  PRIO_USER = 2			/* WHO is a user ID.  */
+};
diff --git a/sysdeps/unix/sysv/linux/timebits.h b/sysdeps/unix/sysv/linux/timebits.h
index b5eaec91b0..8aed9e94df 100644
--- a/sysdeps/unix/sysv/linux/timebits.h
+++ b/sysdeps/unix/sysv/linux/timebits.h
@@ -1,21 +1,36 @@
 /* System-dependent timing definitions.  Linux version.
-Copyright (C) 1996 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
-
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
-
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
+   Copyright (C) 1996 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#ifdef __need_timeval
+# undef __need_timeval
+# ifndef _STRUCT_TIMEVAL
+#  define _STRUCT_TIMEVAL	1
+/* A time value that is accurate to the nearest
+   microsecond but also has a range of years.  */
+struct timeval
+  {
+    time_t tv_sec;		/* Seconds.  */
+    time_t tv_usec;		/* Microseconds.  */
+  };
+# endif	/* struct timeval */
+#endif	/* need timeval */
+
 
 #ifndef _TIMEBITS_H
 #define	_TIMEBITS_H	1
diff --git a/time/Makefile b/time/Makefile
index 7eeedd4e53..e29a50b4d6 100644
--- a/time/Makefile
+++ b/time/Makefile
@@ -121,8 +121,13 @@ target-zone-flavor = $(filter /posix /right, \
 ifdef localtime
 $(installed-localtime-file): $(zonedir)/$(localtime) $(objpfx)zic
 	$(make-target-directory)
-	if test -r $@; then echo Site timezone NOT reset to Factory.; else \
-	ln -s -f $< $@; fi
+	if test -r $@; then \
+	  echo Site timezone NOT reset to Factory.; \
+	else \
+	  rm -f $@T; \
+	  $(SHELL) $(common-objpfx)$(..)rellns-sh $< $@T; \
+	  mv -f $@T $@; \
+	fi
 endif
 ifdef posixrules
 $(installed-posixrules-file): $(zonedir)/$(posixrules) $(objpfx)zic
diff --git a/time/sys/time.h b/time/sys/time.h
index f7553dd3a1..3646f9f060 100644
--- a/time/sys/time.h
+++ b/time/sys/time.h
@@ -23,15 +23,11 @@ Cambridge, MA 02139, USA.  */
 
 #include <time.h>
 
-__BEGIN_DECLS
+#define __need_timeval
+#include <timebits.h>
 
-/* A time value that is accurate to the nearest
-   microsecond but also has a range of years.  */
-struct timeval
-  {
-    int tv_sec;			/* Seconds.  */
-    int tv_usec;		/* Microseconds.  */
-  };
+
+__BEGIN_DECLS
 
 /* Macros for converting between `struct timeval' and `struct timespec'.  */
 #define TIMEVAL_TO_TIMESPEC(tv, ts) {                                   \