Compare commits

...
Author SHA1 Message Date
Ulrich Drepper 88c24ea1c6 Remove duplicate. 1996-10-08 02:43:01 +00:00
Ulrich Drepper cccda09fd7 update from main archive 961005
Sun Oct  6 02:05:52 1996  Ulrich Drepper  <drepper@cygnus.com>

	* posix/getopt.c: Add casts to prevent warnings.
	* posix/regex.c: Likewise.

	* math/Makefile (long-m-routines, long-m-yes): Define to correct
	values to make `long double' functions available.
	(distribute): Add $(long-m-yes:=.c).

	* sysdeps/libm-i387/s_ceill.S: Correct loading of return value.
	Use long double instruction.

	* sysdeps/libm-ieee754/e_atanhl.c (huge): Correct constant.
	* sysdeps/libm-ieee754/e_asinhl.c: Likewise.
	* sysdeps/libm-ieee754/s_tanhl.c: Likewise.

	* sysdeps/libm-ieee754/e_coshl.c: New file.

	* sysdeps/libm-ieee754/s_asinh.c [!NO_LONG_DOUBLE]: Define names
	for `long double' version as alias.
	* sysdeps/libm-ieee754/s_atan.c: Likewise.
	* sysdeps/libm-ieee754/s_cbrt.c: Likewise.
	* sysdeps/libm-ieee754/s_ceil.c: Likewise.
	* sysdeps/libm-ieee754/s_copysign.c: Likewise.
	* sysdeps/libm-ieee754/s_cos.c: Likewise.
	* sysdeps/libm-ieee754/s_erf.c: Likewise.
	* sysdeps/libm-ieee754/s_expm1.c: Likewise.
	* sysdeps/libm-ieee754/s_fabs.c: Likewise.
	* sysdeps/libm-ieee754/s_finite.c: Likewise.
	* sysdeps/libm-ieee754/s_floor.c: Likewise.
	* sysdeps/libm-ieee754/s_frexp.c: Likewise.
	* sysdeps/libm-ieee754/s_ilogb.c: Likewise.
	* sysdeps/libm-ieee754/s_ldexp.c: Likewise.
	* sysdeps/libm-ieee754/s_log1p.c: Likewise.
	* sysdeps/libm-ieee754/s_logb.c: Likewise.
	* sysdeps/libm-ieee754/s_modf.c: Likewise.
	* sysdeps/libm-ieee754/s_nextafter.c: Likewise.
	* sysdeps/libm-ieee754/s_rint.c: Likewise.
	* sysdeps/libm-ieee754/s_scalbn.c: Likewise.
	* sysdeps/libm-ieee754/s_significand.c: Likewise.
	* sysdeps/libm-ieee754/s_sin.c: Likewise.
	* sysdeps/libm-ieee754/s_tan.c: Likewise.
	* sysdeps/libm-ieee754/s_tanh.c: Likewise.
	* sysdeps/libm-ieee754/w_acos.c: Likewise.
	* sysdeps/libm-ieee754/w_acosh.c: Likewise.
	* sysdeps/libm-ieee754/w_sin.c: Likewise.
	* sysdeps/libm-ieee754/w_atan2.c: Likewise.
	* sysdeps/libm-ieee754/w_atanh.c: Likewise.
	* sysdeps/libm-ieee754/w_cabs.c: Likewise.
	* sysdeps/libm-ieee754/w_cosh.c: Likewise.
	* sysdeps/libm-ieee754/w_drem.c: Likewise.
	* sysdeps/libm-ieee754/w_exp.c: Likewise.
	* sysdeps/libm-ieee754/w_fmod.c: Likewise.
	* sysdeps/libm-ieee754/w_gamma.c: Likewise.
	* sysdeps/libm-ieee754/w_gamma_r.c: Likewise.
	* sysdeps/libm-ieee754/w_hypot.c: Likewise.
	* sysdeps/libm-ieee754/w_j0.c: Likewise.
	* sysdeps/libm-ieee754/w_j1.c: Likewise.
	* sysdeps/libm-ieee754/w_jn.c: Likewise.
	* sysdeps/libm-ieee754/w_lgamma.c: Likewise.
	* sysdeps/libm-ieee754/w_lgamma_r.c: Likewise.
	* sysdeps/libm-ieee754/w_log.c: Likewise.
	* sysdeps/libm-ieee754/w_log10.c: Likewise.
	* sysdeps/libm-ieee754/w_pow.c: Likewise.
	* sysdeps/libm-ieee754/w_remainder.c: Likewise.
	* sysdeps/libm-ieee754/w_scalb.c: Likewise.
	* sysdeps/libm-ieee754/w_sinh.c: Likewise.
	* sysdeps/libm-ieee754/w_sqrt.c: Likewise.

	Stub files for missing long double math functions.
	* sysdeps/stub/e_acoshl.c: New file.
	* sysdeps/stub/e_hypotl.c: New file.
	* sysdeps/stub/e_j0l.c: New file.
	* sysdeps/stub/e_j1l.c: New file.
	* sysdeps/stub/e_jnl.c: New file.
	* sysdeps/stub/e_lgammal_r.c: New file.
	* sysdeps/stub/e_powl.c: New file.
	* sysdeps/stub/e_rem_pio2l.c: New file.
	* sysdeps/stub/e_sinhl.c: New file.
	* sysdeps/stub/k_cosl.c: New file.
	* sysdeps/stub/k_rem_pio2l.c: New file.
	* sysdeps/stub/k_sinl.c: New file.
	* sysdeps/stub/k_tanl.c: New file.
	* sysdeps/stub/s_erfl.c: New file.
	* sysdeps/stub/s_expm1l.c: New file.

	* sysdeps/i386/__longjmp.S: Use PSEUDO_END macro to provide
	.size directive.
	* sysdeps/i386/bsd-_setjmp.S: Likewise.
	* sysdeps/i386/bsd-setjmp.S: Likewise.
	* sysdeps/i386/memchr.S: Likewise.
	* sysdeps/i386/memcmp.S: Likewise.
	* sysdeps/i386/setjmp.S: Likewise.
	* sysdeps/i386/stpcpy.S: Likewise.
	* sysdeps/i386/stpncpy.S: Likewise.
	* sysdeps/i386/strchr.S: Likewise.
	* sysdeps/i386/strcspn.S: Likewise.
	* sysdeps/i386/strpbrk.S: Likewise.
	* sysdeps/i386/strrchr.S: Likewise.
	* sysdeps/i386/strspn.S: Likewise.
	* sysdeps/i386/strtok.S: Likewise.
	* sysdeps/i386/i486/strcat.S: Likewise.
	* sysdeps/i386/i486/strlen.S: Likewise.
	* sysdeps/i386/i586/memset.S: Likewise.
	* sysdeps/i386/i586/strchr.S: Likewise.
	* sysdeps/i386/i586/strlen.S: Likewise.
	* sysdeps/libm-i387/e_acos.S: Likewise.
	* sysdeps/libm-i387/e_acosl.S: Likewise.
	* sysdeps/libm-i387/e_asin.S: Likewise.
	* sysdeps/libm-i387/e_asinl.S: Likewise.
	* sysdeps/libm-i387/e_atan2.S: Likewise.
	* sysdeps/libm-i387/e_atan2l.S: Likewise.
	* sysdeps/libm-i387/e_exp.S: Likewise.
	* sysdeps/libm-i387/e_expl.S: Likewise.
	* sysdeps/libm-i387/e_fmod.S: Likewise.
	* sysdeps/libm-i387/e_fmodl.S: Likewise.
	* sysdeps/libm-i387/e_log.S: Likewise.
	* sysdeps/libm-i387/e_log10.S: Likewise.
	* sysdeps/libm-i387/e_log10l.S: Likewise.
	* sysdeps/libm-i387/e_logl.S: Likewise.
	* sysdeps/libm-i387/e_remainder.S: Likewise.
	* sysdeps/libm-i387/e_remainderf.S: Likewise.
	* sysdeps/libm-i387/e_remainderl.S: Likewise.
	* sysdeps/libm-i387/e_scalb.S: Likewise.
	* sysdeps/libm-i387/e_scalbl.S: Likewise.
	* sysdeps/libm-i387/e_sqrt.S: Likewise.
	* sysdeps/libm-i387/e_sqrtf.S: Likewise.
	* sysdeps/libm-i387/e_sqrtl.S: Likewise.
	* sysdeps/libm-i387/s_atan.S: Likewise.
	* sysdeps/libm-i387/s_atanf.S: Likewise.
	* sysdeps/libm-i387/s_atanl.S: Likewise.
	* sysdeps/libm-i387/s_ceil.S: Likewise.
	* sysdeps/libm-i387/s_ceilf.S: Likewise.
	* sysdeps/libm-i387/s_ceill.S: Likewise.
	* sysdeps/libm-i387/s_copysign.S: Likewise.
	* sysdeps/libm-i387/s_copysignf.S: Likewise.
	* sysdeps/libm-i387/s_copysignl.S: Likewise.
	* sysdeps/libm-i387/s_cos.S: Likewise.
	* sysdeps/libm-i387/s_cosf.S: Likewise.
	* sysdeps/libm-i387/s_cosl.S: Likewise.
	* sysdeps/libm-i387/s_finite.S: Likewise.
	* sysdeps/libm-i387/s_finitef.S: Likewise.
	* sysdeps/libm-i387/s_finitel.S: Likewise.
	* sysdeps/libm-i387/s_floor.S: Likewise.
	* sysdeps/libm-i387/s_floorf.S: Likewise.
	* sysdeps/libm-i387/s_floorl.S: Likewise.
	* sysdeps/libm-i387/s_ilogb.S: Likewise.
	* sysdeps/libm-i387/s_ilogbf.S: Likewise.
	* sysdeps/libm-i387/s_ilogbl.S: Likewise.
	* sysdeps/libm-i387/s_log1p.S: Likewise.
	* sysdeps/libm-i387/s_log1pf.S: Likewise.
	* sysdeps/libm-i387/s_log1pl.S: Likewise.
	* sysdeps/libm-i387/s_logb.S: Likewise.
	* sysdeps/libm-i387/s_logbf.S: Likewise.
	* sysdeps/libm-i387/s_logbl.S: Likewise.
	* sysdeps/libm-i387/s_rint.S: Likewise.
	* sysdeps/libm-i387/s_rintf.S: Likewise.
	* sysdeps/libm-i387/s_rintl.S: Likewise.
	* sysdeps/libm-i387/s_scalbn.S: Likewise.
	* sysdeps/libm-i387/s_scalbnf.S: Likewise.
	* sysdeps/libm-i387/s_scalbnl.S: Likewise.
	* sysdeps/libm-i387/s_significand.S: Likewise.
	* sysdeps/libm-i387/s_significandf.S: Likewise.
	* sysdeps/libm-i387/s_significandl.S: Likewise.
	* sysdeps/libm-i387/s_sin.S: Likewise.
	* sysdeps/libm-i387/s_sinf.S: Likewise.
	* sysdeps/libm-i387/s_sinl.S: Likewise.
	* sysdeps/libm-i387/s_tan.S: Likewise.
	* sysdeps/libm-i387/s_tanf.S: Likewise.
	* sysdeps/libm-i387/s_tanl.S: Likewise.

	* sysdeps/unix/sysv/linux/i386/clone.S: Add .size directive.
	* sysdeps/unix/sysv/linux/i386/mmap.S. Likewise.
	* sysdeps/unix/sysv/linux/i386/socket.S. Likewise.
	* sysdeps/unix/sysv/linux/i386/sysdep.S. More compact .size line.

	* sysdeps/i386/sysdep.h (ASM_SIZE_DIRECTIVE): New macro.  Used
	to provide .size directive on ELF systems.

	* sysdeps/unix/sysv/linux/i386/profil-counter.h: Include
	<sigcontext.h> and rename parameter type to sigcontext.
	* sysdeps/unix/sysv/linux/i386/sigcontext.h New file.

	* sysdeps/unix/sysv/linux/i386/syscall.S: From Linux 2.1 on
	negative values might occur as positive results.  Test against
	-125 to decide for error or not.
	* sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise for system calls.

Thu Oct  3 21:07:58 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* elf/dl-open.c: Use _DYNAMIC instead of _dl_start to decide
	whether this is a statically linked program.  The latter is now
	always defined.

Fri Oct  4 02:08:10 1996  Bang Jun-Young  <bangjy@nownuri.nowcom.co.kr>

	* po/ko.po: Update.

Fri Oct  4 02:07:46 1996  Michel Robitaille  <robitail@IRO.UMontreal.CA>

	* po/fr.po: New file.

Fri Oct  4 05:04:52 1996  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/i386/sigcontext.h: New file.

	Add support for MD5 crypt replacement.
	* Makefile (subdirs): Add crypt.
	* shlib-versions: Add entry for libcrypt.
	* crypt/md5-crypt.c: New file.
	* crypt/md5.c: New file.
	* crypt/md5.h: New file.
	* sysdeps/generic/crypt-entry.c: New file.
	* sysdeps/generic/crypt.h: New file.

Thu Oct  3 20:53:23 1996  Andreas Jaeger  <aj@arthur.pfalz.de>

	* dirent/tst-seekdir.c: Provide correct prototypes.
	* io/test-utime.c: Likewise.
	* malloc/mallocbug.c: Likewise.
	* posix/testfnm.c: Likewise.
	* stdio-common/xbug.c: Likewise.
	* sysdeps/posix/cuserid.c: Likewise.

Wed Oct  2 13:33:48 1996  Richard Henderson  <rth@tamu.edu>

	Provide optimized string functions for Alpha processors.
	* sysdeps/alpha/bzero.S: New file.
	* sysdeps/alpha/memset.S: New file.
	* sysdeps/alpha/stpcpy.S: New file.
	* sysdeps/alpha/stpncpy.S: New file.
	* sysdeps/alpha/strcat.S: New file.
	* sysdeps/alpha/strchr.S: New file.
	* sysdeps/alpha/strcpy.S: New file.
	* sysdeps/alpha/strncat.S: New file.
	* sysdeps/alpha/strncpy.S: New file.
	* sysdeps/alpha/strrchr.S: New file.
	* sysdeps/alpha/stxcpy.S: New file.
	* sysdeps/alpha/stxncpy.S: New file.

	* sysdeps/alpha/Makefile [$(sudir)==string]: Add stxcpy and
	stxncpy to sysdep_routines.
	Minor correction.

Wed Oct  2 13:41:48 1996  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/generic/strtok.c: Don't set stored pointer to NULL when
 	notheing 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>

	* sysdeps/posix/tempname.c (__stdio_gen_tempname): Don't declare
	`i' as const.

Mon Sep 30 22:38:29 1996  Richard Henderson  <rth@tamu.edu>

	* sysdeps/generic/strtok.c: When we hit EOS, don't set olds to
	NULL immediately; we're going to get called one more time.
	* sysdeps/generic/strtok_r.c: Likewise.

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.

	* stdio-common/tmpname.c (tmpbuf): Don't define as array of
 	pointers.

Tue Oct  1 01:43:11 1996  Ulrich Drepper  <drepper@cygnus.com>

	* libio/iofclose.c: Move unlocking to right position.

Mon Sep 30 03:08:34 1996  Richard Henderson  <rth@tamu.edu>

	* misc/Makefile: Kill force-wrapper.
	* misc/force-wrapper.c: Delete.

	* elf/eval.c: Add <string.h>.

	* gmon/sys/gmon_out.h: Nonsense like `char foo[sizeof(char*)]'
	followed by `bcopy(&ptr, &foo, sizeof(foo))' helps portability
	and binary compatibility not at all.  Better to do `char *foo'
	followed by `foo = ptr' as it is much cleaner.
	(struct gmon_hdr): Fix version.
	(struct gmon_hist_hdr): Fix low_pc, high_pc, hist_size, prof_rate.
	(struct gmon_cg_arc_record): Fix from_pc, self_pc, count.
	* gmon/gmon.c: De-ansidecl-ify.
	(write_hist): De-bcopy-fy.
	(write_call_graph): Likewise.

	* gmon/mcount.c: Assume _MCOUNT_DECL does the entire declaration.
	* sysdeps/alpha/machine-gmon.h: Update _MCOUNT_DECL.
	* sysdeps/generic/machine-gmon.h: Likewise.

	* resolv/netdb.h: Add __set_h_errno to mimic __set_errno.
	* nss/getXXent_r.c: Use __set_h_errno to set h_errno in all funcs.
	* nss/nss_dns/dns-network.c: Likewise.
	* resolv/getunamaddr.c: Likewise.  Also use __set_errno where needed.
	* resolv/getnetnamadr.c: Likewise.
	* resolv/res_debug.c: Likewise.
	* resolv/res_mkquery.c: Likewise.
	* resolv/res_query.c: Likewise.

	* libio/clearerr_u.c: It's not necessary to define __ protected
	function so don't do it.
	* libio/feof_u.c, libio/ferror_u.c, libio/fputc_u.c,
	  libio/getc_u.c, libio/getchar_u.c, libio/iofflush_u.c: Likewise.

	* libio/fgetc.c: Avoid a warning by casting _IO_funlockfile for
	the cleanup registrar.
	* libio/fputc.c, libio/freopen.c, libio/fseek.c, libio/getc.c,
	  libio/getchar.c, libio/iofclose.c, libio/iofflush.c,
	  libio/iofgetpos.c, libio/iofgets.c, libio/iofputs.c,
	  libio/iofread.c, libio/iofsetpos.c, libio/ioftell.c,
	  libio/iofwrite.c, libio/iogetdelim.c, libio/iogets.c,
	  libio/ioputs.c, libio/iosetbuffer.c, libio/iosetvbuf.c,
	  libio/ioungetc.c, libio/putc.c, libio/putchar.c, libio/rewind.c:
	Likewise.

	* locale/programs/ld-ctype.c: Include <alloca.h>.

	* login/login_tty.c: Get login_tty prototype from <utmp.h>.

	* posix/sys/types.h: Change #defines to typedefs.  This is looking
	forward to more comprehensive namespace cleanups for C++.
	* posix/unistd.h: Likewise for ssize_t.

	* pwd/getpw.c: Prototype and rename getpw -> __getpw and add a
	weak alias.

	* resolv/base64.c: Don't do `for (NULL; ...)' as it causes
	`statement with no effect' warnings.
	* resolv/inet_neta.c: Include <string.h> for strlen.

	* stdio-common/getline.c: Undef ssize_t before libio redefinition.
	* stdio-common/tstgetln.c: Same.  De-ansidecl-ify.
	* stdio-common/vfprintf.c: Same for va_list.
	* stdio-common/vfscanf.c: Same.
	* stdio-common/reg-printf.c: Prototype the __ function.
	* stdio-common/scanf.c [USE_IN_LIBIO]: Include <libioP.h> for
	_IO_vscanf declaration.

	* string/tester.c: Tsk, tsk.  Don't cast pointers to int,
	but to unsigned long for the health of 64-bit systems.

	* sunrpc/svc_udp.c: Define MAX only if we don't have it yet.
	Many system's <sys/param.h> pulls this in.

	* sysdeps/generic/dl-cache.c: Kill the bottom half of the
	patch doubled file.

	* sysdeps/generic/pty.c (forkpty): Get login_tty decl from <utmp.h>
	instead of defining it locally.

	* sysdeps/posix/sigvec.c: Prototype wrapper_handler and convert_mask.
	* sysdeps/stub/chflags.c: Prototype chflags.
	* sysdeps/stub/fchflags.c: Prototype fchflags.
	* sysdeps/stub/sstk.c: Prototype sstk.

	* sysdeps/unix/alpha/sysdep.S:  Add strong alias from errno
	variable to __errno.  Update __syscall_error to store to both
	the global and per-thread variables.

	* sysdeps/unix/sysv/linux/init-first.c: Change include of
	init-first.h from "" to <> as "" does not search the include path.
	Prototype _dl_start.

Sun Sep 29 14:41:17 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/Makefile ($(common-objpfx)s-proto.d): Make it a
	pattern rule to get the right stem.

Sat Sep 28 01:30:06 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makefile ($(objpfx)version-info.h): Fix typo in previous change.

Sat Sep 28 00:44:38 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/posix/euidaccess.c (__set_errno): Fix typo.

Sat Sep 28 00:40:38 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* malloc/free.c (_free_internal): Don't call free recursively, use
	the internal functions instead.

Sat Sep 28 00:23:20 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/posix/tempname.c (__stdio_gen_tempname) [USE_IN_LIBIO &&
	_IO_MTSAFE_IO]: Allocate and initialize the file lock.

Fri Sep 27 23:58:17 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* catgets/gencat.c (main): Print version information on stdout,
	not stderr.
	* db/makedb.c: Likewise.
	* locale/programs/locale.c: Likewise.
	* locale/programs/localedef.c: Likewise.

Mon Sep 30 00:14:26 1996  Ulrich Drepper  <drepper@cygnus.com>

	Add implementation of netgroup.
	* inet/Makefile (distributes): Add netgroup.h.
	(routines): Add getnetgrent.c and getnetgrent_r.c.
	* inet/getnetgrent.c: New file.
	* inet/getnetgrent_r.c: New file.
	* inet/netgroup.h: New file.
	* netgroup.h: New file.
	* nsswitch.h: New file.
	* nss/Makefile (databases): Add getgrp.
	* nss/databases.def: Add netgroup.
	* nss/db-Makefile: Add rules for netgroup.
	* nss/netgrp-lookup.c: New file.
	* nss/nss.h: Add new status value NSS_STATUS_RETURN which will
	always return without a check of the transition table.
	* nss/nsswitch.h (struct service_user): Extend actions array to
	five elements.
	* nss/nsswitch.c (__nss_next): Allow NSS_STATUS_RETURN as legal
	status value.
	(nss_parse_service_list): Initialize action for NSS_STATUS_RETURN
	to NSS_ACTION_RETURN.
	* nss/nss_db/db-netgrp.c: New file.
	* nss/nss_files/files-netgrp.c: New file.
	* nss/nsswitch.conf: Add entry for netgroup.
	* resolv/netdb.h: Add prototypes for netgroup functions.

	* nss/nss_db/db-XXX.c: Use `enum nss_status' type when status
	value is used.

Sun Sep 29 12:55:58 1996  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/syscalls.list: Change funciton name for
 	_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>

	* inet/rcmd.c: Remove definition of MIN.

Sat Sep 28 14:22:51 1996  Ulrich Drepper  <drepper@cygnus.com>

	* dirent/readdir_r.c: Removed.  We indeed need a real implementation.
	* sysdeps/unix/readdir_r.c: New file.
	* sysdeps/unix/readdir.c: Remove check for correct parameter
	values.  Let them simply die.
	* manual/filesys.texi: Document readdir_r.

	* sysdeps/gnu/errlist.awk: Define _sys_errlist as `const char* const'.
	Proposed by Per Abrahamsen <abraham@dina.kvl.dk>.
1996-10-06 02:05:11 +00:00
Thomas Bushnell, BSG 106b47fccf Regenerated from sysdeps/mach/hurd/errnos.awk manual/errno.texi /home/hi2/build/i486-gnu/libc/config.h libintl.h intl/libintl.h features.h sys/cdefs.h misc/sys/cdefs.h /usr/lib/gcc-lib/i486-gnu-miles/2.7.2/include/stddef.h locale.h locale/locale.h /gd4/gnu/miles/i486-gnu/install/include/mach/message.h /gd4/gnu/miles/i486-gnu/install/include/mach/kern_return.h /gd4/gnu/miles/i486-gnu/install/include/mach/machine/kern_return.h /gd4/gnu/miles/i486-gnu/install/include/mach/port.h /gd4/gnu/miles/i486-gnu/install/include/mach/boolean.h /gd4/gnu/miles/i486-gnu/install/include/mach/machine/boolean.h /gd4/gnu/miles/i486-gnu/install/include/mach/machine/vm_types.h /gd4/gnu/miles/i486-gnu/install/include/mach/mig_errors.h /gd4/gnu/miles/i486-gnu/install/include/device/device_types.h /gd4/gnu/miles/i486-gnu/install/include/mach/std_types.h 1996-10-03 21:26:11 +00:00
Ulrich Drepper a68b0d31a3 update from main archive 961001 1996-10-02 01:40:17 +00:00
Karl Berry 2d07133b50 Untabify. 1996-09-30 17:47:57 +00:00
Karl Berry 359a1d0b5f Changes for Texinfo 3.8 release; see ChangeLog. 1996-09-30 17:39:54 +00:00
Ulrich Drepper d68171edce update from main archive 960927
Sat Sep 28 03:02:49 1996  Ulrich Drepper  <drepper@cygnus.com>
	* dirent/Makefile (routines): Add readdir_r.
	* dirent/readdir_r.c: New file.  Wrapper around readdir.c.
	* dirent/dirent.h: Add prototype for readdir_r.
	* misc/hsearch_r.c (ENTRY): Make field `used' of type `unsigned int'
	to prevent warnings.
	* sysdeps/unix/sysv/linux/getsysstats.c (get_proc_path):
 	Initialize `result'.

Sat Sep 28 01:16:42 1996  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/generic/strsep.c: Rename to __strsep and make strsep
	weak alias.
	* string/string.h: Add prototype for __strsep.
	* misc/mntent_r.c: Use __strsep instead of strsep to keep
	namespace clean.

	* sysdeps/stub/nanosleep.c: Rename to __libc_nanosleep and make
	__nanosleep and nanosleep weak aliases.
	* sysdeps/unix/sysv/linux/syscalls.list: Add __nanosleep as weak
	alias.
	* sysdeps/unix/sysv/linux/sleep.c: Call __nanosleep instead of
	nanosleep to keep namespace clean.

	* sysdeps/posix/ttyname.c (ttyname): Add cast to prevent warning.
	* sysdeps/posix/ttyname_r.c (ttyname_r): Likewise.
	* sysdeps/posix/getcwd.c (__getcwd): Likewise.

	* sysdeps/unix/nlist.c: Use ISO C definition since we don't always
	have prototype.

	* login/Makefile (headers): Add pty.h.
	* login/pty.h: New file.
	* sysdeps/generic/pty.h: Include <pty.h>.
	* login/pututline_r.c: Add cast to prevent warning.

	* gmon/gmon.c: Add prototype for __profile_frequency.
	(monstartup): Add cast to prevent warning.
	* sysdeps/generic/prof-freq.c: Change to use ISO C style definition.

	* locale/programs/ld-time.c (time_output): Write `era' information
	in correct order.

Sat Sep 28 00:11:08 1996  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/syscalls.list: Add weak alias
	`adjtimex'.
	Set caller for mlock, mlockall, mremap, munlock, and munlockall
	to EXTRA.
	Reported by Matthias Urlichs <smurf@smurf.noris.de>.

1996-09-27  Paul Eggert  <eggert@twinsun.com>

	* strftime.c (strftime): Output incomplete formats like %E
	at end of string.

1996-09-27  Paul Eggert  <eggert@twinsun.com>

	* strftime.c (strftime): Add support for %EC and %Ey.
	Fix support for %EY.  This uses the new _nl_get_era_entry function.

Fri Sep 27 14:12:27 1996  Ulrich Drepper  <drepper@cygnus.com>

	Security related patch by Elliot Lee <sopwith@redhat.com> and
	David Holland <dholland@eecs.harvard.edu>.

	* inet/rexec.c (rexec): Increase size of `num' array from 8 to 32.
	* inet/ruserpass.c (ruserpass): Don't allow $HOME envvar to not exist.

	* sysdeps/generic/getenv.c (__secure_getenv): New function.  Return
	NULL when programs runs with SUID or SGID enabled.
	* sysdeps/stub/getenv.c: Make __secure_getenv an alias of getenv.
	* stdlib/stdlib.h: Add prototype for __secure_getenv.

	* locale/setlocale.c: Use __secure_getenv.
	* resolv/res_init.c: Likewise.
	* resolv/res_query.c: Likewise.
	* inet/ruserpass.c: Likewise.
	* sysdeps/posix/tempname.c: Likewise.
	* malloc/mtrace.c: Likewise.
	* catgets/catgets.c: Likewise.

	Make temporary file handling functions reentrant.

	* stdio-common/tmpnam.c: Rewrite to have own buffer to write
	result to.  The called __stdio_gen_tempname function must be
	thread safe.
	* stdio-common/tmpnam_r.c: New file.
	* stdio/stdio.h: Add prototype for `tmpnam_r'.
	Change prototype for __stdio_gen_tempname.
	* stdio/libio.h: Likewise.
	* sysdeps/posix/tempname.c: Add new parameters and use them instead
	of static buffer.
	Don't reset `indeces' when PID changed between calls.
	Don't fail for long running programs when index counter once
	reached the limit.
	* sysdeps/stub/tempname.c: Likewise.
	* stdio-common/tempnam.c: Provide local buffer as extra argument
	to __stdio_gen_tempname.  This makes this function reentrant.
	* stdio-common/tmpfile.c: Likewise.
	* stdio-common/temptest.c: Provide extra argument to
	__stdio_gen_tempname.
	* manual/filesys.texi: Describe tmpnam_r and add comments about
	reentrancy of the functions.

	* inet/rcmd.c: Fixed address length handling.

	* 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.

	* sysdeps/unix/sysv/linux/sys/sysinfo.h: Correct prototype names
	for get_nprocs and get_nprocs_conf.
	* sysdeps/generic/sys/sysinfo.h: Likewise.

	* stdlib/test-canon.c: Finally do the right fix.

	* misc/Makefile: Only compile force-wrapper when compiling
	reentrant libc.
1996-09-28 03:24:10 +00:00
Ulrich Drepper c40298232a update from main archive
Mon Sep 23 15:31:04 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* hurd/Makefile ($(includedir)/rpc/netdb.h): There is no make
	variable `top_srcdir' in libc; use $(..) instead.

	* sysdeps/mach/hurd/Makefile (rtld-installed-name): Delete special
	definition.  It was a *Mistake*.  (With a capital M.)

	* sysdeps/mach/getsysstats.c (__get_nprocs): Renamed from
	__get_nproc.
	(__get_nprocs_conf): Renamed from __get_nproc_conf.

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.
	* 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.
	* sysdeps/stub/system.c: Likewise.
	* posix/wait.c: Rename function to __libc_wait and make __wait a
	weak alias.  De-ANSI-fy.
	* sysdeps/standalone/read.c: Rename function to __libc_read and
	make __read a weak alias.
	* sysdeps/stub/read.c: Likewise.
	* sysdeps/standalone/write.c: Rename function to __libc_write and
	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.
	* sysdeps/unix/bsd/tcdrain.c: Likewise.
	* sysdeps/unix/bsd/bsd4.4/tcdrain.c: Likewise.
	* sysdeps/unix/sysv/tcdrain.c: Likewise.
	* sysdeps/unix/sysv/linux/tcdrain.c: Likewise.
	* sysdeps/unix/bsd/bsd4.4/wait.c: Rename function to __libc_wait
	and make __wait a weak alias.
	* sysdeps/stub/waitpid.c: Rename function to __libc_waitpid and
	make __waitpid a weak alias.
	* sysdeps/unix/bsd/bsd4.4/waitpid.c: Likewise.
	* sysdeps/unix/sysv/linux/waitpid.c: Likewise.
	* sysdeps/unix/sysv/sysv4/waitpid.c: Likewise.
	* sysdeps/unix/common/pause.c: Rename function to __libc_pause
	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.
	* sysdeps/unix/mman/syscalls.list: Likewise for msync.
	* sysdeps/unix/sysv/linux/syscalls.list: Likewise for nanosleep.

	* io/creat.c: De-ANSI-fy.

	* sysdeps/unix/sysv/linux/syscalls.list: Add pause.

Thu Sep 26 19:15:55 1996  Ulrich Drepper  <drepper@cygnus.com>

	* misc/mntent.h: Add MNTTYPE_* and MNTOPT_* macros.
	Reported by Hans Grobler <grobh@nolian.ee.sun.ac.za>.

Thu Sep 26 14:40:10 1996  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/posix/pathconf.c: Pass descriptor for just opened file
 	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>

	* locale/programs/locfile.c (write_locale_data): Allocate room
	even for file name for LC_MESSAGES locale.
	(locafile_read): `tok_era' must be handled as a string list.
	* locale/programs/ld-time.c: Finish correction of handling `era'.
	* 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.
	* 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
	lazy intialization.
	(_nl_get_era_entry): New function.  Return era entry which corresponds
	to given year.
	(_nl_get_alt_digit): New function.  Return string with alternate
	digit representation for given number.

	* time/strftime.c (strftime): Use _nl_get_alt_digit to get
	string representing alternate digit notation.

Wed Sep 25 17:31:55 1996  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/generic/waitstatus.h (union wait): Add w_status field.
	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>.

Wed Sep 25 13:10:57 1996  Ulrich Drepper  <drepper@cygnus.com>

	* catgets/gencat.c (main): Change --version again because RMS wants
	the package name in parentheses.
	* db/makedb.c: Likewise.
	* locale/programs/locale.c: Likewise.
	* locale/programs/localedef.c: Likewise.

Tue Sep 24 01:28:05 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makefile ($(objpfx)sysd-dirs): Depend on Subdirs files, command
	rewritten.
	($(objpfx)version-info.h): Depend on Banner files, command
	rewritten.

Wed Sep 25 02:44:41 1996  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/sleep.c: New file.  Based on nanosleep.

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.
	* 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'.
	* shadow/sgetspent_r.c (LINE_READER): Likewise.

Mon Sep 23 23:05:24 1996  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/errnos.h: Define __set_errno to make
	sure the thread specific variable is set as well as the global
	variable.
	* sysdeps/mach/hurd/errnos.awk: Define macro for source code
	compatibility.
	* sysdeps/stub/errnos.h: Likewise.
	* sysdeps/unix/bsd/bsd4.4/errnos.h: Likewise.

	* shadow/putspent.c: Don't include <errno.h>.

	* dirent/scandir.c (scandir): Use __set_errno to set errno
 	variable.
	* elf/dl-load.c (open_path): Likewise.
	* inet/rcmd.c (rcmd): Likewise.
	(rresvport): Likewise.
	* intl/dcgettext.c [!__set_errno]: Define __set_errno.
	(DCGETTEXT): Use __set_errno to set errno variable.
	* io/fts.c (fts_open): Likewise.
	(fts_close): Likewise.
	(fts_read): Likewise.
	(fts_set): Likewise.
	(fts_children): Likewise.
	(fts_build): Likewise.
	(fts_stat): Likewise.
	* io/ftw.c (ftw_dir): Likewise.
	(ftw): Likewise.
	* io/getwd.c (getwd): Likewise.
	* io/lockf.c (lockf): Likewise.
	* libio/libioP.h [EINVAL]: Use __set_errno to define MAYBE_SET_EINVAL.
	* libio/iofdopen.c (_IO_fdopen): Use MAYBE_SET_EINVAL to errno.
	* libio/iogetdelim.c (_IO_getdelim): Likewise.
	* libio/fileops.c (_IO_file_open): Use __set_errno to set errno
	variable.
	* libio/iofgetpos.c (_IO_fgetpos): Likewise.
	* libio/iofsetpos.c (_IO_fsetpos): Likewise.
	* libio/ioftell.c (_IO_ftell): Likewise.
	* locale/loadlocale.c (_nl_load_locale): Likewise.
	* locale/nl_langinfo.c (nl_langinfo): Likewise.
	* locale/setlocale.c (ERROR_RETURN): Likewise.
	* login/getutid_r (__getutid_r): Likewise.
	* login/getutline_r (__getutline_r): Likewise.
	* login/login.c (tty_name): Likewise.
	* login/oututline_r.c (__pututline_r): Likewise.
	* malloc/malloc.c (morecore): Likewise.
	* misc/efgcvt_r.c (fcvt_r): Likewise.
	* misc/hsearch_r.c (hcreate_r): Likewise.
	(hdestroy_r): Likewise.
	(hsearch_r): Likewise.
	* nss/nsswitch.c (__nss_configure_lookup): Likewise.
	* nss/nss_dns/dns-host.c (_nss_dns_gethostbyname2_r): Likewise.
	(_nss_dns_gethostbyaddr_r): Likewise.
	* nss/nss_files/files-XXX.c (internal_getent): Likewise.
	* nss/nss_files/files-parse.c (parse_list): Likewise.
	* posix/confstr.c (confstr): Likewise.  De-ANSI-fy.
	* posix/execvp.c (execvp): Likewise.
	* posix/glob.c: Define __set_errno.
	(glob): Use __set_errno to set errno variable.
	(glob_in_dir): Likewise.
	* pwd/getpw.c: Likewise. De-ANSI-fy.
	* pwd/putpwent.c: Likewise.
	* resolv/inet_net_ntop.c: Likewise.
	* resolv/inet_net_pton.c: Likewise.
	* resolv/inet_neta.c: Likewise.
	* resolv/inet_ntop.c: Likewise.
	* resolv/inet_pton.c: Likewise.
	* resolv/res_query.c (res_search): Likewise.
	* resolv/res_send.c (Aerror): Likewise.
	(Perror): Likewise.
	(res_send): Likewise.
	* signal/sigaddset.c: Likewise.  De-ANSI-fy.
	* signal/sigdelset.c: Likewise.
	* signal/sigempty.c: Likewise.
	* signal/sigfillset.c: Likewise.
	* signal/sigismem.c: Likewise.
	* stdio/fclose.c: Likewise.
	* stdio/feof.c: Likewise.
	* stdio/ferror.c: Likewise.
	* stdio/fflush.c: Likewise.
	* stdio/fgetc.c: Likewise.
	* stdio/fgetpos.c: Likewise.
	* stdio/fgets.c: Likewise.
	* stdio/fileno.c: Likewise.
	* stdio/fmemopen.c: Likewise.
	* stdio/fopen.c: Likewise.
	* stdio/fputc.c: Likewise.
	* stdio/fread.c: Likewise.
	* stdio/freopen.c: Likewise.
	* stdio/fseek.c: Likewise.
	* stdio/fsetpos.c: Likewise.
	* stdio/ftell.c: Likewise.
	* stdio/fwrite.c: Likewise.
	* stdio/getdelim.c: Likewise.
	* stdio/gets.c: Likewise.
	* stdio/glue.c: Likewise.
	* stdio/internals.c: Likewise.
	* stdio/memstream.c: Likewise.
	* stdio/setvbuf.c: Likewise.
	* stdio/ungetc.c: Likewise.
	* stdio/vsscanf.c: Likewise.
	* stdio-common/reg-printf.c: Likewise.
	* stdio-common/vfprintf.c: Likewise.
	* stdio-common/vfscanf.c: Likewise.
	* stdlib/canonicalize.c: Likewise.
	* stdlib/msort.c: Likewise.
	* stdlib/random_r.c: Likewise.
	* stdlib/strfmon.c: Likewise.
	* stdlib/strtod.c: Likewise.
	* stdlib/strtol.c: Likewise.
	* sunrpc/bindrsvprt.c: Likewise.
	* time/asctime.c: Likewise.
	* time/localtime.c: Likewise.
	* wcsmbs/mbrtowc.c: Likewise.
	* wcsmbs/mbsnrtowcs.c: Likewise.
	* wcsmbs/mbsrtowcs.c: Likewise.
	* wcsmbs/wcrtomb.c: Likewise.
	* wcsmbs/wcsnrtombs.c: Likewise.
	* wcsmbs/wcsrtombs.c: Likewise.
	* wcsmbs/wcstok.c: Likewise.
	* sysdeps/generic/ftime.c: Likewise.
	* sysdeps/generic/pty.c: Likewise.
	* sysdeps/generic/setenv.c: Likewise.
	* sysdeps/generic/speed.c: Likewise.
	* sysdeps/generic/sysd-stdio.c: Likewise.
	* sysdeps/generic/uname.c: Likewise.
	* sysdeps/generic/vlimit.c: Likewise.
	* sysdeps/libm-ieee754/k_standard.c: Likewise.
	* sysdeps/libm-ieee754/s_ldexp.c: Likewise.
	* sysdeps/libm-ieee754/s_ldexpf.c: Likewise.
	* sysdeps/libm-ieee754/s_ldexpl.c: Likewise.
	* sysdeps/libm-ieee754/w_scalb.c: Likewise.
	* sysdeps/libm-ieee754/w_scalbf.c: Likewise.
	* sysdeps/libm-ieee754/w_scalbl.c: Likewise.
	* sysdeps/posix/dup2.c: Likewise.
	* sysdeps/posix/euidaccess.c: Likewise.
	* sysdeps/posix/fdopen.c: Likewise.
	* sysdeps/posix/flock.c: Likewise.
	* sysdeps/posix/fpathconf.c: Likewise.
	* sysdeps/posix/getcwd.c: Likewise.
	* sysdeps/posix/gettimeofday.c: Likewise.
	* sysdeps/posix/isatty.c: Likewise.
	* sysdeps/posix/isfdtype.c: Likewise.
	* sysdeps/posix/killpg.c: Likewise.
	* sysdeps/posix/mkstemp.c: Likewise.
	* sysdeps/posix/mktemp.c: Likewise.
	* sysdeps/posix/pathconf.c: Likewise.
	* sysdeps/posix/pipestream.c: Likewise.
	* sysdeps/posix/remove.c: Likewise.
	* sysdeps/posix/rename.c: Likewise.
	* sysdeps/posix/sigintr.c: Likewise.
	* sysdeps/posix/signal.c: Likewise.
	* sysdeps/posix/sigsuspend.c: Likewise.
	* sysdeps/posix/sigvec.c: Likewise.
	* sysdeps/posix/sleep.c: Likewise.
	* sysdeps/posix/sysconf.c: Likewise.
	* sysdeps/posix/system.c: Likewise.
	* sysdeps/posix/tempname.c: Likewise.
	* sysdeps/posix/truncate.c: Likewise.
	* sysdeps/posix/ttyname.c: Likewise.
	* sysdeps/posix/ttyname_r.c: Likewise.
	* sysdeps/posix/wait3.c: Likewise.
	* sysdeps/standalone/close.c: Likewise.
	* sysdeps/standalone/open.c: Likewise.
	* sysdeps/standalone/read.c: Likewise.
	* sysdeps/standalone/write.c: Likewise.
	* sysdeps/stub/__longjmp.c: Likewise.
	* sysdeps/stub/accept.c: Likewise.
	* sysdeps/stub/access.c: Likewise.
	* sysdeps/stub/acct.c: Likewise.
	* sysdeps/stub/adjtime.c: Likewise.
	* sysdeps/stub/alarm.c: Likewise.
	* sysdeps/stub/bind.c: Likewise.
	* sysdeps/stub/brk.c: Likewise.
	* sysdeps/stub/chdir.c: Likewise.
	* sysdeps/stub/chflags.c: Likewise.
	* sysdeps/stub/chmod.c: Likewise.
	* sysdeps/stub/chown.c: Likewise.
	* sysdeps/stub/chroot.c: Likewise.
	* sysdeps/stub/clock.c: Likewise.
	* sysdeps/stub/close.c: Likewise.
	* sysdeps/stub/closedir.c: Likewise.
	* sysdeps/stub/connect.c: Likewise.
	* sysdeps/stub/ctermid.c: Likewise.
	* sysdeps/stub/cuserid.c: Likewise.
	* sysdeps/stub/dirfd.c: Likewise.
	* sysdeps/stub/dup.c: Likewise.
	* sysdeps/stub/dup2.c: Likewise.
	* sysdeps/stub/euidaccess.c: Likewise.
	* sysdeps/stub/execve.c: Likewise.
	* sysdeps/stub/fchdir.c: Likewise.
	* sysdeps/stub/fchflags.c: Likewise.
	* sysdeps/stub/fchmod.c: Likewise.
	* sysdeps/stub/fchown.c: Likewise.
	* sysdeps/stub/fcntl.c: Likewise.
	* sysdeps/stub/fdopen.c: Likewise.
	* sysdeps/stub/fexecve.c: Likewise.
	* sysdeps/stub/flock.c: Likewise.
	* sysdeps/stub/fork.c: Likewise.
	* sysdeps/stub/fpathconf.c: Likewise.
	* sysdeps/stub/fstatfs.c: Likewise.
	* sysdeps/stub/fsync.c: Likewise.
	* sysdeps/stub/ftruncate.c: Likewise.
	* sysdeps/stub/fxstat.c: Likewise.
	* sysdeps/stub/getcwd.c: Likewise.
	* sysdeps/stub/getdents.c: Likewise.
	* sysdeps/stub/getdomain.c: Likewise.
	* sysdeps/stub/getdtsz.c: Likewise.
	* sysdeps/stub/getegid.c: Likewise.
	* sysdeps/stub/getenv.c: Likewise.
	* sysdeps/stub/geteuid.c: Likewise.
	* sysdeps/stub/getgid.c: Likewise.
	* sysdeps/stub/getgroups.c: Likewise.
	* sysdeps/stub/gethostid.c: Likewise.
	* sysdeps/stub/gethostname.c: Likewise.
	* sysdeps/stub/getitimer.c: Likewise.
	* sysdeps/stub/getlogin.c: Likewise.
	* sysdeps/stub/getlogin_r.c: Likewise.
	* sysdeps/stub/getpagesize.c: Likewise.
	* sysdeps/stub/getpeername.c: Likewise.
	* sysdeps/stub/getpid.c: Likewise.
	* sysdeps/stub/getppid.c: Likewise.
	* sysdeps/stub/getpriority.c: Likewise.
	* sysdeps/stub/getrlimit.c: Likewise.
	* sysdeps/stub/getrusage.c: Likewise.
	* sysdeps/stub/getsid.c: Likewise.
	* sysdeps/stub/getsockname.c: Likewise.
	* sysdeps/stub/getsockopt.c: Likewise.
	* sysdeps/stub/getsysstats.c: Likewise.
	* sysdeps/stub/gettimeofday.c: Likewise.
	* sysdeps/stub/getuid.c: Likewise.
	* sysdeps/stub/gtty.c: Likewise.
	* sysdeps/stub/ioctl.c: Likewise.
	* sysdeps/stub/isatty.c: Likewise.
	* sysdeps/stub/isfdtype.c: Likewise.
	* sysdeps/stub/kill.c: Likewise.
	* sysdeps/stub/killpg.c: Likewise.
	* sysdeps/stub/link.c: Likewise.
	* sysdeps/stub/listen.c: Likewise.
	* sysdeps/stub/lseek.c: Likewise.
	* sysdeps/stub/lxstat.c: Likewise.
	* sysdeps/stub/madvice.c: Likewise.
	* sysdeps/stub/mkdir.c: Likewise.
	* sysdeps/stub/mkfifo.c: Likewise.
	* sysdeps/stub/mkstemp.c: Likewise.
	* sysdeps/stub/mktemp.c: Likewise.
	* sysdeps/stub/mmap.c: Likewise.
	* sysdeps/stub/morecore.c: Likewise.
	* sysdeps/stub/mprotect.c: Likewise.
	* sysdeps/stub/msgctl.c: Likewise.
	* sysdeps/stub/msgget.c: Likewise.
	* sysdeps/stub/msgrcv.c: Likewise.
	* sysdeps/stub/msgsnd.c: Likewise.
	* sysdeps/stub/msync.c: Likewise.
	* sysdeps/stub/munmap.c: Likewise.
	* sysdeps/stub/nanosleep.c: Likewise.
	* sysdeps/stub/nice.c: Likewise.
	* sysdeps/stub/nlist.c: Likewise.
	* sysdeps/stub/open.c: Likewise.
	* sysdeps/stub/opendir.c: Likewise.
	* sysdeps/stub/pathconf.c: Likewise.
	* sysdeps/stub/pause.c: Likewise.
	* sysdeps/stub/pipe.c: Likewise.
	* sysdeps/stub/pipestream.c: Likewise.
	* sysdeps/stub/poll.c: Likewise.
	* sysdeps/stub/profil.c: Likewise.
	* sysdeps/stub/ptrace.c: Likewise.
	* sysdeps/stub/putenv.c: Likewise.
	* sysdeps/stub/raise.c: Likewise.
	* sysdeps/stub/read.c: Likewise.
	* sysdeps/stub/readdir.c: Likewise.
	* sysdeps/stub/readlink.c: Likewise.
	* sysdeps/stub/readv.c: Likewise.
	* sysdeps/stub/reboot.c: Likewise.
	* sysdeps/stub/recv.c: Likewise.
	* sysdeps/stub/recvfrom.c: Likewise.
	* sysdeps/stub/recvmsg.c: Likewise.
	* sysdeps/stub/remove.c: Likewise.
	* sysdeps/stub/rename.c: Likewise.
	* sysdeps/stub/revoke.c: Likewise.
	* sysdeps/stub/rewinddir.c: Likewise.
	* sysdeps/stub/rmdir.c: Likewise.
	* sysdeps/stub/sbrk.c: Likewise.
	* sysdeps/stub/sched_getp.c: Likewise.
	* sysdeps/stub/sched_gets.c: Likewise.
	* sysdeps/stub/sched_primax.c: Likewise.
	* sysdeps/stub/sched_primin.c: Likewise.
	* sysdeps/stub/sched_rr_gi.c: Likewise.
	* sysdeps/stub/sched_setp.c: Likewise.
	* sysdeps/stub/sched_sets.c: Likewise.
	* sysdeps/stub/sched_yield.c: Likewise.
	* sysdeps/stub/seekdir.c: Likewise.
	* sysdeps/stub/select.c: Likewise.
	* sysdeps/stub/semctl.c: Likewise.
	* sysdeps/stub/semget.c: Likewise.
	* sysdeps/stub/semop.c: Likewise.
	* sysdeps/stub/send.c: Likewise.
	* sysdeps/stub/sendmsg.c: Likewise.
	* sysdeps/stub/sendto.c: Likewise.
	* sysdeps/stub/setdomain.c: Likewise.
	* sysdeps/stub/setegid.c: Likewise.
	* sysdeps/stub/setenv.c: Likewise.
	* sysdeps/stub/seteuid.c: Likewise.
	* sysdeps/stub/setgid.c: Likewise.
	* sysdeps/stub/setgroups.c: Likewise.
	* sysdeps/stub/sethostid.c: Likewise.
	* sysdeps/stub/sethostname.c: Likewise.
	* sysdeps/stub/setitimer.c: Likewise.
	* sysdeps/stub/setjmp.c: Likewise.
	* sysdeps/stub/setlogin.c: Likewise.
	* sysdeps/stub/setpgid.c: Likewise.
	* sysdeps/stub/setpriority.c: Likewise.
	* sysdeps/stub/setregid.c: Likewise.
	* sysdeps/stub/setreuid.c: Likewise.
	* sysdeps/stub/setrlimit.c: Likewise.
	* sysdeps/stub/setsid.c: Likewise.
	* sysdeps/stub/setsockopt.c: Likewise.
	* sysdeps/stub/settimeofday.c: Likewise.
	* sysdeps/stub/setuid.c: Likewise.
	* sysdeps/stub/shmat.c: Likewise.
	* sysdeps/stub/shmctl.c: Likewise.
	* sysdeps/stub/shmdt.c: Likewise.
	* sysdeps/stub/shmget.c: Likewise.
	* sysdeps/stub/shutdown.c: Likewise.
	* sysdeps/stub/sigaction.c: Likewise.
	* sysdeps/stub/sigaltstack.c: Likewise.
	* sysdeps/stub/sigblock.c: Likewise.
	* sysdeps/stub/sigintr.c: Likewise.
	* sysdeps/stub/signal.c: Likewise.
	* sysdeps/stub/sigpause.c: Likewise.
	* sysdeps/stub/sigpending.c: Likewise.
	* sysdeps/stub/sigprocmask.c: Likewise.
	* sysdeps/stub/sigreturn.c: Likewise.
	* sysdeps/stub/sigsetmask.c: Likewise.
	* sysdeps/stub/sigstack.c: Likewise.
	* sysdeps/stub/sigsuspend.c: Likewise.
	* sysdeps/stub/sigvec.c: Likewise.
	* sysdeps/stub/sleep.c: Likewise.
	* sysdeps/stub/socket.c: Likewise.
	* sysdeps/stub/socketpair.c: Likewise.
	* sysdeps/stub/sstk.c: Likewise.
	* sysdeps/stub/statfs.c: Likewise.
	* sysdeps/stub/stime.c: Likewise.
	* sysdeps/stub/stty.c: Likewise.
	* sysdeps/stub/swapoff.c: Likewise.
	* sysdeps/stub/swapon.c: Likewise.
	* sysdeps/stub/symlink.c: Likewise.
	* sysdeps/stub/sync.c: Likewise.
	* sysdeps/stub/syscall.c: Likewise.
	* sysdeps/stub/sysconf.c: Likewise.
	* sysdeps/stub/sysd-stdio.c: Likewise.
	* sysdeps/stub/system.c: Likewise.
	* sysdeps/stub/tcdrain.c: Likewise.
	* sysdeps/stub/tcflow.c: Likewise.
	* sysdeps/stub/tcflush.c: Likewise.
	* sysdeps/stub/tcgetattr.c: Likewise.
	* sysdeps/stub/tcgetpgrp.c: Likewise.
	* sysdeps/stub/tcsendbrk.c: Likewise.
	* sysdeps/stub/tcsetattr.c: Likewise.
	* sysdeps/stub/tcsetpgrp.c: Likewise.
	* sysdeps/stub/telldir.c: Likewise.
	* sysdeps/stub/tempname.c: Likewise.
	* sysdeps/stub/time.c: Likewise.
	* sysdeps/stub/times.c: Likewise.
	* sysdeps/stub/truncate.c: Likewise.
	* sysdeps/stub/ttyname.c: Likewise.
	* sysdeps/stub/ttyname_r.c: Likewise.
	* sysdeps/stub/ualarm.c: Likewise.
	* sysdeps/stub/ulimit.c: Likewise.
	* sysdeps/stub/umask.c: Likewise.
	* sysdeps/stub/unlink.c: Likewise.
	* sysdeps/stub/usleep.c: Likewise.
	* sysdeps/stub/ustat.c: Likewise.
	* sysdeps/stub/utime.c: Likewise.
	* sysdeps/stub/utimes.c: Likewise.
	* sysdeps/stub/vhangup.c: Likewise.
	* sysdeps/stub/wait.c: Likewise.
	* sysdeps/stub/wait3.c: Likewise.
	* sysdeps/stub/wait4.c: Likewise.
	* sysdeps/stub/waitpid.c: Likewise.
	* sysdeps/stub/write.c: Likewise.
	* sysdeps/stub/writev.c: Likewise.
	* sysdeps/stub/xmknod.c: Likewise.
	* sysdeps/stub/xstat.c: Likewise.
	* sysdeps/unix/closedir.c: Likewise.
	* sysdeps/unix/fxstat.c: Likewise.
	* sysdeps/unix/getlogin.c: Likewise.
	* sysdeps/unix/getlogin_r.c: Likewise.
	* sysdeps/unix/mkdir.c: Likewise.
	* sysdeps/unix/nice.c: Likewise.
	* sysdeps/unix/nlist.c: Likewise.
	* sysdeps/unix/opendir.c: Likewise.
	* sysdeps/unix/readdir.c: Likewise.
	* sysdeps/unix/rmdir.c: Likewise.
	* sysdeps/unix/stime.c: Likewise.
	* sysdeps/unix/xmknod.c: Likewise.
	* sysdeps/unix/xstat.c: Likewise.
	* sysdeps/unix/bsd/isatty.c: Likewise.
	* sysdeps/unix/bsd/setegid.c: Likewise.
	* sysdeps/unix/bsd/seteuid.c: Likewise.
	* sysdeps/unix/bsd/setsid.c: Likewise.
	* sysdeps/unix/bsd/sigaction.c: Likewise.
	* sysdeps/unix/bsd/sigprocmask.c: Likewise.
	* sysdeps/unix/bsd/sigsuspend.c: Likewise.
	* sysdeps/unix/bsd/tcflow.c: Likewise.
	* sysdeps/unix/bsd/tcflush.c: Likewise.
	* sysdeps/unix/bsd/tcgetattr.c: Likewise.
	* sysdeps/unix/bsd/tcsetattr.c: Likewise.
	* sysdeps/unix/bsd/times.c: Likewise.
	* sysdeps/unix/bsd/ulimit.c: Likewise.
	* sysdeps/unix/common/lxstat.c: Likewise.
	* sysdeps/unix/common/tcsendbrk.c: Likewise.
	* sysdeps/unix/sysv/setrlimit.c: Likewise.
	* sysdeps/unix/sysv/settimeofday.c: Likewise.
	* sysdeps/unix/sysv/sigaction.c: Likewise.
	* sysdeps/unix/sysv/tcflow.c: Likewise.
	* sysdeps/unix/sysv/tcflush.c: Likewise.
	* sysdeps/unix/sysv/tcgetattr.c: Likewise.
	* sysdeps/unix/sysv/tcsendbrk.c: Likewise.
	* sysdeps/unix/sysv/tcsetattr.c: Likewise.
	* sysdeps/unix/bsd/ultrix4/sysconf.c: Likewise.
	* sysdeps/unix/sysv/irix4/getpriority.c: Likewise.
	* sysdeps/unix/sysv/irix4/setpriority.c: Likewise.
	* sysdeps/unix/sysv/linux/adjtime.c: Likewise.
	* sysdeps/unix/sysv/linux/gethostid.c: Likewise.
	* sysdeps/unix/sysv/linux/gethostname.c: Likewise.
	* sysdeps/unix/sysv/linux/getsysstats.c: Likewise.
	* sysdeps/unix/sysv/linux/ptrace.c: Likewise.
	* sysdeps/unix/sysv/linux/speed.c: Likewise.
	* sysdeps/unix/sysv/linux/ulimit.c: Likewise.
	* sysdeps/unix/sysv/sysv4/sigaction.c: Likewise.
	* sysdeps/unix/sysv/sysv4/sysconf.c: Likewise.
	* sysdeps/unix/bsd/sun/m68k/sigtramp.c: Likewise.
	* sysdeps/unix/bsd/sun/sparc/sigtramp.c: Likewise.
	* sysdeps/unix/bsd/sun/sunos4/speed.c: Likewise.
	* sysdeps/unix/bsd/sun/sunos4/tcsetattr.c: Likewise.
	* sysdeps/unix/sysv/linux/alpha/ioperm.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/brk.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/brk.c: Likewise.

	* sunrpc/clnt_tcp.c: Protect declaration of errno by #ifndef.
	* sunrpc/clnt_udp.c: Likewise.
	* sunrpc/bindrsvprt.c: Likewise.
	* sunrpc/pm_getmaps.c: Likewise.
	* sunrpc/pmap_rmt.c: Likewise.
	* sunrpc/svc.c: Likewise.
	* sunrpc/svc_run.c: Likewise.
	* sunrpc/svc_tcp.c: Likewise.
	* sunrpc/svc_udp.c: Likewise.

	* sysdeps/generic/strtok.c: Don't check argument, just crash.
	* sysdeps/generic/strtok_r.c: Likewise.

	* sysdeps/stub/start.c: Make __errno a strong alias of errno.
	* sysdeps/unix/start.c: Likewise.  De-ANSI-fy.
	* sysdeps/unix/sparc/start.c: Likewise.
	* sysdeps/standalone/m68k/m68020/start.S: Likewise.
	* sysdeps/unix/sysv/irix4/start.c: Likewise.
	* sysdeps/unix/bsd/ultrix4/mips/start.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/m68k/sysdep.S: Likewise.

Mon Sep 23 17:54:57 1996  Ulrich Drepper  <drepper@cygnus.com>

	* catgets/gencat.c (main): Put package name in --version message
	in parantheses.  Reported by Jim Meyering.
	* db/makedb.c: Likewise.
	* locale/programs/locale.c: Likewise.
	* locale/programs/localedef.c: Likewise.

	* sysdeps/i386/fpu/__math.h (tan): Make sure gcc knows we use
	two registers.  Patch by John Bowman.

Sat Sep 21 15:08:25 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/mach/libc-lock.h: Fix comment.
	* sysdeps/stubs/libc-lock.h: Likewise.

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.
	(_IO_default_finish) [_IO_MTSAFE_IO]: Dereference pointer to lock
	when passing it to __libc_lock_fini macro.

Sat Sep 21 14:35:40 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/m68k/sysdep.h (SYSCALL_ERROR_HANDLER)
	[_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.

Sat Sep 21 14:33:41 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* libio/Makefile: Make `all' the default target.
	* po/Makefile: Likewise.

Mon Sep 23 15:49:47 1996  Ulrich Drepper  <drepper@cygnus.com>

	* stdlib/test-canon.c: Correct patch from Thu Sep 12 23:01:16 1996.
	I applied it incorrectly.
	* sysdeps/m68k/fpu/s_scalbn.c: Likewise.
	* sysdeps/m68k/fpu/s_scalbnf.c: Likewise.
	* sysdeps/m68k/fpu/s_scalbnl.c: Likewise.

Mon Sep 23 03:00:10 1996  Ulrich Drepper  <drepper@cygnus.com>

	* shadow/sgetspent_r.c (LINE_PARSER): Accept empty 9th field.
	Patch by NIIBE Yutaka <gniibe@mri.co.jp>.

	* shadow/sgetspent_r.c (LINE_PARSER): Don't accept any chars after
 	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.
	* 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.
	* sysdeps/unix/sysv/linux/sys/vt.h: New file.
	Reported by NIIBE Yutaka <gniibe@mri.co.jp>.
1996-09-27 03:45:24 +00:00
Thomas Bushnell, BSG d022f6ab9f *** empty log message ***
Thu Sep 26 13:44:29 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* hurd/Makefile (installed-sunrpc-headers): New variable.
	(sunrpc-headers): New variable.
	(install-headers-nosubir): Depend on $(installed-sunrpc-headers),
	not just <rpc/netdb.h>.
	($(installed-sunrpc-headers)): Provide rule for all of these.
1996-09-26 17:48:47 +00:00
Thomas Bushnell, BSG 0820914952 Thu Sep 26 13:44:29 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* hurd/Makefile (installed-sunrpc-headers): New variable.
	(sunrpc-headers): New variable.
	(install-headers-nosubir): Depend on $(installed-sunrpc-headers),
	not just <rpc/netdb.h>.
	($(installed-sunrpc-headers)): Provide rule for all of these.
1996-09-26 17:48:09 +00:00
Richard Kenner 5686557215 (-vxsim*): New operating system. 1996-09-24 02:44:17 +00:00
Thomas Bushnell, BSG d8766439cb *** empty log message ***
Mon Sep 23 15:31:04 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* hurd/Makefile ($(includedir)/rpc/netdb.h): There is no make
	variable `top_srcdir' in libc; use $(..) instead.

	* sysdeps/mach/hurd/Makefile (rtld-installed-name): Delete special
	definition.  It was a *Mistake*.  (With a capital M.)

	* sysdeps/mach/getsysstats.c (__get_nprocs): Renamed from
	__get_nproc.
	(__get_nprocs_conf): Renamed from __get_nproc_conf.
1996-09-23 21:51:36 +00:00
Ulrich Drepper e320cbc913 update from main archive 960922
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.

	* catgets/gencat.c (main): Change --version message according to
 	RMS' last standard revision.
	* db/makedb.c: Likewise.
	* locale/programs/locale.c: Likewise.
	* locale/programs/localedef.c: Likewise.

	(__get_nproc_conf): New function.
1996-09-23 00:24:55 +00:00
Thomas Bushnell, BSG 7816fbdf7a *** empty log message ***
Sat Sep 21 23:42:39 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>
	* sysdeps/mach/getsysstats.c: Include <sys/sysinfo.h>.
 	(__get_nproc_conf): New function.
Sat Sep 21 14:59:22 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* sysdeps/mach/getsysstats.c: New file.

	* shlib-versions (*-*-gnu*): Increment libc to 0.2 for upcoming
	binary distribution.

	* sysdeps/mach/hurd/Makefile (rtld-installed-name): Provide
	definition to override dangerous one in Makeconfig.

	* hurd/Makefile (install-headers-nosubdir): Install <rpc/netdb.h>.
	($(includedir)/rpc/netdb.h): New rule.
	[ This is XXX until sunrpc can be built; <rpc/netdb.h> is
	essential. ]

Fri Sep 20 16:06:06 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* sysdeps/mach/hurd/i386/init-first.c (_dl_start): Add definition,
	to guarantee link errors if this is included in ld.so.

Thu Sep 19 23:36:19 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* hurd/hurdinit.c (__libc_argv): Provide common decl.
	(_hurd_setproc): Don't declare __libc_argv here.

Tue Sep 17 10:51:58 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* malloc/memalign.c (memalign): Only acquire __libc_malloc_lock
	for actual modifications to global state.  

Fri Sep 13 01:21:36 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* sysdeps/mach/Makefile (includes): Add -I$(common-objpfx)mach/.
	* sysdeps/mach/hurd/Makefile (includes): Add
	-I$(common-objpfx)hurd/.  Reported by Marcus Daniels.

	* sysdeps/generic/schedbits.h (struct sched_param): Renamed from
	struct sched_params.
	* sysdeps/stub/sched_setp.c (__sched_setparam): struct
	sched_params -> struct sched_param.
	* sysdeps/stub/sched_getp.c (__sched_getparam): Likewise.
	* sysdeps/stub/sched_sets.c (__sched_setscheduler): Likewise.

Thu Sep 12 23:58:25 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* sysdeps/mach/libc-lock.h (__libc_cleanup_region_start): Fix
	syntax error.
	
	* stdio-common/Makefile: Put lockfile in routines
	unconditionally. 
		
	* stdio-common/vfprintf.c (__flockfile, __funlockfile): Declare
	this always, not just if _LIBC_REENTRANT.
	(__funlockfile): Don't use weak_extern for this one;
	__libc_cleanup_region_end might be defined and the use of
	__funlockfile can't be protected the way the use of __flockfile
	can be.
1996-09-22 03:44:47 +00:00
Ulrich Drepper 845dcb57b1 update from main archive 960921
Sun Sep 22 03:40:52 1996  Ulrich Drepper  <drepper@cygnus.com>

	* resolv/resolv.h: Update to bind-4.9.5-T4B.
	* resolv/base64.c: Likewise.
	* resolv/res_debug.c: Likewise.
	* resolv/res_query.c: Likewise.
	* resolv/gethnamaddr.c: Likewise.
	* nss/nss_dns/dns-host.c: Likewise.
	* resolv/res_comp.c: Likewise.
	* resolv/res_send.c: Likewise.
	* resolv/arpa/nameser.h: Likewise.  Attention: MAXDNAME is much
	higher now.

	* resolv/Banner: New file.
	* resolv/Makefile (distribute): Add Banner.

Sat Sep 21 19:15:24 1996  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/stub/getsysstats.c: New file.
	* sysdeps/unix/sysv/linux/getsysstats.c: New file.

	* misc/Makefile (headers): Add sys/sysinfo.h.
	(routines): Add getsysstats.
	* sysdeps/unix/sysv/linux/Makefile [$(subdir)==misc]
 	(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.

	* misc/Makefile (routines): Add mntent_r.
	* misc/mntent_r.c: New file.
	* misc/mntent.c: Remove all functions but getmntent and use
	__getmntent_r.
	* misc/mntent.h: Add prototype for __getmntent_r.
	* misc/fstab.c: Use __getmntent_r function instead of getmntent.
	This will not clobber the state in getmntent.

	* sysdeps/generic/confname.h: Add _SC_PROCESSORS_CONF,
	_SC_NPROCESSORS_ONLN, _SC_PHYS_PAGES, _SC_AVPHYS_PAGES,
	_SC_ATEXIT_MAX, and _SC_PASS_MAX.
	* sysdeps/stub/sysconf.c: Add handling _SC_PROCESSORS_CONF and
	_SC_NPROCESSORS_ONLN by calling __get_nprocs, _SC_PHYS_PAGES by
	calling __get_phys_pages, _SY_AVPHYS_PAGES by calling
	__get_avphys_pages, _SC_ATEXIT_MAX and _SC_PASS_MAX.
	* sysdeps/posix/sysconf.c: Likewise.
	* posix/getconf.c (vars): Add _NPROCESSORS_CONF, _NPROCESSORS_ONLN,
	_PHYS_PAGES, _AVPHYS_PAGES, ATEXIT_MAX, and PASS_MAX entries.

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!).

	* resolv/Makefile (libresolv-routines): Remove getnetnamad.

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.

	* locale/setlocale (setlocale): Initialize NEWNAME correctly so
	that it works even when the locale data is not used.

	* stdlib/random_r.c: Fix typo in comment.
	* stdlib/drand48-iter.c: Likewise.
	* stdlib/drand48.c: Likewise.
	* stdlib/erand48.c: Likewise.
	* stdlib/jrand48.c: Likewise.
	* stdlib/lcong48.c: Likewise.
	* stdlib/lrand48.c: Likewise.
	* stdlib/mrand48.c: Likewise.
	* stdlib/nrand48.c: Likewise.
	* stdlib/random.c: Likewise.
	* stdlib/seed48.c: Likewise.
	* stdlib/srand48.c: Likewise.
	* misc/search.h: Likewise.
	* misc/hsearch.c: Likewise.
	* misc/hsearch_r.c: Likewise.

	* sysdeps/unix/sysv/linux/m68k/sysdep.S (__errno_location):
Thu Sep 19 23:36:19 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* hurd/hurdinit.c (__libc_argv): Provide common decl.
	(_hurd_setproc): Don't declare __libc_argv here.
1996-09-22 03:06:42 +00:00
Thomas Bushnell, BSG daf2bb515b *** empty log message ***
* sysdeps/mach/getsysstats.c: New file.
1996-09-21 23:54:18 +00:00
Thomas Bushnell, BSG 8a080f40d8 *** empty log message ***
Sat Sep 21 14:59:22 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* shlib-versions (*-*-gnu*): Increment libc to 0.2 for upcoming
	binary distribution.

	* sysdeps/mach/hurd/Makefile (rtld-installed-name): Provide
	definition to override dangerous one in Makeconfig.

	* hurd/Makefile (install-headers-nosubdir): Install <rpc/netdb.h>.
	($(includedir)/rpc/netdb.h): New rule.
	[ This is XXX until sunrpc can be built; <rpc/netdb.h> is
	essential. ]

Fri Sep 20 16:06:06 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* sysdeps/mach/hurd/i386/init-first.c (_dl_start): Add definition,
	to guarantee link errors if this is included in ld.so.
1996-09-21 20:05:50 +00:00
Ulrich Drepper 8de8ca1b94 Why are these removed? 1996-09-21 12:41:17 +00:00
Thomas Bushnell, BSG c55698973e *** empty log message *** 1996-09-20 19:41:28 +00:00
Thomas Bushnell, BSG 6bbcfbfedb *** empty log message ***
Thu Sep 19 23:36:19 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* hurd/hurdinit.c (__libc_argv): Provide common decl.
	(_hurd_setproc): Don't declare __libc_argv here.
1996-09-20 19:40:31 +00:00
Ulrich Drepper ec4b0518a3 update from main archive 960919
Thu Sep 19 21:50:55 1996  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/posix/gettimeofday.c (__gettimeofday): Use localtime_r
	instead of localtime.
	Reported by Matthias Urlichs.

	* shlib-versions: Remove version number for libcrypt.
	* features.h: Define __USE_REENTRANT if _REENTRANT or _THREAD_SAFE.
	* libc-symbols.h: Define _REENTRANT while compiling libc.

	* sysdeps/unix/sysv/linux/i386/sysdep.S (__errno_location):
	Define even if !_LIBC_REENTRANT.
	* sysdeps/unix/sysv/linux/i386/sysdep.S (__errno_location):
	Likewise.

	* sysdeps/posix/cuserid.h: Remove prototype for geteuid().
	De-ANSI-fy.

	* MakeTAGS ($P/libc.pot): Generate correctly formed header.
	* po/header.pot: Correct title line.
	* po/nl.po: Update.

Thu Sep 19 18:59:55 1996  Ulrich Drepper  <drepper@cygnus.com>

	* Makeconfig (soversions.mk): Prefer shared lib version numbers
	is add ons over version in libc itself.

	* sysdeps/unix/sysv/linux/i386/sysdep.S: Include <sysdep.h>.
	* sysdeps/unix/sysv/linux/i386/sysdep.h: Prevent multiple
	inclusion.

	* libio/iofgets.c: Use __flockfile and __funlockfile instead of
 	_IO_flockfile and _IO_funlockfile resp.

	* locale/categories.def: Partly support for correct `era' handling
	in LC_TIME category.
	* locale/langinfo.h: Likewise.
	* locale/programs/ld-time.c: Likewise.
	* locale/localeinfo.h: Change comment a bit.

	* malloc/memalign.c: Don't use goto, not necessary anymore.

1996-09-18  Paul Eggert  <eggert@twinsun.com>

	* time/mktime.c (ydhms_tm_diff):  Work correctly even if year
	is negative, or if time_t is unsigned.
	* time/strftime.c (tm_diff): Work correctly even if tm_year
	is near INT_MIN.

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.
	(__inline_mathopf, __inline_mathopl): Removed.
	(__inline_functions): New temporary definition containing all
 	non-trivial inline functions.

Wed Sep 18 00:25:41 1996  Ulrich Drepper  <drepper@cygnus.com>

	* time/strftime.c (strftime): The T_FMT_AMPM string may be empty.

Tue Sep 17 20:27:18 1996  Ulrich Drepper  <drepper@cygnus.com>

	* math/Makefile (extra-libs-others): Use $(extra-libs) instead
	of $(extra-libc).

Tue Sep 17 17:09:44 1996  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/stub/fpu_control.h: Correct end of file comment.

Tue Sep 17 05:39:18 1996  Ulrich Drepper  <drepper@cygnus.com>

	* stdio-common/bug3.c, stdio-common/bug4.c, stdio-common/bug5.c,
	stdio-common/test-popen.c: Remove temporary files after test.
	* stdio-common/bug5.c: Use `system' instead of `execlp'.
	Patches by Andreas Jaeger.

	* stdio-common/bug5.c: Create string for `system' argument to
	make sure the input and output file names are really correct.

Sun Sep 15 12:46:44 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* configure.in: If $os contains a hyphen add the part before the
	hyphen to $ostry.

Sun Sep 15 18:14:02 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/m68k/fpu/__math.h (__ieee754_pow, __ieee754_powf,
	__ieee754_powl): Rename local variable i to __i.
	(__ieee754_atan2, __ieee754_atan2f, __ieee754_atan2l): New inline
	functions.
	* sysdeps/m68k/fpu/e_atan2.c, sysdeps/m68k/fpu/e_atan2f.c,
	sysdeps/m68k/fpu/e_atan2l.c: New files.

1996-09-15  Paul Eggert  <eggert@twinsun.com>

	* manual/time.texi: Change `range X to Y' to `range X through
	Y', to avoid ambiguity in English.

	(strftime): Numbers that do not have a range indicated are not padded.
	Describe E and O modifiers.
	%g, %G, %u: New formats.
	%C, %y, %Y: Describe behavior on negative years.
	%e: Fix typo (was labeled %d).
	%l, %V: Fix typo in range.
	%M, %S, %U, %w, %W: Give ranges.
	%p: Clarify how noon and midnight are handled for AM and PM.
	%s: Clarify leap second handling.
	%r: Now locale-defined.
	%C, %D, %e, %h, %n, %r, %t, %T: Say that they are POSIX.2 extensions.
	%z: Say that it is a GNU extension.
	%Z: Wording fix.

	* time/strftime.c: (strftime):
		%V: Fix mishandling of week numbers near year boundaries.
		%g, %G: New formats (suggested by Arthur David Olson).
		%U, %W: Use inline expression instead of `week' function.
		%C, %y: Handle negative years portably.
		%C, %Y: Use width 1, since values can be arbitrarily wide.
		%r: Use T_FMT_AMPM format if _NL_CURRENT is defined.
		%u: New Posix.2 format.
		%w: Width is 1, not 2.
	(iso_week_days): New function, for %V, %G, %g.
	(week): Remove; it didn't handle %V correctly.
	(__isleap): New macro.
	(mbsinit): Use arg, to pacify GCC -Wall.

1996-09-13  Paul Eggert  <eggert@twinsun.com>

	* time/strftime.c (strftime):
	If using the GNU C library, do not bother to check for
	multibyte encodings, since they're safe in formats.  Otherwise:
	  - Check for multibyte encodings when encountering any character that
	  is not in the basic execution character set of the C Standard.
	  - Use mbrlen (if available) instead of mblen, to avoid modifying
	  mblen's internal state.
	  - Do not assume that '%' cannot appear as the first character of a
	  multibyte character sequence, since this is possible when not in the
	  initial shift state.
	(HAVE_MBRLEN, MULTIBYTE_IS_FORMAT_SAFE): Define if _LIBC is defined.
	(DO_MULTIBYTE): New macro.
	(<ctype.h>): Do not include.
	(<wchar.h>): Include if HAVE_MBRLEN.
	(mbstate_t, mbrlen, mbsinit): Define if ! HAVE_MBRLEN.
	(mbstate_zero): New constant.

1996-09-12  Paul Eggert  <eggert@twinsun.com>

	* time/strftime.c (strftime):
	Use an empty zone if it can't be determined; POSIX.2 requires this.
	Use plain `int' for pad and modifier (which now contain char value).
	Use plain `int' for number_value, to print negative values correctly.
	Use plain `int' for digits; there was no need to make it unsigned.
	Initialize subfmt consistently.
	Remove incorrect code for %EC and %Ey; they aren't implemented yet.
	For %O, if there is no alternate digit, output Ascii instead of "".
	Output the `%' of an unknown format; this is most likely the right
	thing to do if a multibyte string has been misparsed.

Thu Sep 12 23:23:13 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* stdio-common/scanf7.c (main): Remove extra conversion from
	printf format string.

Thu Sep 12 23:01:16 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* stdlib/test-canon.c (tests): Rename structure member from errno
	to error, all uses changed.

Thu Sep 12 20:08:06 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/m68k/fpu/__math.h (__ldexp, __ldexpf, __ldexpl):
	Removed.
	* sysdeps/m68k/fpu/s_ldexp.c, sysdeps/m68k/fpu/s_ldexpf.c,
	sysdeps/m68k/fpu/s_ldexpl.c: Removed, use generic implementation
	instead.
	* sysdeps/m68k/fpu/s_scalbn.c, sysdeps/m68k/fpu/s_scalbnf.c,
	sysdeps/m68k/fpu/s_scalbnl.c: Replaced with old contents of
	s_ldexp.c, s_ldexpf.c and s_ldexpl.c, resp., suitably adpted.

	* sysdeps/m68k/fpu/__math.h (__frexp, __frexpf, __frexpl):
	Return value must be in [0.5, 1), not [1, 2).  Reported by Chris
	Lawrence.
	(__ilogb, __ilogbf, __ilogbl): Check for argument being zero.
	(__scalbn, __scalbnf, __scalbnl): Use second argument directly.

Thu Sep 12 19:59:24 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/libm-ieee754/e_acoshl.c: Fix typos.
	* sysdeps/libm-ieee754/s_cbrtl.c: Remove unused variable.

Thu Sep 12 19:59:24 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/libm-ieee754/e_acoshl.c: Fix typos.
	* sysdeps/libm-ieee754/s_cbrtl.c: Remove unused variable.

Thu Sep 12 19:56:07 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* inet/herrno.c (__h_errno_location): Fix return type.

Tue Sep 17 10:51:58 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* malloc/memalign.c (memalign): Only acquire __libc_malloc_lock
	for actual modifications to global state.

Fri Sep 13 01:21:36 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* sysdeps/mach/Makefile (includes): Add -I$(common-objpfx)mach/.
	* sysdeps/mach/hurd/Makefile (includes): Add
	-I$(common-objpfx)hurd/.  Reported by Marcus Daniels.

	* sysdeps/generic/schedbits.h (struct sched_param): Renamed from
	struct sched_params.
	* sysdeps/stub/sched_setp.c (__sched_setparam): struct
	sched_params -> struct sched_param.
	* sysdeps/stub/sched_getp.c (__sched_getparam): Likewise.
	* sysdeps/stub/sched_sets.c (__sched_setscheduler): Likewise.

Thu Sep 12 23:58:25 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* sysdeps/mach/libc-lock.h (__libc_cleanup_region_start): Fix
	syntax error.

	* stdio-common/Makefile: Put lockfile in routines
	unconditionally.
	Define _MT_SAFE_IO if using for libio and compiling reentrant
	libc.

	* stdio-common/vfprintf.c (__flockfile, __funlockfile): Declare
	this always, not just if _LIBC_REENTRANT.
	(__funlockfile): Don't use weak_extern for this one;
	__libc_cleanup_region_end might be defined and the use of
	__funlockfile can't be protected the way the use of __flockfile
	can be.

	* sched.h: New file.  Helper to access posix/sched.h.
Thu Sep 12 12:33:52 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* sysdeps/mach/hurd/dl-cache.c: Delete second copy of file
	accidentally added on.

	* sysdeps/stub/intr-msg.h: New file.

	* stdio-common/vfprintf.c: Include <libc-lock.h>.
	* stdio-common/vfscanf.c: Include <libc-lock.h>.

	* sysdeps/mach/libc-lock.h (__libc_cleanup_region_start): New
	macro.
	(__libc_cleanup_region_end): New macro.
1996-09-20 01:58:09 +00:00
Karl Berry d66b7b41b8 (\inforef): Move to more appropriate place.
* texinfo.tex (\inforef): Move to more appropriate place. 
(\pounds): Remove spurious extra $. 
(\email): Typeset argument in angle brackets. 
(\macro): Use \doignore for robustness, instead of just letting TeX 
parse the argument. 
(\unmacro): Define.
1996-09-18 12:15:20 +00:00
Thomas Bushnell, BSG bcc7b35158 *** empty log message ***
Tue Sep 17 10:51:58 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* malloc/memalign.c (memalign): Only acquire __libc_malloc_lock
	for actual modifications to global state.
1996-09-17 14:58:48 +00:00
Richard Kenner cd136c56eb RMS:
Use pc instead of unknown, for pc clones.
Use -linux-gnu for Linux-based GNU systems.
1996-09-15 00:49:22 +00:00
Thomas Bushnell, BSG 757dc096f3 *** empty log message ***
* sysdeps/mach/Makefile (includes): Add -I$(common-objpfx)mach/.
	* sysdeps/mach/hurd/Makefile (includes): Add
	-I$(common-objpfx)hurd/.  Reported by Marcus Daniels.
1996-09-13 06:22:21 +00:00
Thomas Bushnell, BSG 39a0b05667 *** empty log message ***
Fri Sep 13 01:21:36 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* sysdeps/generic/schedbits.h (struct sched_param): Renamed from
	struct sched_params.
	* sysdeps/stub/sched_setp.c (__sched_setparam): struct
	sched_params -> struct sched_param.
	* sysdeps/stub/sched_getp.c (__sched_getparam): Likewise.
	* sysdeps/stub/sched_sets.c (__sched_setscheduler): Likewise.
1996-09-13 05:28:59 +00:00
Thomas Bushnell, BSG a8ed817809 *** empty log message ***
Thu Sep 12 23:58:25 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* sysdeps/mach/libc-lock.h (__libc_cleanup_region_start): Fix
	syntax error.
	
	* stdio-common/Makefile: Put lockfile in routines
	unconditionally. 
		
	* stdio-common/vfprintf.c (__flockfile, __funlockfile): Declare
	this always, not just if _LIBC_REENTRANT.
	(__funlockfile): Don't use weak_extern for this one;
	__libc_cleanup_region_end might be defined and the use of
	__funlockfile can't be protected the way the use of __flockfile
	can be. 
	
	* sysdeps/mach/hurd/dl-cache.c: Delete second copy of file
	accidentally added on.

	* sysdeps/stub/intr-msg.h: New file.
1996-09-13 05:05:58 +00:00
Richard M. Stallman 20e77fa06c Use pc instead of unknown, for pc clone systems. Change linux to linux-gnu. 1996-09-13 03:46:14 +00:00
Ulrich Drepper fafaa44ef0 update from main archive 960912
Fri Sep 13 04:33:08 1996  Ulrich Drepper  <drepper@cygnus.com>

	* sched.h: New file.  helper to access posix/sched.h.
	* posix/sched.h: Change `sched_params' to `sched_param' to follow
	POSIX.4.

Thu Sep 12 20:12:40 1996  Ulrich Drepper  <drepper@cygnus.com>

	* db/makedb.c (usage): Print bug report address separately to
	ease translators task.
	* catgets/gencat.c (usage): Likewise.
	* locale/locale.c (usage): Likewise.
	* locale/localedef.c (usage): Likewise.

1996-09-12  Paul Eggert  <eggert@twinsun.com>

	* time/strftime.c (my_localtime_r): Define if ! HAVE_LOCALTIME_R,
	and #define localtime_r to it.	If _LIBC, use __localtime_r instead.
	(my_gmtime_r): Similar, except it's not needed if ! HAVE_TM_GMTOFF.

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.
	* crypt/cert.c: provide correct prototypes to prevent warnings.
	Reported by Andreas Jaeger.

	* sysdeps/mach/hurd/Makefile (rpath-link): Don't use += because
	old and new value must be glued using `:'.
	Reported by Marcus Daniels.
1996-09-13 03:21:39 +00:00
Thomas Bushnell, BSG ae2ddc98c1 *** empty log message ***
(vfprintf): Only call __libc_cleanup_region_end if USE_IN_LIBIO,
	thus matching the sense of the tests around
	__libc_cleanup_region_start at the front of the function.
	* stdio-common/vfscanf.c: Include <libc-lock.h>.
	(UNLOCK_STREAM) [! USE_IN_LIBIO]: Call
	__libc_cleanup_region_end, not __libc_cleanup_region_start.
1996-09-12 22:22:29 +00:00
Thomas Bushnell, BSG f33b97f913 *** empty log message ***
Thu Sep 12 12:33:52 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* stdio-common/vfprintf.c: Include <libc-lock.h>.
	* stdio-common/vfscanf.c: Likewise.

	* sysdeps/mach/libc-lock.h (__libc_cleanup_region_start): New
	macro.
	(__libc_cleanup_region_end): New macro.

	* stdio-common/vfscanf.c (UNLOCK_STREAM) [! USE_IN_LIBIO]: Call
	__libc_cleanup_region_end, not __libc_cleanup_region_start.
1996-09-12 21:52:04 +00:00
Ulrich Drepper d0045e79eb Use POSIX version of version.c. 1996-09-12 18:29:32 +00:00
Ulrich Drepper f0f1bf8536 update from main archive 960911
Thu Sep 12 03:35:27 1996  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/i386/Dist: Remove init-first.h.
	* sysdeps/unix/sysv/linux/m68k/Dist: Likewise.
	* sysdeps/unix/sysv/linux/Dist: Add init-first.h.

1996-09-11  Paul Eggert  <eggert@twinsun.com>

	* strftime.c (strftime):
	Handle E and O modifiers, required for POSIX.2 and XPG4.
	Don't use sprintf to format numbers; this way, we can handle time_t
	correctly regardless of whether it's signed.
	Don't dump core if format ends in %.
	In default %c format, use %e instead of %d, for POSIX.2 compatibility.
	For %z:
		Use tm_gmtoff if available.
		Output nothing if tm_isdst is negative.
		Output correct value even if arg is 1969-12-31 23:59:59 UTC.
		Don't assume that UTC offset is less than 24 hours;
		Posix requires support for 24 hours, and there's no point
		limiting it at all.
	(HAVE_TM_GMTOFF, TYPE_SIGNED, INT_STRLEN_BOUND): New macros.
	(CHAR_BIT): Define if <limits.h> doesn't.
	(tm_diff): New function.
	(fmt, <stdio.h>): Remove; no longer used.

Thu Sep 12 02:21:44 1996  Ulrich Drepper  <drepper@cygnus.com>

	* db/Makefile: Add extra-libs-others variable so that shared
	library is built in `others' pass.
	* elf/Makefile: Likewise.
	* math/Makefile: Likewise.
	* resolv/Makefile: Likewise.

	* Makefile (generated): Add version.info.h.

	* time/checktab.awk: New file.  From ADO 96k.
	* time/iso3166.tab: Likewise.
	* time/tzselect.ksh: Likewise.
	* time/zone.tab: Likewise.

	* stdio-common/vfprintf.c: Correct cleanup registration.  We
	cannot use a macro

1996-09-11  Paul Eggert  <eggert@twinsun.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.
	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.
	Explain tzname when multiple abbreviations used (e.g. EST/EWT/EDT).
	Explain that timezone's sign is opposite from tm_gmtoff, and that
	timezone lacks DST adjustment whereas tm_gmtoff has it.
	Deprecate tzname and timezone.

Tue Sep 10 14:46:16 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	Implement Roland McGrath's idea of how to put an .interp into
	shared libraries.
	* interp.c: New file.
	* Makerules (interp-obj): New object, linked into every shared
	library.
	(common-generated): Add interp.so.
	(CFLAGS-interp.c): Pass name of interpreter.

Tue Sep 10 21:09:35 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* db/Makefile: Fix typo.

Tue Sep 10 19:29:53 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* nss/db-Makefile ($(VAR_DB)/passwd.db): Look for multiple
	occurences of the same uid, and only generate a mapping for the
	first one.

Tue Sep 10 03:14:59 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/system.c: New file, to override
	sysdeps/unix/system.c.

Tue Sep 10 15:05:40 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makefile (before-compile): Add version-info.h, needed to build
	version.d.

Tue Sep 10 14:14:33 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/m68k/sysdep.S: Remove check for
	EWOULDBLOCK, never true on Linux.
	(__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.

Tue Sep 10 13:27:49 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* elf/Makefile (extra-objs): Add eval.so to get dependencies.

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.
	* time/tzfile.c (compute_tzname_max): Likewise.
1996-09-12 02:51:03 +00:00
Thomas Bushnell, BSG 158ff48e34 *** empty log message ***
Tue Sep 10 14:42:39 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* elf/dl-cache.c: Rename to ...
	* sysdeps/generic/dl-cache.c:  ... here.
	* sysdeps/mach/hurd/dl-cache.c: New file.
	
	* mach/Makefile (distribute): Add `errsystems.awk'.
	* hurd/Makefile (distribute): Add `Notes' and `intr-msg.h'.
	* hurd/hurdintr.awk: Delete file.  (Not used in ages.)
	* hurd/intr-rpc.awk: Likewise.
	* hurd/invoke-trans.c: Likewise.
	* sysdeps/mach/hurd/i386/longjmp-ctx.c: Likewise.
	* sysdeps/mach/hurd/alpha/longjmp-ctx.c: Likewise.
	* sysdeps/mach/hurd/mips/longjmp-ctx.c: Likewise.
	* sysdeps/mach/hurd/i386/init-fault.c: Likewise.
	* sysdeps/mach/hurd/mips/init-fault.c: Likewise.
	* sysdeps/stub/init-fault.c: Likewise.
	* sysdeps/stub/longjmp-ctx.c: Likewise.
	
Thu Sep  5 08:58:47 1996  Richard Henderson  <rth@tamu.edu>

	* sysdeps/alpha/elf/start.S: Make _start global again.
1996-09-11 02:48:08 +00:00
Ulrich Drepper da74e90200 update from main archive 960910
Wed Sep 11 02:57:31 1996  Ulrich Drepper  <drepper@cygnus.com>

	* configure.in: Quote $add_ons argument in loop to generated
	prefices.

Tue Sep 10 20:43:45 1996  Ulrich Drepper  <drepper@cygnus.com>

	* db/makedb.c: Include <locale.h>.  Reported by Fila Kolodny.

Tue Sep 10 13:49:08 1996  Ulrich Drepper  <drepper@cygnus.com>

	* inet/herrno.c: Initialize `h_errno' so that we can provide
	alias.

	* Makefile (version-info.h): Fix typo in shell script.

	* sysdeps/i386/i586/strlen.S: Optimize startup code a bit.
	* sysdeps/i386/i586/strchr.S: Likewise.
1996-09-11 01:52:48 +00:00
Ulrich Drepper 569c558c88 update from main archive 960909
Mon Sep  9 20:31:27 1996  Ulrich Drepper  <drepper@cygnus.com>

	* version.c (banner): Report to bug-glibc@prep not @gnu.
	Reported by Andreas Jaeger.

	* libio/stdio.h [!__USE_REENTRANT]: Don't define getc as
 	_IO_getc_unlocked.
	[__USE_REENTRANT]: Don't define

Mon Sep  9 15:59:32 1996  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/i386/strrchr.c: Fix bug where NUL byte is not recognized
	when it is the third byte in the string.  Reported by
	NIIBE Yutaka.
	* string/tester.c: Add tests for above bug to strlen, strchr, and
	strrchr tests.

Fri Sep  6 21:23:33 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/m68k/fpu/e_acos.c: Deansideclized.  Include
	"math_private.h" to get prototype.
	* sysdeps/m68k/fpu/e_fmod.c: Likewise.
	* sysdeps/m68k/fpu/k_cos.c: Likewise.
	* sysdeps/m68k/fpu/k_sin.c: Likewise.
	* sysdeps/m68k/fpu/k_tan.c: Likewise.

	* sysdeps/m68k/fpu/k_sin.c: Remove uneeded indirection of
	__m81_u.
	* sysdeps/m68k/fpu/k_tan.c: Likewise.

Sun Sep  1 18:01:35 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/m68k/fpu/__math.h: Check for __NO_M81_MATH_INLINES
	instead of __NO_MATH_INLINES.
	(__M81_MATH_INLINES): Renamed from __MATH_INLINES.
	* sysdeps/m68k/fpu/e_acos.c: Define __NO_M81_MATH_INLINES.
	* sysdeps/m68k/fpu/e_fmod.c: Likewise.
	* sysdeps/m68k/fpu/k_cos.c: Likewise.
	* sysdeps/m68k/fpu/k_sin.c: Likewise.
	* sysdeps/m68k/fpu/k_tan.c: Likewise.
	* sysdeps/m68k/fpu/s_atan.c: Likewise.
	* sysdeps/m68k/fpu/s_frexp.c: Likewise.
	* sysdeps/m68k/fpu/s_ilogb.c: Likewise.
	* sysdeps/m68k/fpu/s_isinf.c: Likewise.
	* sysdeps/m68k/fpu/s_ldexp.c: Likewise.
	* sysdeps/m68k/fpu/s_modf.c: Likewise.
	* sysdeps/m68k/fpu/k_cos.c: Use inline version of __cos.
	* sysdeps/m68k/fpu/k_sin.c: Likewise.
	* sysdeps/m68k/fpu/k_tan.c: Likewise.

Mon Sep  9 12:55:14 1996  Ulrich Drepper  <drepper@cygnus.com>

	* nss/nss_files/files-parse.c (INT_FIELD_MAYBE_NULL): Check for
	available character before converting number and return with
	error if none is available.

Fri Sep  6 22:09:08 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/init-first.h: New file, generic
	implementation for architectures where parameters are passed on
	stack.
	* sysdeps/unix/sysv/linux/m68k/init-first.h: Removed.
	* sysdeps/unix/sysv/linux/i386/init-first.h: Removed.

Fri Sep  6 22:05:32 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* configure.in: Remove unneeded sysnames frobbing.

Mon Sep  9 05:29:09 1996  Ulrich Drepper  <drepper@cygnus.com>

	* time/zic.c: Update from ADO 96l.
	* time/africa: Update from ADO 96k.
	* time/antarctica: Likewise.
	* time/asia: Likewise.
	* time/australia: Likewise.
	* time/europe: Likewise.
	* time/northamerica: Likewise.
	* time/southamerica: Likewise.

Mon Sep  9 05:03:47 1996  NIIBE Yutaka  <gniibe@mri.co.jp>

	* sysdeps/unix/sysv/linux/i386/init-first.h: Work around buggy
	gcc <= 2.7.2.1 which optimizes away address operations on weak
	objects.

	* nss/nss_files/files-parse.c (INT_FIELD_MAYBE_NULL): New macro.
	Like INT_FIELD but also accept non-existing field.
	* shadow/sgetspent_r.c (LINE_PARSER): Use INT_FIELD_MAYBE_NULL
	for last four fields.
	* shadow/putspent.c (putspent): Print `:' after numeric value.

Mon Sep  9 02:42:48 1996  Richard Henderson  <rth@tamu.edu>

	* libio/stdio.h (BUFSIZ): Define using _IO_BUFSIZ.

Sun Sep  8 16:43:56 1996  Ulrich Drepper  <drepper@cygnus.com>

	* Make-dist: Filter out $(add-ons) from $(subdirs).
	Don't distribute TAGS files.
	($(tardir).tar): Remove dist.tar when all is done.
	* manual/Makefile (distribute): Add libc.info*.
	* libio/Makefile (distribute): Add Banner.
	* inet/Makefile (headers): Add netinet/tcp.h.

	* resolv/Makefile (libresolv-routines): Add getnetnamadr.

	* crypt-README: Removed.
	* gnu-stabs.h: Removed.

	* sysdeps/alpha/copysign.S: Renamed to...
	* sysdeps/alpha/s_copysign.S: ...this.
	* sysdeps/alpha/fabs.S: Renamed to...
	* sysdeps/alpha/s_fabs.S: ...this.

	* sysdeps/m68k/isinfl.c: Renamed to...
	* sysdeps/m68k/s_isinfl.c: ...this.
	* sysdeps/m68k/isnanl.c: Renamed to...
	* sysdeps/m68k/s_isnanl.c: ...this.

	* sysdeps/sparc/sqrt.c: Renamed to...
	* sysdeps/sparc/e_sqrt.c: ...this.  Function name now is
	__ieee754_sqrt.

	* sysdeps/generic/get_str.c: Removed.

	* sysdeps/ieee754/cbrt.c: Removed.
	* sysdeps/ieee754/drem.c: Removed.
	* sysdeps/ieee754/logb.c: Removed.
	* sysdeps/ieee754/sqrt.c: Removed.

	* sysdeps/stub/cbrt.c: Removed.
	* sysdeps/stub/cos.c: Removed.
	* sysdeps/stub/drem.c: Removed.
	* sysdeps/stub/isinf.c: Removed.
	* sysdeps/stub/isinfl.c: Removed.
	* sysdeps/stub/isnanl.c: Removed.
	* sysdeps/stub/logb.c: Removed.
	* sysdeps/stub/sin.c: Removed.
	* sysdeps/stub/sqrt.c: Removed.

	* sysdeps/tahoe/log10.c: Removed.

	* sysdeps/vax/index.s: Removed.
	* sysdeps/vax/rindex.s: Removed.
	* sysdeps/vax/bcmp.s: Removed.
	* sysdeps/vax/log10.c: Removed.
	* sysdeps/vax/infnan.c: Removed.
	* sysdeps/vax/Dist: Add fl.h.

	* sysdeps/unix/sysv/linux/alpha/Dist: Add llseek.S.

	* inet/rcmd.c (rcmd): Make messages more uniform.

Sun Sep  8 14:15:42 1996  Ulrich Drepper  <drepper@cygnus.com>

	* po/de.po: Update.
	* po/es.po: Update.
	* po/ko.po: Update.
	* po/pl.po: New file.
	* po/nl.po: New file.

	take care for a possible clash.  Nobody will name the domain
1996-09-10 02:00:15 +00:00
Ulrich Drepper c2bb8cabc5 third update from main archive 960907
Sat Sep  7 18:41:17 1996  Richard Henderson  <rth@tamu.edu>

	* Makeconfig (+link): Filter out start, pre & postinit from the
	generic depenancies as well.
	* Rules: Add start, pre & postinit to the dependancies of
	$(others) and $(tests).

	* configure.in: elf_dirs missing "sysdeps" component.

	* locale/Makefile (distribute): Add locale.c and localedef.c.
1996-09-08 02:16:48 +00:00
Ulrich Drepper 8ca5c11bdf second update 960907 from main archive
Sun Sep  8 02:36:02 1996  Ulrich Drepper  <drepper@cygnus.com>

	* locale/SYS_libc.c (_libc_intl_domainname): Change value to "libc".
	This is consistent with all other GNU packages.  We shouldn't
	take care for a possible clash.  Somebody will name the domain
	of a package libc if it is not the libc itself.
	* MakeTAGS ($P/SYS_libc.pot): Rename to $P/libc.pot.
	* po/Makefile (domainname): Change to libc.
	(distribute): Now ship libc.pot.
	* catgets/gencat.c (usage): Use `PACKAGE' for package name in
	version information banner.
	Change bug report address to bug-glibc@prep not @gnu.
	* db/makedb.c (PACKAGE): New macro.  Set to _libc_intl_domain.
	(main): Use `PACKAGE' for package name in version information
	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.
	Change bug report address to bug-glibc@prep not @gnu.
	* locale/programs/localedef.c (main): Likewise.

	* version.h (VERSION): Bump to 1.94.

	* libio/iofdopen: Initialize _lock field only if _IO_MTSAFE_IO.
1996-09-08 02:07:08 +00:00
Ulrich Drepper 499e7464ed update from main archive 960907
Sat Sep  7 14:00:33 1996  David Mosberger-Tang  <davidm@azstarnet.com>

	* catgets/catgets.c (catopen): Allocate sizeof(*result) bytes
	instead of sizeof(nl_catd) (which is just a pointer!).

Sat Sep  7 19:39:19 1996  Ulrich Drepper  <drepper@cygnus.com>

	* Makefile ($(objpfx)version-info.h): Generate from Banner files.
	* version.c (banner): Add contents of version-info.h to string.

	* Makerules: If $($(subdir)-version) is available name versioned
	shared library according to this value instead of glibc's version.

	* libio/Banner: New file.

	* elf/eval.c (funcall): Write error message in case function is
	not found.
	(eval): Recognize `_' in names.
1996-09-07 23:56:19 +00:00
940 changed files with 24992 additions and 8453 deletions
+2023 -5
View File
File diff suppressed because it is too large Load Diff
+173 -2
View File
@@ -49,6 +49,20 @@ please let me know.
[Q13] ``How do I configure GNU libc so that the essential libraries
like libc.so go into /lib and the other into /usr/lib?''
[Q14] ``When linking with the new libc I get unresolved symbols
`crypt' and `setkey'. Why aren't these functions in the
libc anymore?''
[Q15] ``What are these `add-ons'?''
[Q16] ``When I use GNU libc on my Linux system by linking against
to libc.so which comes with glibc all I get is a core dump.''
[Q17] ``Looking through the shared libc file I haven't found the
functions `stat', `lstat', `fstat', and `mknod' and while
linking on my Linux system I get error messages. How is
this supposed to work?''
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
[Q1] ``What systems does the GNU C Library run on?''
@@ -368,13 +382,170 @@ the second line the directory for file which are by tradition placed
in a directory named /etc.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
[Q14] ``When linking with the new libc I get unresolved symbols
`crypt' and `setkey'. Why aren't these functions in the
libc anymore?''
[A14] {UD} Remember the US restrictions of exporting cryptographic
programs and source code. Until this law gets abolished we cannot
ship the cryptographic function together with the libc.
But of course we provide the code and there is an very easy way to use
this code. First get the extra package. People in the US way get it
from the same place they got the GNU libc from. People outside the US
should get the code from ftp.uni-c.dk [129.142.6.74], or another
archive site outside the USA. The README explains how to install the
sources.
If you already have the crypt code on your system the reason for the
failure is probably that you failed to link with -lcrypt. The crypto
functions are in a separate library to make it possible to export GNU
libc binaries from the US.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
[Q15] ``What are these `add-ons'?''
[A15] {UD} To avoid complications with external or external source
code some optional parts of the libc are distributed as separate
packages (e.g., the crypt package, see Q14).
To ease the use as part of GNU libc the installer just has to unpack
the package and tell the configuration script about these additional
subdirectories using the --enable-add-ons option. When you add the
crypt add-on you just have to use
configure --enable-add-ons=crypt,XXX ...
where XXX are possible other add-ons and ... means the rest of the
normal option list.
You can use add-ons also to overwrite some files in glibc. The add-on
system dependent subdirs are search first. It is also possible to add
banner files (use a file named `Banner') or create shared libraries.
Using add-ons has the big advantage that the makefiles of the GNU libc
can be used. Only some few stub rules must be written to get
everything running. Even handling of architecture dependent
compilation is provided. The GNU libc's sysdeps/ directory shows how
to use this feature.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
[Q16] ``When I use GNU libc on my Linux system by linking against
to libc.so which comes with glibc all I get is a core dump.''
[A16] {UD} It is not enough to simply link against the GNU libc
library itself. The GNU C library comes with its own dynamic linker
which really conforms to the ELF API standard. This dynamic linker
must be used.
Normally this is done by the compiler. The gcc will use
-dynamic-linker /lib/ld-linux.so.1
unless the user specifies her/himself a -dynamic-linker argument. But
this is not the correct name for the GNU dynamic linker. The correct
name is /lib/ld.so.1 which is the name specified in the SVr4 ABi.
To change your environment to use GNU libc for compiling you need to
change the `specs' file of your gcc. This file is normally found at
/usr/lib/gcc-lib/<arch>/<version>/specs
In this file you have to change a few things:
- change `ld-linux.so.1' to `ld.so.1'
- remove all expression `%{...:-lgmon}'; there is no libgmon in glibc
Things are getting a bit more complicated if you have GNU libc
installed in some other place than /usr, i.e., if you do not want to
use it instead of the old libc. In this case the needed startup files
and libraries are not found in the regular places. So the specs file
must tell the compiler and linker exactly what to use. Here is for
example the gcc-2.7.2 specs file when GNU libc is installed at
/home/gnu:
-----------------------------------------------------------------------
*asm:
%{V} %{v:%{!V:-V}} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}
*asm_final:
%{pipe:-}
*cpp:
%{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{!m386:-D__i486__} %{posix:-D_POSIX_SOURCE} -I/home/gnu/include
*cc1:
*cc1plus:
*endfile:
%{!shared:crtend.o%s} %{shared:crtendS.o%s} /home/gnu/lib/crtn.o%s
*link:
-m elf_i386 -rpath=/home/gnu/lib -L/home/gnu/lib %{shared:-shared} %{!shared: %{!ibcs: %{!static: %{rdynamic:-export-dynamic} %{!dynamic-linker:-dynamic-linker=/home/gnu/lib/ld.so.1}} %{static:-static}}}
*lib:
%{!shared: %{mieee-fp:-lieee} %{p:-lc_p} %{!p:%{pg:-lc_p} %{!pg:-lc}}}
*libgcc:
%{!shared:-lgcc}
*startfile:
%{!shared: %{pg:/home/gnu/lib/gcrt1.o%s} %{!pg:%{p:/home/gnu/lib/gcrt1.o} %{!p:/home/gnu/lib/crt1.o%s}}} /home/gnu/lib/crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}
*switches_need_spaces:
*signed_char:
%{funsigned-char:-D__CHAR_UNSIGNED__}
*predefines:
-D__ELF__ -Dunix -Di386 -Dlinux -Asystem(unix) -Asystem(posix) -Acpu(i386) -Amachine(i386)
*cross_compile:
0
*multilib:
. ;
-----------------------------------------------------------------------
Future versions of GCC will automatically provide the correct specs.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
[Q17] ``Looking through the shared libc file I haven't found the
functions `stat', `lstat', `fstat', and `mknod' and while
linking on my Linux system I get error messages. How is
this supposed to work?''
[A17] {RM} Believe it or not, stat and lstat (and fstat, and mknod)
are supposed to be undefined references in libc.so.6! Your problem is
probably a missing or incorrect /usr/lib/libc.so file; note that this
is a small text file now, not a symlink to libc.so.6. It should look
something like this:
GROUP ( libc.so.6 ld.so.1 libc.a )
{UD} The Linux ldconfig file probably generates a link libc.so ->
libc.so.6 in /lib. This is not correct. There must not be such a
link. The linker script with the above contents is placed in
/usr/lib which is enough for the linker.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Answers were given by:
{UD} Ulrich Drepper, <drepper@cygnus.com>
{DMT} David Mosberger-Tang, <davidm@AZStarNet.com>
Amended by:
{RM} Roland McGrath, <roland@gnu.ai.mit.edu>
Local Variables:
+9 -5
View File
@@ -157,7 +157,7 @@ build the GNU C library:
recommend you port GNU `make' instead. *Really.* We recommend
version GNU `make' version 3.75 or later.
* GCC 2.7.2
* GCC 2.7.2.1
On most platforms, the GNU C library can only be compiled with the
GNU C compiler. We recommend GCC version 2.7.2 or later; earlier
@@ -177,14 +177,19 @@ Supported Configurations
The GNU C Library currently supports configurations that match the
following patterns:
alpha-dec-osf1
alpha-ANYTHING-linux
alpha-ANYTHING-linuxecoff
iX86-ANYTHING-bsd4.3
iX86-ANYTHING-gnu
iX86-ANYTHING-linux
m68k-ANYTHING-linux
Former versions of this library used to support the following
configurations but the current status is unknown:
alpha-dec-osf1
iX86-ANYTHING-bsd4.3
iX86-ANYTHING-isc2.2
iX86-ANYTHING-isc3.N
iX86-ANYTHING-linux
iX86-ANYTHING-sco3.2
iX86-ANYTHING-sco3.2v4
iX86-ANYTHING-sysv
@@ -911,4 +916,3 @@ parts of the library were contributed or worked on by other people.
or `Software.Distribution@CS.CMU.EDU' any improvements or
extensions that they make and grant Carnegie Mellon the
rights to redistribute these changes.
+7 -5
View File
@@ -40,6 +40,9 @@ else
sysdep_dirs := $(addprefix $(..),$(sysdep_dirs))
endif
# Don't distribute add-on subdirs.
subdirs := $(filter-out $(add-ons),$(subdirs))
# Make sure both stdio and libio get in, whichever is in use.
subdirs += stdio libio
@@ -110,8 +113,7 @@ sources := $(filter-out $(addsuffix .c,$(basename $(.S.s))),$(sources)) $(.S.s)
$(addsuffix .c,$(sysdep_routines)) \
$(+subdir-nodist)
#foo:=$(shell echo '+out=$(+out)' >&2; echo foofoo >&2)
+tsrcs := $(filter-out $(+out) $(addprefix %/,$(+out)), \
$(sources) $(all-headers) $(distribute)) \
+tsrcs := $(filter-out $(+out), $(sources) $(all-headers) $(distribute)) \
$(+sysdeps)
foo:=$(shell echo 'made +tsrcs=$(+tsrcs)'>&2)
foo:=$(shell echo generated='$(generated)' >&2)
@@ -129,8 +131,8 @@ endif
$(..)glibc-$(version):
ln -s . $@
+tsrcs := $(+tsrcs) \
TAGS
#+tsrcs := $(+tsrcs) \
# TAGS
.PHONY: TAGS
TAGS: $(..)MakeTAGS
$(MAKE) -f $< $@ -o subdir_TAGS
@@ -195,7 +197,7 @@ $(tardir).tar: dist.tar subdir_dist
@echo Files listed here have names exceeding 14 chars.
tar xfv $< -C /tmp | sed -n '/[^/]\{15,\}/p'
tar covf $@ -C /tmp $(tardir)
-rm -fr /tmp/$(tardir) &
-rm -fr /tmp/$(tardir) dist.tar &
%.Z: %
compress -c $< > $@
+5 -2
View File
@@ -166,9 +166,12 @@ $P/subdirs.pot: $(subdirs:%=$P/%.pot)
include $(common-objpfx)version.mk
# Combine all the messages into the final sorted template translation file.
$P/SYS_libc.pot: $(all-pot)
# The following code requires GNU date.
$P/libc.pot: $(all-pot)
@rm -f $@.new
sed -e 's/VERSION/$(version)/' -e "s/DATE/`date +'%Y-%m-%d %k:%M'`/" \
disp='set `date -R`; echo $$6'; \
sed -e 's/VERSION/$(version)/' \
-e "s/DATE/`date +'%Y-%m-%d %I:%M'$$disp/" \
po/header.pot > $@.new
$(XGETTEXT) -d - --omit-header -n -s $^ >> $@.new
mv -f $@.new $@
+4 -3
View File
@@ -303,7 +303,8 @@ ifndef +link
+link = $(CC) -nostdlib -nostartfiles -o $@ \
$(sysdep-LDFLAGS) $(config-LDFLAGS) $(LDFLAGS) \
$(addprefix $(csu-objpfx),start.o) $(+preinit) \
$(filter-out $(common-objpfx)libc%,$^) \
$(filter-out $(addprefix $(csu-objpfx),start.o) $(+preinit) \
$(link-extra-libs) $(common-objpfx)libc% $(+postinit),$^) \
$(link-extra-libs) $(link-libc) $(+postinit)
endif
ifndef config-LDFLAGS
@@ -526,8 +527,8 @@ $(common-objpfx)soversions.mk: $(..)shlib-versions $(..)Makeconfig \
$(wildcard $(patsubst %, $(..)%/shlib-versions,\
$(add-ons))) \
$(common-objpfx)config.make
(file="$(..)shlib-versions \
$(wildcard $(patsubst %,$(..)%/shlib-versions,$(add-ons)))"; \
(file="$(wildcard $(patsubst %,$(..)%/shlib-versions,$(add-ons))) \
$(..)shlib-versions"; \
for f in $$file; do \
sed 's/#.*$$//' $$f | while read conf versions; do \
test -n "$$versions" || continue; \
+22 -16
View File
@@ -54,7 +54,7 @@ endif
subdirs = csu assert ctype db locale intl catgets math setjmp signal stdlib \
stdio-common $(stdio) malloc string wcsmbs time dirent grp pwd\
posix io termios resource misc login socket sysvipc gmon gnulib \
wctype manual shadow $(sysdep-subdirs) nss elf po $(add-ons)
wctype manual shadow crypt $(sysdep-subdirs) nss elf po $(add-ons)
export subdirs := $(subdirs) # Benign, useless in GNU make before 3.63.
# The mach and hurd subdirectories have many generated header files which
@@ -84,6 +84,7 @@ subdirs := $(filter mach,$(subdirs)) $(filter hurd,$(subdirs)) \
headers := errno.h sys/errno.h errnos.h limits.h values.h \
features.h gnu-versions.h libc-lock.h
aux = sysdep $(libc-init) version
before-compile = $(objpfx)version-info.h
echo-headers: subdir_echo-headers
@@ -114,20 +115,25 @@ ifeq (yes,$(build-shared))
lib: $(common-objpfx)libc.so
endif
$(objpfx)sysd-dirs: $(+sysdir_pfx)config.make
(echo define sysdep-subdirs; \
for sysdir in $(config-sysdirs); do \
case $$sysdir in \
/*) dir=$$sysdir ;; \
*) dir=$(..)$$sysdir ;; \
esac; \
if [ -r $$dir/Subdirs ]; then \
sed 's/#.*$$//' $$dir/Subdirs; \
else true; \
fi; \
done; \
all-Subdirs-files = $(wildcard $(addsuffix /Subdirs, $(config-sysdirs)))
$(objpfx)sysd-dirs: $(+sysdir_pfx)config.make $(all-Subdirs-files)
(echo define sysdep-subdirs; \
sed 's/#.*$$//' $(all-Subdirs-files) /dev/null; \
echo endef) > $@-tmp
mv -f $@-tmp $@
mv -f $@-tmp $@
all-Banner-files = $(wildcard $(addsuffix /Banner, $(subdirs)))
$(objpfx)version-info.h: $(+sysdir_pfx)config.make $(all-Banner-files)
(files="$(all-Banner-files)"; \
if test -n "$$files"; then \
echo "\"Available extensions:"; \
sed -e '/^#/d' -e 's/^[[:space:]]*/ /' $$files; \
echo "\""; \
fi) > $@-tmp
mv -f $@-tmp $@
version.c-objects := $(addprefix $(objpfx)version,$(object-suffixes))
$(version.c-objects): $(objpfx)version-info.h
# Makerules creates a file `stub-$(subdir)' for each subdirectory, which
# contains `#define __stub_FUNCTION' for each function which is a stub.
@@ -234,12 +240,12 @@ 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 \
autolock.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
distribute := $(strip $(distribute))
generated := $(generated) stubs.h
generated := $(generated) stubs.h version-info.h
README: README.template version.c ; # Make-dist should update README.
+25
View File
@@ -316,6 +316,15 @@ else
no-whole-archive =
endif
interp-obj = $(common-objpfx)interp.so
$(interp-obj): $(common-objpfx)%.so: $(..)%.c
$(compile-command.c)
common-generated += interp.so
CFLAGS-interp.c = -D'RUNTIME_LINKER="$(slibdir)/$(rtld-installed-name)"'
$(common-objpfx)libc.so: $(interp-obj)
$(patsubst %,$(objpfx)%.so,$(extra-libs)): $(interp-obj)
define build-shlib
$(LINK.o) -shared -o $@ $(sysdep-LDFLAGS) $(config-LDFLAGS) \
-B$(csu-objpfx) \
@@ -643,6 +652,7 @@ object-suffixes-left := $(versioned)
include $(o-iterator)
ifeq (,$($(subdir)-version))
define o-iterator-doit
$(libdir)/$o$($o-version): $(libdir)/$(o:.so=)-$(version).so; $$(make-link)
endef
@@ -654,6 +664,21 @@ $(libdir)/$(o:.so=)-$(version).so: $(objpfx)$o; $$(do-install-program)
endef
object-suffixes-left := $(versioned)
include $(o-iterator)
else
define o-iterator-doit
$(libdir)/$o$($o-version): $(libdir)/$(o:.so=)-$($(subdir)-version).so;
$$(make-link)
endef
object-suffixes-left := $(versioned)
include $(o-iterator)
define o-iterator-doit
$(libdir)/$(o:.so=)-$($(subdir)-version).so: $(objpfx)$o;
$$(do-install-program)
endef
object-suffixes-left := $(versioned)
include $(o-iterator)
endif
endif
define do-install-so
+1 -1
View File
@@ -104,7 +104,7 @@ Version 2.0
* The new header file <fts.h> and suite of functions simplify programs that
operate on directory trees. This code comes from 4.4 BSD.
* The resolver code has been updated from the BIND 4.9.5-T3A release.
* The resolver code has been updated from the BIND 4.9.5-T4B release.
* The new function `malloc_find_object_address' finds the starting address
of a malloc'd block, given any address within the block;
+4 -3
View File
@@ -37,7 +37,8 @@ contact <bug-glibc@prep.ai.mit.edu>
The libm is in fact fdlibm (not the same as in Linux libc).
**** Partly done.
**** Partly done. But we need someone with numerical experiences for
the rest.
[ 6] If you enjoy assembler programming (as I do --drepper :-) you might
@@ -81,7 +82,7 @@ contact <bug-glibc@prep.ai.mit.edu>
Please contact bug-glibc@prep.ai.mit.edu before starting to avoid
duplicated work.
[11] Write access function for netmasks, bootparams, netgroup, publickey,
automount, aliases databases for nss_files and nss_db module.
[11] Write access function for netmasks, bootparams, publickey, automount,
and aliases databases for nss_files and nss_db module.
The functions should be embedded in the nss scheme. This is not
hard and not all services must be supported at once.
+24 -16
View File
@@ -1,22 +1,29 @@
This directory contains the version 1.93 test release of the GNU C Library.
This directory contains the version 1.94 test release of the GNU C Library.
Many bugs have been fixed since the last release.
Some bugs surely remain.
As of this release, the GNU C library has been ported to the following
As of this release, the GNU C library is known to run on the following
configurations:
*-*-gnu GNU Hurd
i[3456]86-*-linux Linux-2.0 on Intel
m68k-*-linux Linux-2.0 on Motorola 680x0
alpha-*-linux Linux-2.0 on DEC Alpha
Former releases of this library (version 1.09.1 and perhaps earlier
versions) used to run on the following configurations:
alpha-dec-osf1
i[345]86-*-bsd4.3
i[345]86-*-gnu
i[345]86-*-isc2.2
i[345]86-*-isc3
i[345]86-*-linux
i[345]86-*-sco3.2
i[345]86-*-sco3.2v4
i[345]86-*-sysv
i[345]86-*-sysv4
i[345]86-force_cpu386-none
i[345]86-sequent-bsd
i[3456]86-*-bsd4.3
i[3456]86-*-isc2.2
i[3456]86-*-isc3
i[3456]86-*-sco3.2
i[3456]86-*-sco3.2v4
i[3456]86-*-sysv
i[3456]86-*-sysv4
i[3456]86-force_cpu386-none
i[3456]86-sequent-bsd
i960-nindy960-none
m68k-hp-bsd4.3
m68k-mvme135-none
@@ -29,8 +36,9 @@ configurations:
sparc-sun-solaris2
sparc-sun-sunos4
Porting the library is not hard. If you are interested in doing a port,
please get on the mailing list by sending electronic mail to
Whether this is still true for this release is unknown. Porting the
library is not hard. If you are interested in doing a port, please
get on the mailing list by sending electronic mail to
bug-glibc-request@prep.ai.mit.edu.
The GNU C library now includes Michael Glad's Ultra Fast Crypt, which
@@ -38,7 +46,7 @@ provides the Unix `crypt' function, plus some other entry points.
Because of the United States export restriction on DES implementations,
we are distributing this code separately from the rest of the C
library. There is an extra distribution tar file just for crypt; it is
called `glibc-1.93-crypt.tar.gz'. You can just unpack the crypt
called `glibc-1.94-crypt.tar.gz'. You can just unpack the crypt
distribution along with the rest of the C library and build; you can
also build the library without getting crypt. Users outside the USA
can get the crypt distribution via anonymous FTP from ftp.uni-c.dk
-1
View File
@@ -4,7 +4,6 @@ function have to be written:
e_acosl.c
e_asinl.c
e_atan2l.c
e_acoshl.c
e_expl.c
e_fmodl.c
e_hypotl.c
+22 -14
View File
@@ -2,21 +2,28 @@ This directory contains the version VERSION test release of the GNU C Library.
Many bugs have been fixed since the last release.
Some bugs surely remain.
As of this release, the GNU C library has been ported to the following
As of this release, the GNU C library is known to run on the following
configurations:
*-*-gnu GNU Hurd
i[3456]86-*-linux Linux-2.0 on Intel
m68k-*-linux Linux-2.0 on Motorola 680x0
alpha-*-linux Linux-2.0 on DEC Alpha
Former releases of this library (version 1.09.1 and perhaps earlier
versions) used to run on the following configurations:
alpha-dec-osf1
i[345]86-*-bsd4.3
i[345]86-*-gnu
i[345]86-*-isc2.2
i[345]86-*-isc3
i[345]86-*-linux
i[345]86-*-sco3.2
i[345]86-*-sco3.2v4
i[345]86-*-sysv
i[345]86-*-sysv4
i[345]86-force_cpu386-none
i[345]86-sequent-bsd
i[3456]86-*-bsd4.3
i[3456]86-*-isc2.2
i[3456]86-*-isc3
i[3456]86-*-sco3.2
i[3456]86-*-sco3.2v4
i[3456]86-*-sysv
i[3456]86-*-sysv4
i[3456]86-force_cpu386-none
i[3456]86-sequent-bsd
i960-nindy960-none
m68k-hp-bsd4.3
m68k-mvme135-none
@@ -29,8 +36,9 @@ configurations:
sparc-sun-solaris2
sparc-sun-sunos4
Porting the library is not hard. If you are interested in doing a port,
please get on the mailing list by sending electronic mail to
Whether this is still true for this release is unknown. Porting the
library is not hard. If you are interested in doing a port, please
get on the mailing list by sending electronic mail to
bug-glibc-request@prep.ai.mit.edu.
The GNU C library now includes Michael Glad's Ultra Fast Crypt, which
+2 -1
View File
@@ -89,7 +89,8 @@ endif
ifneq "$(strip $(others) $(tests))" ""
$(addprefix $(objpfx),$(others) $(tests)): %: %.o \
$(sort $(filter $(common-objpfx)libc%,$(link-libc)))
$(sort $(filter $(common-objpfx)libc%,$(link-libc))) \
$(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
$(+link)
endif
+2 -2
View File
@@ -34,7 +34,7 @@ catopen (const char *cat_name, int flag)
__nl_catd result;
const char *env_var;
result = (__nl_catd) malloc (sizeof (__nl_catd));
result = (__nl_catd) malloc (sizeof (*result));
if (result == NULL)
/* We cannot get enough memory. */
return (nl_catd) -1;
@@ -79,7 +79,7 @@ catopen (const char *cat_name, int flag)
return (nl_catd) -1;
}
if (getenv ("NLSPATH") != NULL)
if (__secure_getenv ("NLSPATH") != NULL)
result->nlspath = __strdup (getenv ("NLSPATH"));
else
result->nlspath = __strdup (NLSPATH);
+15 -6
View File
@@ -165,8 +165,14 @@ main (int argc, char *argv[])
/* Version information is requested. */
if (do_version)
{
fprintf (stderr, "%s - GNU %s %s\n", program_invocation_name,
"libc", VERSION);
printf ("gencat (GNU %s) %s\n", PACKAGE, VERSION);
printf (_("\
Copyright (C) %s Free Software Foundation, Inc.\n\
This is free software; see the source for copying conditions. There is NO\n\
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
"), "1996");
printf (_("Written by %s.\n"), "Ulrich Drepper");
exit (EXIT_SUCCESS);
}
@@ -202,7 +208,8 @@ usage (int status)
fprintf (stderr, gettext ("Try `%s --help' for more information.\n"),
program_invocation_name);
else
printf(gettext ("\
{
printf (gettext ("\
Usage: %s [OPTION]... -o OUTPUT-FILE [INPUT-FILE]...\n\
%s [OPTION]... [OUTPUT-FILE [INPUT-FILE]...]\n\
Mandatory arguments to long options are mandatory for short options too.\n\
@@ -212,9 +219,11 @@ Mandatory arguments to long options are mandatory for short options too.\n\
-o, --output=NAME write output to file NAME\n\
-V, --version output version information and exit\n\
If INPUT-FILE is -, input is read from standard input. If OUTPUT-FILE\n\
is -, output is written to standard output.\n\
Report bugs to <bug-glibc@gnu.ai.mit.edu>.\n"),
program_invocation_name, program_invocation_name);
is -, output is written to standard output.\n"),
program_invocation_name, program_invocation_name);
fputs (gettext ("Report bugs to <bug-glibc@prep.ai.mit.edu>.\n"),
stdout);
}
exit (status);
}
+22 -22
View File
@@ -81,7 +81,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit 0 ;;
i86pc:SunOS:5.*:*)
echo i386-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit 0 ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
@@ -332,7 +332,7 @@ EOF
echo m68k-hp-netbsd${UNAME_RELEASE}
exit 0 ;;
i[34]86:BSD/386:*:* | *:BSD/OS:*:*)
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
exit 0 ;;
*:FreeBSD:*:*)
echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
@@ -341,7 +341,7 @@ EOF
echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
exit 0 ;;
i*:CYGWIN*:*)
echo i386-unknown-cygwin32
echo i386-pc-cygwin32
exit 0 ;;
p*:CYGWIN*:*)
echo powerpcle-unknown-cygwin32
@@ -357,26 +357,26 @@ EOF
# first see if it will tell us.
ld_help_string=`ld --help 2>&1`
if echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf_i[345]86"; then
echo "${UNAME_MACHINE}-unknown-linux" ; exit 0
echo "${UNAME_MACHINE}-pc-linux-gnu" ; exit 0
elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i[345]86linux"; then
echo "${UNAME_MACHINE}-unknown-linuxaout" ; exit 0
echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0
elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i[345]86coff"; then
echo "${UNAME_MACHINE}-unknown-linuxcoff" ; exit 0
echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0
elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68kelf"; then
echo "${UNAME_MACHINE}-unknown-linux" ; exit 0
echo "${UNAME_MACHINE}-unknown-linux-gnu" ; exit 0
elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68klinux"; then
echo "${UNAME_MACHINE}-unknown-linuxaout" ; exit 0
echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0
elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf32ppc"; then
echo "powerpc-unknown-linux" ; exit 0
echo "powerpc-unknown-linux-gnu" ; exit 0
elif test "${UNAME_MACHINE}" = "alpha" ; then
echo alpha-unknown-linux ; exit 0
echo alpha-unknown-linux-gnu ; exit 0
elif test "${UNAME_MACHINE}" = "sparc" ; then
echo sparc-unknown-linux ; exit 0
echo sparc-unknown-linux-gnu ; exit 0
else
# Either a pre-BFD a.out linker (linuxoldld) or one that does not give us
# useful --help. Gcc wants to distinguish between linuxoldld and linuxaout.
# Either a pre-BFD a.out linker (linux-gnuoldld) or one that does not give us
# useful --help. Gcc wants to distinguish between linux-gnuoldld and linux-gnuaout.
test ! -d /usr/lib/ldscripts/. \
&& echo "${UNAME_MACHINE}-unknown-linuxoldld" && exit 0
&& echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
# Determine whether the default compiler is a.out or elf
cat >dummy.c <<EOF
main(argc, argv)
@@ -384,9 +384,9 @@ int argc;
char *argv[];
{
#ifdef __ELF__
printf ("%s-unknown-linux\n", argv[1]);
printf ("%s-pc-linux-gnu\n", argv[1]);
#else
printf ("%s-unknown-linuxaout\n", argv[1]);
printf ("%s-pc-linux-gnuaout\n", argv[1]);
#endif
return 0;
}
@@ -403,25 +403,25 @@ EOF
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE}
else
echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}
echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
fi
exit 0 ;;
i[34]86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
echo ${UNAME_MACHINE}-unknown-isc$UNAME_REL
echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
elif /bin/uname -X 2>/dev/null >/dev/null ; then
UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
(/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
(/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
&& UNAME_MACHINE=i586
echo ${UNAME_MACHINE}-unknown-sco$UNAME_REL
echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
else
echo ${UNAME_MACHINE}-unknown-sysv32
echo ${UNAME_MACHINE}-pc-sysv32
fi
exit 0 ;;
Intel:Mach:3*:*)
echo i386-unknown-mach3
echo i386-pc-mach3
exit 0 ;;
paragon:*:*:*)
echo i860-intel-osf1
@@ -547,7 +547,7 @@ main ()
#endif
#if defined (__386BSD__)
printf ("i386-unknown-bsd\n"); exit (0);
printf ("i386-pc-bsd\n"); exit (0);
#endif
#if defined (sequent)
Vendored
+46 -22
View File
@@ -41,6 +41,8 @@
# The goal of this file is to map all the various variations of a given
# machine specification into a single specification in the form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
# or in some cases, the newer four-part form:
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
# It is wrong to echo any other type of specification.
if [ x$1 = x ]
@@ -62,11 +64,21 @@ case $1 in
;;
esac
# Separate what the user gave into CPU-COMPANY and OS (if any).
basic_machine=`echo $1 | sed 's/-[^-]*$//'`
if [ $basic_machine != $1 ]
then os=`echo $1 | sed 's/.*-/-/'`
else os=; fi
# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
# Here we must recognize all the valid KERNEL-OS combinations.
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
linux-gnu*)
os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
;;
*)
basic_machine=`echo $1 | sed 's/-[^-]*$//'`
if [ $basic_machine != $1 ]
then os=`echo $1 | sed 's/.*-/-/'`
else os=; fi
;;
esac
### Let's recognize common machines as not being operating systems so
### that things like config.sub decstation-3100 work. We also
@@ -91,33 +103,33 @@ case $os in
;;
-sco5)
os=sco3.2v5
basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco4)
os=-sco3.2v4
basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco3.2.[4-9]*)
os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco3.2v[4-9]*)
# Don't forget version if it is 3.2v4 or newer.
basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco*)
os=-sco3.2v2
basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-isc)
os=-isc2.2
basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-clix*)
basic_machine=clipper-intergraph
;;
-isc*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-lynx*)
os=-lynxos
@@ -137,7 +149,7 @@ esac
case $basic_machine in
# Recognize the basic CPU types without company name.
# Some are omitted here because they have special meanings below.
tahoe | i[3456]86 | i860 | m68k | m68000 | m88k | ns32k | arm \
tahoe | i860 | m68k | m68000 | m88k | ns32k | arm \
| arme[lb] | pyramid \
| tron | a29k | 580 | i960 | h8300 | hppa1.0 | hppa1.1 \
| alpha | we32k | ns16k | clipper | i370 | sh \
@@ -146,6 +158,12 @@ case $basic_machine in
| sparc | sparclet | sparclite | sparc64)
basic_machine=$basic_machine-unknown
;;
# We use `pc' rather than `unknown'
# because (1) that's what they normally are, and
# (2) the word "unknown" tends to confuse beginning users.
i[3456]86)
basic_machine=$basic_machine-pc
;;
# Object if more than one company name word.
*-*-*)
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
@@ -325,19 +343,19 @@ case $basic_machine in
;;
# I'm not sure what "Sysv32" means. Should this be sysv3.2?
i[3456]86v32)
basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'`
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-sysv32
;;
i[3456]86v4*)
basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'`
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-sysv4
;;
i[3456]86v)
basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'`
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-sysv
;;
i[3456]86sol2)
basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'`
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-solaris2
;;
iris | iris4d)
@@ -635,6 +653,8 @@ esac
if [ x"$os" != x"" ]
then
case $os in
# First match some system type aliases
# that might get confused with valid system types.
# -solaris* is a basic system type, with this one exception.
-solaris1 | -solaris1.*)
os=`echo $os | sed -e 's|solaris1|sunos4|'`
@@ -646,7 +666,7 @@ case $os in
os=-sysv4
;;
-gnu/linux*)
os=`echo $os | sed -e 's|gnu/linux|linux|'`
os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
;;
# First accept the basic system types.
# The portable systems comes first.
@@ -656,15 +676,19 @@ case $os in
| -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
| -amigados* | -msdos* | -newsos* | -unicos* | -aof* | -aos* \
| -nindy* | -vxworks* | -ebmon* | -hms* | -mvs* | -clix* \
| -riscos* | -linux* | -uniplus* | -iris* | -rtu* | -xenix* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
| -hiux* | -386bsd* | -netbsd* | -freebsd* | -riscix* \
| -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems*)
| -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -linux-gnu*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-linux*)
os=`echo $os | sed -e 's|linux|linux-gnu|'`
;;
-sunos5*)
os=`echo $os | sed -e 's|sunos5|solaris2|'`
;;
@@ -883,7 +907,7 @@ case $basic_machine in
-ptx*)
vendor=sequent
;;
-vxworks*)
-vxsim* | -vxworks*)
vendor=wrs
;;
-aux*)
Vendored
+28 -27
View File
@@ -2,7 +2,7 @@
# From configure.in CVSid
# Guess values for system-dependent variables and create Makefiles.
# Generated automatically using autoconf version 2.99
# Generated automatically using autoconf version 2.10
# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
#
# This configure script is free software; the Free Software Foundation
@@ -355,7 +355,7 @@ EOF
verbose=yes ;;
-version | --version | --versio | --versi | --vers)
echo "configure generated by autoconf version 2.99"
echo "configure generated by autoconf version 2.10"
exit 0 ;;
-with-* | --with-*)
@@ -690,7 +690,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
subdirs="$add_ons"
add_ons_pfx=
if test x$add_ons != x; then
if test x"$add_ons" != x; then
for f in $add_ons; do
add_ons_pfx="$add_ons_pfx $f/"
done
@@ -717,9 +717,9 @@ NONE)
esac
host=`$ac_config_sub $host_alias`
host_cpu=`echo $host | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'`
host_vendor=`echo $host | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'`
host_os=`echo $host | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'`
host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
echo "$ac_t""$host" 1>&6
# We keep the original values in `$config_*' and never modify them, so we
@@ -799,6 +799,11 @@ o=`echo $tail | sed 's/[0-9]*$//'`
if test $o != $tail; then
ostry="$ostry /$o"
fi
# For linux-gnu, try linux-gnu, then linux.
o=`echo $tail | sed 's/-.*$//'`
if test $o != $tail; then
ostry="$ostry /$o"
fi
# For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
base=
@@ -878,7 +883,7 @@ if test "$elf" = yes; then
esac
for m in $mach; do
if test -d $xsrcdir${d}sysdeps$m/elf; then
elf_dirs="$elf_dirs $d$m/elf"
elf_dirs="$elf_dirs ${d}sysdeps$m/elf"
fi
done
done
@@ -886,10 +891,6 @@ if test "$elf" = yes; then
fi
# Remove the leading slashes.
sysnames="`echo $sysnames | sed -e 's@^/@@' -e 's@ /@ @g'`"
# Expand the list of system names into a full list of directories
# from each element's parent name and Implies file (if present).
set $sysnames
@@ -1089,9 +1090,9 @@ NONE)
esac
build=`$ac_config_sub $build_alias`
build_cpu=`echo $build | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'`
build_vendor=`echo $build | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'`
build_os=`echo $build | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'`
build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
echo "$ac_t""$build" 1>&6
if test $host != $build; then
@@ -1174,13 +1175,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
#line 1178 "configure"
#line 1179 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:1184: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:1185: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
:
@@ -1189,13 +1190,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
#line 1193 "configure"
#line 1194 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:1199: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:1200: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
:
@@ -1337,7 +1338,7 @@ if eval "test \"`echo '$''{'libc_cv_friendly_stddef'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 1341 "configure"
#line 1342 "configure"
#include "confdefs.h"
#define __need_size_t
#define __need_wchar_t
@@ -1353,7 +1354,7 @@ size_t size; wchar_t wchar;
if (&size == NULL || &wchar == NULL) abort ();
; return 0; }
EOF
if { (eval echo configure:1357: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:1358: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
libc_cv_friendly_stddef=yes
else
@@ -1460,7 +1461,7 @@ if eval "test \"`echo '$''{'libc_cv_have_initfini'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 1464 "configure"
#line 1465 "configure"
#include "confdefs.h"
int main() { return 0; }
@@ -1470,7 +1471,7 @@ asm (".section .init");
asm (".text");
; return 0; }
EOF
if { (eval echo configure:1474: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:1475: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
libc_cv_have_initfini=yes
else
@@ -1498,7 +1499,7 @@ if eval "test \"`echo '$''{'libc_cv_asm_underscores'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 1502 "configure"
#line 1503 "configure"
#include "confdefs.h"
asm ("_glibc_foobar:");
int main() { return 0; }
@@ -1506,7 +1507,7 @@ int t() {
glibc_foobar ();
; return 0; }
EOF
if { (eval echo configure:1510: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
if { (eval echo configure:1511: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
rm -rf conftest*
libc_cv_asm_underscores=yes
else
@@ -1600,7 +1601,7 @@ __throw () {}
EOF
if { ac_try='${CC-cc} $CFLAGS
-nostdlib -nostartfiles -Wl,--no-whole-archive
-o conftest conftest.c'; { (eval echo configure:1604: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
-o conftest conftest.c'; { (eval echo configure:1605: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_ld_no_whole_archive=yes
else
libc_cv_ld_no_whole_archive=no
@@ -1621,7 +1622,7 @@ __throw () {}
EOF
if { ac_try='${CC-cc} $CFLAGS
-nostdlib -nostartfiles -fno-exceptions
-o conftest conftest.c'; { (eval echo configure:1625: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
-o conftest conftest.c'; { (eval echo configure:1626: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_gcc_no_exceptions=yes
else
libc_cv_gcc_no_exceptions=no
@@ -1838,7 +1839,7 @@ do
echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
-version | --version | --versio | --versi | --vers | --ver | --ve | --v)
echo "$CONFIG_STATUS generated by autoconf version 2.99"
echo "$CONFIG_STATUS generated by autoconf version 2.10"
exit 0 ;;
-help | --help | --hel | --he | --h)
echo "\$ac_cs_usage"; exit 0 ;;
+7 -6
View File
@@ -78,7 +78,7 @@ AC_ARG_ENABLE(add-ons, dnl
[add_ons=])
AC_CONFIG_SUBDIRS($add_ons)
add_ons_pfx=
if test x$add_ons != x; then
if test x"$add_ons" != x; then
for f in $add_ons; do
add_ons_pfx="$add_ons_pfx $f/"
done
@@ -167,6 +167,11 @@ o=`echo $tail | sed 's/[0-9]*$//'`
if test $o != $tail; then
ostry="$ostry /$o"
fi
# For linux-gnu, try linux-gnu, then linux.
o=`echo $tail | sed 's/-.*$//'`
if test $o != $tail; then
ostry="$ostry /$o"
fi
# For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
base=
@@ -248,7 +253,7 @@ if test "$elf" = yes; then
esac
for m in $mach; do
if test -d $xsrcdir${d}sysdeps$m/elf; then
elf_dirs="$elf_dirs $d$m/elf"
elf_dirs="$elf_dirs ${d}sysdeps$m/elf"
fi
done
done
@@ -256,10 +261,6 @@ if test "$elf" = yes; then
fi
# Remove the leading slashes.
sysnames="`echo $sysnames | sed -e 's@^/@@' -e 's@ /@ @g'`"
# Expand the list of system names into a full list of directories
# from each element's parent name and Implies file (if present).
set $sysnames
-14
View File
@@ -1,14 +0,0 @@
The GNU C library now includes Michael Glad's Ultra Fast Crypt, which
provides the Unix `crypt' function, plus some other entry points. Because
of the United States export restriction on DES implementations, we are
distributing this code separately from the rest of the C library. There is
an extra distribution tar file just for crypt; it is called
`glibc-1.07-crypt.tar.gz'. You can just unpack the crypt distribution
along with the rest of the C library and build; you can also build the
library without getting crypt. Users outside the USA can get the crypt
distribution via anonymous FTP from ftp.uni-c.dk [129.142.6.74], or another
archive site outside the USA. Archive maintainers are encouraged to copy
this distribution to their archives outside the USA. Please get it from
ftp.uni-c.dk; transferring this distribution from prep.ai.mit.edu (or any
other site in the USA) to a site outside the USA is in violation of US
export laws.
+2 -1
View File
@@ -9,6 +9,7 @@ subdir-dirs = btree db hash mpool recno
vpath %.c $(subdir-dirs)
extra-libs := libdb
extra-libs-others := $(extra-libs)
libdb-routines := bt_close bt_conv bt_debug bt_delete bt_get \
bt_open bt_overflow bt_page bt_put bt_search \
bt_seq bt_split bt_utils \
@@ -39,7 +40,7 @@ CFLAGS-hash_func.c := -Wno-unused
# The db code outsmarts the compiler frequently.
override CFLAGS += -Wno-uninitialized
ifeq ($(build_shared),yes)
ifeq ($(build-shared),yes)
$(objpfx)makedb: $(objpfx)libdb.so$(libdb.so-version)
else
$(objpfx)makedb: $(objpfx)libdb.a
+21 -6
View File
@@ -25,6 +25,7 @@ Boston, MA 02111-1307, USA. */
#include <fcntl.h>
#include <getopt.h>
#include <libintl.h>
#include <locale.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -32,6 +33,7 @@ Boston, MA 02111-1307, USA. */
/* Get libc version number. */
#include "../version.h"
#define PACKAGE _libc_intl_domainname
/* Long options. */
static const struct option long_options[] =
@@ -112,7 +114,17 @@ main (argc, argv)
/* Version information is requested. */
if (do_version)
printf ("%s - GNU %s %s\n", program_invocation_name, "libc", VERSION);
{
printf ("makedb (GNU %s) %s\n", PACKAGE, VERSION);
printf (_("\
Copyright (C) %s Free Software Foundation, Inc.\n\
This is free software; see the source for copying conditions. There is NO\n\
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
"), "1996");
printf (_("Written by %s.\n"), "Ulrich Drepper");
exit (EXIT_SUCCESS);
}
/* Help is requested. */
if (do_help)
@@ -196,7 +208,8 @@ usage (status)
fprintf (stderr, gettext ("Try `%s --help' for more information.\n"),
program_invocation_name);
else
printf (gettext ("\
{
printf (gettext ("\
Usage: %s [OPTION]... INPUT-FILE OUTPUT-FILE\n\
%s [OPTION]... -o OUTPUT-FILE INPUT-FILE\n\
%s [OPTION]... -u INPUT-FILE\n\
@@ -207,10 +220,12 @@ Mandatory arguments to long options are mandatory for short options too.\n\
--quiet don't print messages while building database\n\
-u, --undo print content of database file, one entry a line\n\
-V, --version output version information and exit\n\
If INPUT-FILE is -, input is read from standard input.\n\
Report bugs to <bug-glibc@gnu.ai.mit.edu>.\n"),
program_invocation_name, program_invocation_name,
program_invocation_name);
If INPUT-FILE is -, input is read from standard input.\n"),
program_invocation_name, program_invocation_name,
program_invocation_name);
fputs (gettext ("Report bugs to <bug-glibc@prep.ai.mit.edu>.\n"),
stdout);
}
exit (status);
}
+1 -1
View File
@@ -22,7 +22,7 @@
subdir := dirent
headers := dirent.h direntry.h
routines := opendir closedir readdir rewinddir \
routines := opendir closedir readdir readdir_r rewinddir \
seekdir telldir scandir alphasort \
getdents dirfd
distribute := dirstream.h
+7
View File
@@ -116,6 +116,13 @@ extern int closedir __P ((DIR * __dirp));
extern struct dirent *__readdir __P ((DIR * __dirp));
extern struct dirent *readdir __P ((DIR * __dirp));
#ifdef __USE_REENTRANT
/* Reentrant versio of `readdir'. Return in RESULT a pointer to the
next entry. */
extern int readdir_r __P ((DIR *__dirp, struct dirent *entry,
struct dirent **result));
#endif
/* Rewind DIRP to the beginning of the directory. */
extern void rewinddir __P ((DIR * __dirp));
+9 -10
View File
@@ -16,18 +16,17 @@ 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 <ansidecl.h>
#include <dirent.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
int
DEFUN(scandir, (dir, namelist, select, cmp),
CONST char *dir AND
struct dirent ***namelist AND
int EXFUN((*select), (struct dirent *)) AND
int EXFUN((*cmp), (CONST PTR, CONST PTR)))
scandir (dir, namelist, select, cmp)
const char *dir;
struct dirent ***namelist;
int (*select) __P ((struct dirent *));
int (*cmp) __P ((const void *, const void *));
{
DIR *dp = opendir (dir);
struct dirent **v = NULL;
@@ -39,7 +38,7 @@ DEFUN(scandir, (dir, namelist, select, cmp),
return -1;
save = errno;
errno = 0;
__set_errno (0);
i = 0;
while ((d = readdir (dp)) != NULL)
@@ -58,7 +57,7 @@ DEFUN(scandir, (dir, namelist, select, cmp),
if (new == NULL)
{
lose:
errno = ENOMEM;
__set_errno (ENOMEM);
break;
}
v = new;
@@ -79,12 +78,12 @@ DEFUN(scandir, (dir, namelist, select, cmp),
while (i > 0)
free (v[--i]);
free (v);
errno = save;
__set_errno (save);
return -1;
}
(void) closedir (dp);
errno = save;
__set_errno (save);
/* Sort the list if we have a comparison function to sort with. */
if (cmp != NULL)
+2 -2
View File
@@ -3,7 +3,7 @@
#include <stdlib.h>
int
main ()
main (int argc, char *argv[])
{
DIR * dirp;
@@ -31,7 +31,7 @@ main ()
/* go back to saved entry */
seekdir (dirp, save3);
/* print remaining files (3-last) */
for (dp = readdir(dirp); dp != NULL; dp = readdir(dirp))
printf("%s\n", dp->d_name);
+3 -2
View File
@@ -37,7 +37,8 @@ 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
extra-libs = libdl
extra-libs = libdl
extra-libs-others = $(extra-libs)
libdl-routines := dlopen dlclose dlsym dlerror dladdr
@@ -46,7 +47,7 @@ all: # Make this the default target; it will be defined in Rules.
include ../Makeconfig
ifeq (yes,$(build-shared))
extra-objs = $(rtld-routines:=.so) soinit.so sofini.so
extra-objs = $(rtld-routines:=.so) soinit.so sofini.so eval.so
generated = librtld.so dl-allobjs.so
install-others = $(slibdir)/$(rtld-installed-name)
install-bin = ldd
+1 -1
View File
@@ -418,7 +418,7 @@ open_path (const char *name, size_t namelen,
p = dirpath;
if (p == NULL || *p == '\0')
{
errno = ENOENT;
__set_errno (ENOENT);
return -1;
}
+4 -8
View File
@@ -23,7 +23,7 @@ Cambridge, MA 02139, USA. */
#include <errno.h>
extern void _dl_start (void); weak_extern (_dl_start)
weak_extern (_DYNAMIC)
extern int __libc_multiple_libcs; /* Defined in init-first.c. */
@@ -40,9 +40,6 @@ _dl_open (const char *file, int mode)
struct link_map *new, *l;
ElfW(Addr) init;
struct r_debug *r;
/* To decide whether we are the static libc or not. We must use
this variable since gcc would otherwise optimize the test away. */
void (*dl_start_ptr) (void) = &_dl_start;
/* Load the named object. */
new = _dl_map_object (NULL, file, lt_loaded);
@@ -144,10 +141,9 @@ _dl_open (const char *file, int mode)
(*(void (*) (int, char **, char **)) init) (__libc_argc, __libc_argv,
__environ);
if (dl_start_ptr == NULL)
/* We must be the static _dl_open in libc.a because ld.so.1 is not
in scope. A static program that has loaded a dynamic object
now has competition. */
if (_DYNAMIC == NULL)
/* We must be the static _dl_open in libc.a. A static program that
has loaded a dynamic object now has competition. */
__libc_multiple_libcs = 1;
return new;
+29 -1
View File
@@ -1,6 +1,27 @@
/* You don't really want to know what this hack is for.
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. */
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <dlfcn.h>
static void *funcall (char **stringp);
@@ -27,6 +48,13 @@ funcall (char **stringp)
/* Swallow closing paren. */
++*stringp;
if (args[0] == NULL)
{
static const char unknown[] = "Unknown function\n";
write (1, unknown, sizeof unknown - 1);
return NULL;
}
/* Do it to it. */
__builtin_return (__builtin_apply (args[0],
&argcookie,
@@ -81,7 +109,7 @@ eval (char **stringp)
value = p;
do
++p;
while (*p != '\0' && !isspace (*p) && !ispunct (*p));
while (*p != '\0' && !isspace (*p) && (!ispunct (*p) || *p == '_'));
c = *p;
*p = '\0';
value = dlsym (NULL, value);
+18 -18
View File
@@ -310,6 +310,24 @@ of this helper program; chances are you did not intend to run this program.\n",
preloads = NULL;
npreloads = 0;
if (! __libc_enable_secure)
{
const char *preloadlist = getenv ("LD_PRELOAD");
if (preloadlist)
{
/* The LD_PRELOAD environment variable gives a colon-separated
list of libraries that are loaded before the executable's
dependencies and prepended to the global scope list. */
char *list = strdupa (preloadlist);
char *p;
while ((p = strsep (&list, ":")) != NULL)
{
(void) _dl_map_object (NULL, p, lt_library);
++npreloads;
}
}
}
/* Read the contents of the file. */
file = _dl_sysdep_read_whole_file ("/etc/ld.so.preload", &file_size,
PROT_READ | PROT_WRITE);
@@ -375,24 +393,6 @@ of this helper program; chances are you did not intend to run this program.\n",
__munmap (file, file_size);
}
if (! __libc_enable_secure)
{
const char *preloadlist = getenv ("LD_PRELOAD");
if (preloadlist)
{
/* The LD_PRELOAD environment variable gives a colon-separated
list of libraries that are loaded before the executable's
dependencies and prepended to the global scope list. */
char *list = strdupa (preloadlist);
char *p;
while ((p = strsep (&list, ":")) != NULL)
{
(void) _dl_map_object (NULL, p, lt_library);
++npreloads;
}
}
}
if (npreloads != 0)
{
/* Set up PRELOADS with a vector of the preloaded libraries. */
+3 -1
View File
@@ -29,6 +29,8 @@ Cambridge, MA 02139, USA. */
_BSD_SOURCE ANSI, POSIX, and 4.3BSD things.
_SVID_SOURCE ANSI, POSIX, and SVID things.
_GNU_SOURCE All of the above, plus GNU extensions.
_REENTRANT Select additionally reentrant object.
_THREAD_SAFE Same as _REENTRANT, often used by other systems.
The `-ansi' switch to the GNU C compiler defines __STRICT_ANSI__.
If none of these are defined, the default is all but _GNU_SOURCE.
@@ -137,7 +139,7 @@ Cambridge, MA 02139, USA. */
#define __USE_GNU 1
#endif
#if defined (__USE_GNU) || defined (__USE_MISC)
#if defined (_REENTRANT) || defined (_THREAD_SAFE)
#define __USE_REENTRANT 1
#endif
+26 -24
View File
@@ -35,7 +35,6 @@
#include <sys/gmon.h>
#include <sys/gmon_out.h>
#include <ansidecl.h>
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
@@ -45,6 +44,8 @@
#include <string.h>
#include <unistd.h>
extern int __profile_frequency __P ((void));
struct __bb *__bb_head; /* Head of basic-block list or NULL. */
struct gmonparam _gmonparam = { GMON_PROF_OFF };
@@ -63,7 +64,8 @@ static int s_scale;
* all the data structures are ready.
*/
void
DEFUN(moncontrol, (mode), int mode)
moncontrol (mode)
int mode;
{
struct gmonparam *p = &_gmonparam;
@@ -83,7 +85,9 @@ DEFUN(moncontrol, (mode), int mode)
void
DEFUN(monstartup, (lowpc, highpc), u_long lowpc AND u_long highpc)
monstartup (lowpc, highpc)
u_long lowpc;
u_long highpc;
{
register int o;
char *cp;
@@ -128,7 +132,7 @@ DEFUN(monstartup, (lowpc, highpc), u_long lowpc AND u_long highpc)
p->tos[0].link = 0;
o = p->highpc - p->lowpc;
if (p->kcountsize < o)
if (p->kcountsize < (u_long) o)
{
#ifndef hp300
s_scale = ((float)p->kcountsize / o ) * SCALE_1_TO_1;
@@ -153,21 +157,19 @@ DEFUN(monstartup, (lowpc, highpc), u_long lowpc AND u_long highpc)
static void
DEFUN(write_hist, (fd), int fd)
write_hist (fd)
int fd;
{
const u_char tag = GMON_TAG_TIME_HIST;
struct gmon_hist_hdr thdr;
int size, rate;
if (_gmonparam.kcountsize > 0)
{
size = _gmonparam.kcountsize / sizeof(HISTCOUNTER);
rate = __profile_frequency();
bcopy(&_gmonparam.lowpc, &thdr.low_pc, sizeof(thdr.low_pc));
bcopy(&_gmonparam.highpc, &thdr.high_pc, sizeof(thdr.high_pc));
bcopy(&size, &thdr.hist_size, sizeof(thdr.hist_size));
bcopy(&rate, &thdr.prof_rate, sizeof(thdr.prof_rate));
strcpy(thdr.dimen, "seconds");
thdr.low_pc = _gmonparam.lowpc;
thdr.high_pc = _gmonparam.highpc;
thdr.hist_size = _gmonparam.kcountsize / sizeof(HISTCOUNTER);
thdr.prof_rate = __profile_frequency();
strncpy(thdr.dimen, "seconds", sizeof(thdr.dimen));
thdr.dimen_abbrev = 's';
write(fd, &tag, sizeof(tag));
@@ -178,7 +180,8 @@ DEFUN(write_hist, (fd), int fd)
static void
DEFUN(write_call_graph, (fd), int fd)
write_call_graph (fd)
int fd;
{
const u_char tag = GMON_TAG_CG_ARC;
struct gmon_cg_arc_record raw_arc;
@@ -198,11 +201,9 @@ DEFUN(write_call_graph, (fd), int fd)
to_index != 0;
to_index = _gmonparam.tos[to_index].link)
{
bcopy(&frompc, &raw_arc.from_pc, sizeof(raw_arc.from_pc));
bcopy(&_gmonparam.tos[to_index].selfpc, &raw_arc.self_pc,
sizeof(raw_arc.self_pc));
bcopy(&_gmonparam.tos[to_index].count, &raw_arc.count,
sizeof(raw_arc.count));
raw_arc.from_pc = frompc;
raw_arc.self_pc = _gmonparam.tos[to_index].selfpc;
raw_arc.count = _gmonparam.tos[to_index].count;
write(fd, &tag, sizeof(tag));
write(fd, &raw_arc, sizeof(raw_arc));
@@ -212,7 +213,8 @@ DEFUN(write_call_graph, (fd), int fd)
static void
DEFUN(write_bb_counts, (fd), int fd)
write_bb_counts (fd)
int fd;
{
struct __bb *grp;
const u_char tag = GMON_TAG_BB_COUNT;
@@ -237,9 +239,8 @@ DEFUN(write_bb_counts, (fd), int fd)
void
DEFUN_VOID(_mcleanup)
_mcleanup ()
{
const int version = GMON_VERSION;
struct gmon_hdr ghdr;
int fd;
@@ -252,8 +253,9 @@ DEFUN_VOID(_mcleanup)
}
/* write gmon.out header: */
bcopy(GMON_MAGIC, &ghdr.cookie[0], 4);
bcopy(&version, &ghdr.version, sizeof(version));
memset(&ghdr, 0, sizeof(ghdr));
memcpy(&ghdr.cookie[0], GMON_MAGIC, sizeof(ghdr.cookie));
ghdr.version = GMON_VERSION;
write(fd, &ghdr, sizeof(ghdr));
/* write PC histogram: */
-1
View File
@@ -58,7 +58,6 @@ static char sccsid[] = "@(#)mcount.c 8.1 (Berkeley) 6/4/93";
* perform this optimization.
*/
_MCOUNT_DECL(frompc, selfpc) /* _mcount; may be static, inline, etc */
register u_long frompc, selfpc;
{
register u_short *frompcindex;
register struct tostruct *top, *prevtop;
+9 -9
View File
@@ -39,8 +39,8 @@ identifying the type of records, followed by records specific data. */
*/
struct gmon_hdr {
char cookie[4];
char version[4];
char spare[3 * 4];
int version;
int spare[3];
};
/* types of records in this file: */
@@ -49,18 +49,18 @@ typedef enum {
} GMON_Record_Tag;
struct gmon_hist_hdr {
char low_pc[sizeof (char *)]; /* base pc address of sample buffer */
char high_pc[sizeof (char *)]; /* max pc address of sampled buffer */
char hist_size[4]; /* size of sample buffer */
char prof_rate[4]; /* profiling clock rate */
unsigned long low_pc; /* base pc address of sample buffer */
unsigned long high_pc; /* max pc address of sampled buffer */
int hist_size; /* size of sample buffer */
int prof_rate; /* profiling clock rate */
char dimen[15]; /* phys. dim., usually "seconds" */
char dimen_abbrev; /* usually 's' for "seconds" */
};
struct gmon_cg_arc_record {
char from_pc[sizeof (char *)]; /* address within caller's body */
char self_pc[sizeof (char *)]; /* address within callee's body */
char count[4]; /* number of arc traversals */
unsigned long from_pc; /* address within caller's body */
unsigned long self_pc; /* address within callee's body */
int count; /* number of arc traversals */
};
#endif /* !_SYS_GMON_OUT_H_ */
-75
View File
@@ -1,75 +0,0 @@
#error This file is obsolete.
/* Copyright (C) 1991, 1992, 1994 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. */
#ifndef __GNU_STABS_H
#define __GNU_STABS_H 1
#ifdef HAVE_GNU_LD
/* Alias a function:
function_alias(creat, _creat, int, (file, mode),
DEFUN(creat, (file, mode),
CONST char *file AND int mode))
Yes, this is very repetitive. Nothing you can do about it, so shut up. */
#define function_alias(name, _name, type, args, defun) \
symbol_alias (_name, name);
#define function_alias_void(name, _name, args, defun) \
symbol_alias (_name, name);
#ifdef NO_UNDERSCORES
#define __SYMBOL_PREFIX
#else
#define __SYMBOL_PREFIX "_"
#endif
/* Make references to ALIAS refer to SYMBOL. */
#define symbol_alias(symbol, alias) \
asm(".stabs \"" __SYMBOL_PREFIX #alias "\",11,0,0,0\n"\
".stabs \"" __SYMBOL_PREFIX #symbol "\",1,0,0,0")
/* Issue a warning message from the linker whenever SYMBOL is referenced. */
#define warn_references(symbol, msg) \
asm(".stabs \"" msg "\",30,0,0,0\n" \
".stabs \"" __SYMBOL_PREFIX #symbol "\",1,0,0,0")
#define stub_warning(name) \
warn_references(name, \
"warning: " #name " is not implemented and will always fail")
#define text_set_element(set, symbol) \
asm(".stabs \"" __SYMBOL_PREFIX #set "\",23,0,0," __SYMBOL_PREFIX #symbol)
#define data_set_element(set, symbol) \
asm(".stabs \"" __SYMBOL_PREFIX #set "\",25,0,0," __SYMBOL_PREFIX #symbol)
#define bss_set_element(set, symbol) \
asm(".stabs \"" __SYMBOL_PREFIX #set "\",27,0,0," __SYMBOL_PREFIX #symbol)
#else /* No GNU stabs. */
#define function_alias(name, _name, type, args, defun) \
type defun { return _name args; }
#define function_alias_void(name, _name, args, defun) \
void defun { _name args; }
#endif /* GNU stabs. */
#endif /* gnu-stabs.h */
+14 -2
View File
@@ -49,7 +49,7 @@ routines = hurdstartup hurdinit \
privports \
msgportdemux \
fopenport \
vpprintf \
vpprintf \
ports-get ports-set hurdports hurdmsg \
$(sig) $(dtable) hurdinline port-cleanup report-wait
sig = hurdsig hurdfault siginfo hurd-raise preempt-sig \
@@ -59,7 +59,7 @@ dtable = dtable port2fd new-fd alloc-fd intern-fd \
getdport openport \
fd-close fd-read fd-write hurdioctl ctty-input ctty-output
distribute = hurdstartup.h hurdfault.h hurdhost.h \
faultexc.defs intr-rpc.defs intr-rpc.h
faultexc.defs intr-rpc.defs intr-rpc.h intr-msg.h Notes
# XXX this is a temporary hack; see hurdmalloc.h
routines += hurdmalloc
@@ -68,6 +68,18 @@ distribute += hurdmalloc.h
include ../mach/Machrules
include ../Rules
# XXX sunrpc doesn't build yet for Hurd, but its headers are
# crucial nontheless. So sysdeps/mach/hurd/Makefile elides sunrpc
# from $(subdirs), and this rule arranges for the headers in question
# to get installed.
sunrpc-headers = netdb.h pmap_prot.h xdr.h types.h auth.h \
rpc_msg.h auth_unix.h
installed-sunrpc-headers = $(addprefix $(includedir)/rpc/,$(sunrpc-headers))
install-headers-nosubdir: $(installed-sunrpc-headers)
$(installed-sunrpc-headers): $(includedir)/%: $(..)sunrpc/%
$(do-install)
# intr-rpc.defs defines the INTR_INTERFACE macro to make the generated RPC
# stubs import <hurd/signal.h> and #define __mach_msg to
# _hurd_intr_rpc_mach_msg.
+2 -1
View File
@@ -31,6 +31,8 @@ struct hurd_port *_hurd_ports;
unsigned int _hurd_nports;
mode_t _hurd_umask;
sigset_t _hurdsig_traced;
char **__libc_argv;
error_t
_hurd_ports_use (int which, error_t (*operate) (mach_port_t))
@@ -165,7 +167,6 @@ _hurd_setproc (process_t procserver)
{
error_t err;
mach_port_t oldmsg;
extern char **__libc_argv;
/* Give the proc server our message port. */
if (err = __proc_setmsgport (procserver, _hurd_msgport, &oldmsg))
-25
View File
@@ -1,25 +0,0 @@
BEGIN { intr=0; wantcall=0; calls=""; }
$1 == "/*" && $2 == "INTR" && $3 == "*/" { intr=1; }
NF == 1 && $1 == "routine" { wantcall=1; next; }
intr != 0 && wantcall == 0 && NF >= 2 && $1 == "routine" \
{
if (substr($2, length($2)-2, 1) == "(")
calls = calls " " substr($2, 0, length($2)-1);
else calls = calls " " $2;
intr=0;
}
wantcall != 0 && NF >= 1 \
{
if (substr($1, length($1)-2, 1) == "(")
calls = calls " " substr($1, 0, length($1)-1);
else calls = calls " " $1;
intr=0;
}
{ wantcall=0; }
END { print varname " :=" calls; }
-45
View File
@@ -1,45 +0,0 @@
# Icky intimate knowledge of MiG output.
BEGIN \
{
nprotolines=0; proto=0;
args=""; echo=1; isintr=0;
intrcall = "__hurd_intr_rpc_" call;
print "#include <hurd/signal.h>";
}
$NF == intrcall { isintr=1; }
NF == 1 && $1 == ")" { proto=0; }
proto \
{
protolines[nprotolines++] = $0;
arg = $NF;
if (substr(arg, 1, 1) == "*")
arg = substr(arg, 2, length(arg)-1);
args = args arg;
}
NF == 1 && $1 == "(" { proto=1; }
NF == 3 && $1 == "InP->Head.msgh_request_port" \
{ portarg = substr($3, 1, length($3)-1); }
{ print $0; }
END \
{
if (isintr)
{
print "\n\n/* User-callable interrupt-handling stub. */";
print "kern_return_t __" call;
print "(";
for (i = 0; i < nprotolines; ++i)
print protolines[i];
print ")";
print "{";
print " return HURD_EINTR_RPC (" portarg ", " \
intrcall "(" args "));";
print "}";
}
print "weak_alias (__" call ", " call ")"
}
+5 -2
View File
@@ -22,7 +22,9 @@
subdir := inet
headers := netinet/ether.h netinet/in.h netinet/if_ether.h \
$(wildcard arpa/*.h protocols/*.h)
netinet/tcp.h $(wildcard arpa/*.h protocols/*.h)
distribute := netgroup.h
routines := ntohl ntohs htonl htons \
inet_lnaof inet_mkadr \
@@ -38,7 +40,8 @@ routines := ntohl ntohs htonl htons \
getrpcent_r getrpcbyname_r getrpcbynumber_r \
ether_aton ether_aton_r ether_hton ether_line \
ether_ntoa ether_ntoa_r ether_ntoh \
rcmd rexec ruserpass
rcmd rexec ruserpass \
getnetgrent_r getnetgrent
# No warnings about losing BSD code.
override +gccwarn := -w
+8 -13
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1995 Free Software Foundation, Inc.
/* 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
@@ -13,21 +13,16 @@ 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. */
not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <math.h>
#undef __isinfl
#undef isinfl
#include <netdb.h>
/* Return 0 if VALUE is finite or NaN, +1 if it
is +Infinity, -1 if it is -Infinity. */
int
__isinfl (long double value)
getnetgrent (char **hostp, char **userp, char **domainp)
{
return 0;
}
static char buffer[1024]; /* All three strings shouldn't use 1kB. */
weak_alias (__isinfl, isinfl);
return __getnetgrent_r (hostp, userp, domainp, buffer, sizeof (buffer));
}
+218
View File
@@ -0,0 +1,218 @@
/* 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. */
#include <libc-lock.h>
#include <netdb.h>
#include "netgroup.h"
#include "nsswitch.h"
/* Protect above variable against multiple uses at the same time. */
__libc_lock_define_initialized (static, lock)
/* This handle for the NSS data base is shared between all
set/get/endXXXent functions. */
static service_user *nip;
/* Remember the first service_entry, it's always the same. */
static service_user *startp;
/* The lookup function for the first entry of this service. */
extern int __nss_netgroup_lookup (service_user **nip, const char *name,
void **fctp);
/* Set up NIP to run through the services. If ALL is zero, use NIP's
current location if it's not nil. Return nonzero if there are no
services (left). */
static enum nss_status
setup (void **fctp, const char *func_name, int all)
{
int no_more;
if (startp == NULL)
{
no_more = __nss_netgroup_lookup (&nip, func_name, fctp);
startp = no_more ? (service_user *) -1 : nip;
}
else if (startp == (service_user *) -1)
/* No services at all. */
return 1;
else
{
if (all || !nip)
/* Reset to the beginning of the service list. */
nip = startp;
/* Look up the first function. */
no_more = __nss_lookup (&nip, func_name, fctp);
}
return no_more;
}
int
setnetgrent (const char *group)
{
enum nss_status (*fct) (const char *);
enum nss_status status = NSS_STATUS_UNAVAIL;
int no_more;
__libc_lock_lock (lock);
/* Cycle through all the services and run their setnetgrent functions. */
no_more = setup ((void **) &fct, "setnetgrent", 1);
while (! no_more)
{
/* Ignore status, we force check in __NSS_NEXT. */
status = (*fct) (group);
no_more = __nss_next (&nip, "setnetgrent", (void **) &fct, status, 0);
}
__libc_lock_unlock (lock);
return status == NSS_STATUS_SUCCESS;
}
void
endnetgrent (void)
{
service_user *old_nip;
enum nss_status (*fct) (void);
int no_more;
__libc_lock_lock (lock);
/* Remember which was the last used service. */
old_nip = nip;
/* Cycle through all the services and run their setnetgrent functions. */
no_more = setup ((void **) &fct, "endnetgrent", 1);
while (! no_more)
{
/* Ignore status, we force check in __NSS_NEXT. */
(void) (*fct) ();
no_more = (nip == old_nip
|| __nss_next (&nip, "endnetgrent", (void **) &fct, 0, 1));
}
__libc_lock_unlock (lock);
}
int
__getnetgrent_r (char **hostp, char **userp, char **domainp,
char *buffer, int buflen)
{
enum nss_status (*fct) (struct __netgrent *, char *, int);
struct __netgrent result;
int no_more;
/* Initialize status to return if no more functions are found. */
enum nss_status status = NSS_STATUS_NOTFOUND;
__libc_lock_lock (lock);
/* Run through available functions, starting with the same function last
run. We will repeat each function as long as it succeeds, and then go
on to the next service action. */
no_more = setup ((void **) &fct, "getnetgrent_r", 0);
while (! no_more)
{
status = (*fct) (&result, buffer, buflen);
no_more = __nss_next (&nip, "getnetgrent_r", (void **) &fct, status, 0);
}
if (status == NSS_STATUS_SUCCESS)
{
*hostp = result.host;
*userp = result.user;
*domainp = result.domain;
}
__libc_lock_unlock (lock);
return status == NSS_STATUS_SUCCESS ? 1 : 0;
}
weak_alias (__getnetgrent_r, getnetgrent_r)
/* Test whether given (host,user,domain) triple is in NETGROUP. */
int
innetgr (const char *netgroup, const char *host, const char *user,
const char *domain)
{
int (*setfct) (const char *);
void (*endfct) (void);
int (*getfct) (struct __netgrent *, char *, int);
int result = 0;
int no_more;
__libc_lock_lock (lock);
/* Walk through the services until we found an answer or we shall
not work further. We can do some optimization here. Since all
services must provide the `setnetgrent' function we can do all
the work during one walk through the service list. */
no_more = setup ((void **) &setfct, "setnetgrent", 1);
while (! no_more)
{
enum nss_status status;
/* Open netgroup. */
status = (*setfct) (netgroup);
if (status == NSS_STATUS_SUCCESS
&& __nss_lookup (&nip, "getnetgrent_r", (void **) &getfct) == 0)
{
char buffer[1024];
struct __netgrent entry;
while ((*getfct) (&entry, buffer, sizeof buffer)
== NSS_STATUS_SUCCESS)
{
if ((entry.host == NULL || host == NULL
|| strcmp (entry.host, host) == 0)
&& (entry.user == NULL || user == NULL
|| strcmp (entry.user, user) == 0)
&& (entry.domain == NULL || domain == NULL
|| strcmp (entry.domain, domain) == 0))
{
result = 1;
break;
}
}
if (result != 0)
break;
/* If we found one service which does know the given
netgroup we don't try further. */
status = NSS_STATUS_RETURN;
}
/* Free all resources of the service. */
if (__nss_lookup (&nip, "endnetgrent", (void **) &endfct) == 0)
(*endfct) ();
/* Look for the next service. */
no_more = __nss_next (&nip, "setnetgrent", (void **) &setfct, status, 0);
}
__libc_lock_unlock (lock);
return result;
}
+2 -2
View File
@@ -20,12 +20,12 @@ Boston, MA 02111-1307, USA. */
/* We need to have the error status variable of the resolver
accessible in the libc. */
int __h_errno;
int __h_errno = 0;
strong_alias (__h_errno, h_errno)
/* When threaded, h_errno may be a per-process variable. */
#ifdef __USE_REENTRANT
int
int *
weak_const_function
__h_errno_location (void)
{
+12 -14
View File
@@ -1,4 +1,5 @@
/* Copyright (C) 1992, 1995 Free Software Foundation, Inc.
/* Internal header for netgroup related functions.
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
@@ -13,20 +14,17 @@ 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. */
not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <ansidecl.h>
#include <errno.h>
#include <math.h>
#ifndef _NETGROUP_H
#define _NETGROUP_H 1
/* Return the cube root of X. */
double
DEFUN(cbrt, (x), double x)
struct __netgrent
{
errno = ENOSYS;
return 0.0;
}
const char *host;
const char *user;
const char *domain;
};
stub_warning (cbrt)
#endif /* netgroup.h */
+9 -6
View File
@@ -52,6 +52,7 @@ static char sccsid[] = "@(#)rcmd.c 8.3 (Berkeley) 3/26/94";
#include <ctype.h>
#include <string.h>
int __ivaliduser __P((FILE *, u_int32_t, const char *, const char *));
static int __icheckhost __P((u_int32_t, char *));
@@ -92,7 +93,8 @@ rcmd(ahost, rport, locuser, remuser, cmd, fd2p)
}
fcntl(s, F_SETOWN, pid);
sin.sin_family = hp->h_addrtype;
bcopy(hp->h_addr_list[0], &sin.sin_addr, hp->h_length);
bcopy(hp->h_addr_list[0], &sin.sin_addr,
MIN (sizeof (sin.sin_addr), hp->h_length));
sin.sin_port = rport;
if (connect(s, (struct sockaddr *)&sin, sizeof(sin)) >= 0)
break;
@@ -111,10 +113,11 @@ rcmd(ahost, rport, locuser, remuser, cmd, fd2p)
(void)fprintf(stderr, _("connect to address %s: "),
inet_ntoa(sin.sin_addr));
errno = oerrno;
__set_errno (oerrno);
perror(0);
hp->h_addr_list++;
bcopy(hp->h_addr_list[0], &sin.sin_addr, hp->h_length);
bcopy(hp->h_addr_list[0], &sin.sin_addr,
MIN (sizeof (sin.sin_addr), hp->h_length));
(void)fprintf(stderr, _("Trying %s...\n"),
inet_ntoa(sin.sin_addr));
continue;
@@ -146,7 +149,7 @@ rcmd(ahost, rport, locuser, remuser, cmd, fd2p)
FD_ZERO(&reads);
FD_SET(s, &reads);
FD_SET(s2, &reads);
errno = 0;
__set_errno (0);
if (select(1 + (s > s2 ? s : s2), &reads, 0, 0, 0) < 1 ||
!FD_ISSET(s2, &reads)) {
if (errno != 0)
@@ -173,7 +176,7 @@ rcmd(ahost, rport, locuser, remuser, cmd, fd2p)
from.sin_port >= IPPORT_RESERVED ||
from.sin_port < IPPORT_RESERVED / 2) {
(void)fprintf(stderr,
_("socket: protocol failure in circuit setup.\n"));
_("socket: protocol failure in circuit setup\n"));
goto bad2;
}
}
@@ -227,7 +230,7 @@ rresvport(alport)
(*alport)--;
if (*alport == IPPORT_RESERVED/2) {
(void)close(s);
errno = EAGAIN; /* close */
__set_errno (EAGAIN); /* close */
return (-1);
}
}
+2 -2
View File
@@ -91,9 +91,9 @@ retry:
(void) write(s, "", 1);
port = 0;
} else {
char num[8];
char num[32];
int s2, sin2len;
s2 = socket(AF_INET, SOCK_STREAM, 0);
if (s2 < 0) {
(void) close(s);
+8 -3
View File
@@ -87,9 +87,14 @@ ruserpass(host, aname, apass)
int t, i, c, usedefault = 0;
struct stat stb;
hdir = getenv("HOME");
if (hdir == NULL)
hdir = ".";
hdir = __secure_getenv("HOME");
if (hdir == NULL) {
/* If we can't get HOME, fail instead of trying ".",
which is no improvement. This really should call
getpwuid(getuid()). */
/*hdir = ".";*/
return -1;
}
buf = alloca (strlen (hdir) + 8);
+6 -17
View File
@@ -1,4 +1,5 @@
/* Copyright (C) 1991, 1995 Free Software Foundation, Inc.
/* interp - add information about dynamic loader to shared libray obejcts.
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
@@ -13,20 +14,8 @@ 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. */
not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <ansidecl.h>
#include <errno.h>
#include <math.h>
/* Return the sine of X. */
double
DEFUN(sin, (x), double x)
{
errno = ENOSYS;
return(0.0);
}
stub_warning (sin)
const char __invoke_dynamic_linker__[] __attribute__ ((section (".interp")))
= RUNTIME_LINKER;
+8 -5
View File
@@ -46,6 +46,9 @@ char *alloca ();
#ifndef errno
extern int errno;
#endif
#ifndef __set_errno
# define __set_errno(val) errno = (val)
#endif
#if defined STDC_HEADERS || defined _LIBC
# include <stdlib.h>
@@ -277,13 +280,13 @@ DCGETTEXT (domainname, msgid, category)
dirname = (char *) alloca (path_max + dirname_len);
ADD_BLOCK (block_list, dirname);
errno = 0;
__set_errno (0);
while ((ret = getcwd (dirname, path_max)) == NULL && errno == ERANGE)
{
path_max += PATH_INCR;
dirname = (char *) alloca (path_max + dirname_len);
ADD_BLOCK (block_list, dirname);
errno = 0;
__set_errno (0);
}
if (ret == NULL)
@@ -291,7 +294,7 @@ DCGETTEXT (domainname, msgid, category)
/* We cannot get the current working directory. Don't signal an
error but simply return the default string. */
FREE_BLOCKS (block_list);
errno = saved_errno;
__set_errno (saved_errno);
return (char *) msgid;
}
@@ -352,7 +355,7 @@ DCGETTEXT (domainname, msgid, category)
|| strcmp (single_locale, "POSIX") == 0)
{
FREE_BLOCKS (block_list);
errno = saved_errno;
__set_errno (saved_errno);
return (char *) msgid;
}
@@ -381,7 +384,7 @@ DCGETTEXT (domainname, msgid, category)
if (retval != NULL)
{
FREE_BLOCKS (block_list);
errno = saved_errno;
__set_errno (saved_errno);
return retval;
}
}
+5 -4
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1991 Free Software Foundation, Inc.
/* Copyright (C) 1991, 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
@@ -16,7 +16,6 @@ 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 <ansidecl.h>
#include <fcntl.h>
#include <sys/types.h>
@@ -24,7 +23,9 @@ Cambridge, MA 02139, USA. */
/* Create FILE with protections MODE. */
int
DEFUN(creat, (file, mode), CONST char *file AND mode_t mode)
creat (file, mode)
const char *file;
mode_t mode;
{
return __open(file, O_WRONLY|O_CREAT|O_TRUNC, mode);
return __open (file, O_WRONLY|O_CREAT|O_TRUNC, mode);
}
+10 -10
View File
@@ -100,7 +100,7 @@ fts_open(argv, options, compar)
/* Options check. */
if (options & ~FTS_OPTIONMASK) {
errno = EINVAL;
__set_errno (EINVAL);
return (NULL);
}
@@ -134,7 +134,7 @@ fts_open(argv, options, compar)
for (root = NULL, nitems = 0; *argv; ++argv, ++nitems) {
/* Don't allow zero-length paths. */
if ((len = strlen(*argv)) == 0) {
errno = ENOENT;
__set_errno (ENOENT);
goto mem3;
}
@@ -262,7 +262,7 @@ fts_close(sp)
/* Set errno and return. */
if (!ISSET(FTS_NOCHDIR) && saved_errno) {
errno = saved_errno;
__set_errno (saved_errno);
return (-1);
}
return (0);
@@ -425,7 +425,7 @@ name: t = sp->fts_path + NAPPEND(p->fts_parent);
* can distinguish between error and EOF.
*/
free(p);
errno = 0;
__set_errno (0);
return (sp->fts_cur = NULL);
}
@@ -446,7 +446,7 @@ name: t = sp->fts_path + NAPPEND(p->fts_parent);
if (FCHDIR(sp, p->fts_symfd)) {
saved_errno = errno;
(void)close(p->fts_symfd);
errno = saved_errno;
__set_errno (saved_errno);
SET(FTS_STOP);
return (NULL);
}
@@ -476,7 +476,7 @@ fts_set(sp, p, instr)
{
if (instr && instr != FTS_AGAIN && instr != FTS_FOLLOW &&
instr != FTS_NOINSTR && instr != FTS_SKIP) {
errno = EINVAL;
__set_errno (EINVAL);
return (1);
}
p->fts_instr = instr;
@@ -492,7 +492,7 @@ fts_children(sp, instr)
int fd;
if (instr && instr != FTS_NAMEONLY) {
errno = EINVAL;
__set_errno (EINVAL);
return (NULL);
}
@@ -503,7 +503,7 @@ fts_children(sp, instr)
* Errno set to 0 so user can distinguish empty directory from
* an error.
*/
errno = 0;
__set_errno (0);
/* Fatal errors stop here. */
if (ISSET(FTS_STOP))
@@ -681,7 +681,7 @@ mem1: saved_errno = errno;
free(p);
fts_lfree(head);
(void)closedir(dirp);
errno = saved_errno;
__set_errno (saved_errno);
cur->fts_info = FTS_ERR;
SET(FTS_STOP);
return (NULL);
@@ -803,7 +803,7 @@ fts_stat(sp, p, follow)
if (stat(p->fts_accpath, sbp)) {
saved_errno = errno;
if (!lstat(p->fts_accpath, sbp)) {
errno = 0;
__set_errno (0);
return (FTS_SLNONE);
}
p->fts_errno = saved_errno;
+8 -8
View File
@@ -47,7 +47,7 @@ DEFUN (ftw_dir, (dirs, level, descriptors, dir, len, func),
got = 0;
errno = 0;
__set_errno (0);
while ((entry = readdir (dirs[level])) != NULL)
{
@@ -61,7 +61,7 @@ DEFUN (ftw_dir, (dirs, level, descriptors, dir, len, func),
&& (entry->d_name[1] == '\0' ||
(entry->d_name[1] == '.' && entry->d_name[2] == '\0')))
{
errno = 0;
__set_errno (0);
continue;
}
@@ -70,9 +70,9 @@ DEFUN (ftw_dir, (dirs, level, descriptors, dir, len, func),
if (namlen + len + 1 > PATH_MAX)
{
#ifdef ENAMETOOLONG
errno = ENAMETOOLONG;
__set_errno (ENAMETOOLONG);
#else
errno = ENOMEM;
__set_errno (ENOMEM);
#endif
return -1;
}
@@ -120,7 +120,7 @@ DEFUN (ftw_dir, (dirs, level, descriptors, dir, len, func),
save = errno;
closedir (dirs[newlev]);
errno = save;
__set_errno (save);
dirs[newlev] = NULL;
}
}
@@ -139,13 +139,13 @@ DEFUN (ftw_dir, (dirs, level, descriptors, dir, len, func),
skip = got;
while (skip-- != 0)
{
errno = 0;
__set_errno (0);
if (readdir (dirs[level]) == NULL)
return errno == 0 ? 0 : -1;
}
}
errno = 0;
__set_errno (0);
}
return errno == 0 ? 0 : -1;
@@ -211,7 +211,7 @@ DEFUN(ftw, (dir, func, descriptors),
save = errno;
closedir (dirs[0]);
errno = save;
__set_errno (save);
}
}
+1 -1
View File
@@ -37,7 +37,7 @@ getwd (buf)
if (buf == NULL)
{
errno = EINVAL;
__set_errno (EINVAL);
return NULL;
}
+3 -3
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1994 Free Software Foundation, Inc.
/* 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
@@ -37,7 +37,7 @@ lockf (int fd, int cmd, off_t len)
return -1;
if (fl.l_type == F_UNLCK || fl.l_pid == getpid ())
return 0;
errno = EACCES;
__set_errno (EACCES);
return -1;
case F_ULOCK:
@@ -54,7 +54,7 @@ lockf (int fd, int cmd, off_t len)
break;
default:
errno = EINVAL;
__set_errno (EINVAL);
return -1;
}
+2 -2
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1994 Free Software Foundation, Inc.
/* 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
@@ -22,7 +22,7 @@ Cambridge, MA 02139, USA. */
#include <unistd.h>
int
main ()
main (int argc, char *argv[])
{
char file[L_tmpnam];
struct utimbuf ut;
+2
View File
@@ -48,6 +48,8 @@ Cambridge, MA 02139, USA. */
/* Enable declarations of GNU extensions, since we are compiling them. */
#define _GNU_SOURCE 1
/* And we also need the data for the reentrant functions. */
#define _REENTRANT 1
#include <config.h>
/*
+1
View File
@@ -0,0 +1 @@
GNU libio by Per Bothner
+4 -2
View File
@@ -36,11 +36,13 @@ routines := \
\
libc_fatal
all: # Make this the default target; it will be defined in Rules.
include ../Makeconfig
ifneq (,$(filter %REENTRANT, $(defines)))
routines += clearerr_u feof_u ferror_u fputc_u getc_u getchar_u \
iofflush_u putc_u putchar_u ioflockfile
iofflush_u putc_u putchar_u
CPPFLAGS += -D_IO_MTSAFE_IO
endif
@@ -48,6 +50,6 @@ endif
aux := \
cleanup fileops genops stdfiles stdio strops
distribute := iolibio.h libioP.h strfile.h
distribute := iolibio.h libioP.h strfile.h Banner
include ../Rules
+1 -3
View File
@@ -20,11 +20,9 @@ Boston, MA 02111-1307, USA. */
#include "stdio.h"
void
__clearerr_unlocked (fp)
clearerr_unlocked (fp)
FILE *fp;
{
CHECK_FILE (fp, /*nothing*/);
_IO_clearerr (fp);
}
weak_alias (__clearerr_unlocked, clearerr_unlocked)
+1 -1
View File
@@ -31,7 +31,7 @@ fgetc (fp)
{
int result;
CHECK_FILE (fp, EOF);
__libc_cleanup_region_start (_IO_funlockfile, fp);
__libc_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp);
_IO_flockfile (fp);
result = _IO_getc_unlocked (fp);
__libc_cleanup_region_end (1);
+1 -1
View File
@@ -165,7 +165,7 @@ DEFUN(_IO_file_fopen, (fp, filename, mode),
read_write = _IO_NO_READS|_IO_IS_APPENDING;
break;
default:
errno = EINVAL;
__set_errno (EINVAL);
return NULL;
}
if (mode[0] == '+' || (mode[0] == 'b' && mode[1] == '+')) {
+1 -1
View File
@@ -32,7 +32,7 @@ fputc (c, fp)
{
int result;
CHECK_FILE (fp, EOF);
__libc_cleanup_region_start (&_IO_funlockfile, fp);
__libc_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp);
_IO_flockfile (fp);
result = _IO_putc_unlocked (c, fp);
__libc_cleanup_region_end (1);
+1 -3
View File
@@ -28,12 +28,10 @@ the executable file might be covered by the GNU General Public License. */
#undef fputc_unlocked
int
__fputc_unlocked (c, fp)
fputc_unlocked (c, fp)
int c;
_IO_FILE *fp;
{
CHECK_FILE (fp, EOF);
return _IO_putc_unlocked (c, fp);
}
weak_alias (__fputc_unlocked, fputc_unlocked)
+1 -1
View File
@@ -35,7 +35,7 @@ freopen (filename, mode, fp)
CHECK_FILE (fp, NULL);
if (!(fp->_flags & _IO_IS_FILEBUF))
return NULL;
__libc_cleanup_region_start (&_IO_funlockfile, fp);
__libc_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp);
_IO_flockfile (fp);
result = _IO_freopen (filename, mode, fp);
__libc_cleanup_region_end (1);
+1 -1
View File
@@ -33,7 +33,7 @@ fseek (fp, offset, whence)
{
int result;
CHECK_FILE (fp, -1);
__libc_cleanup_region_start (&_IO_funlockfile, fp);
__libc_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp);
_IO_flockfile (fp);
result = _IO_fseek (fp, offset, whence);
__libc_cleanup_region_end (1);
+4 -4
View File
@@ -329,7 +329,7 @@ DEFUN(_IO_default_xsputn, (f, data, n),
_IO_ssize_t count = f->_IO_write_end - f->_IO_write_ptr; /* Space available. */
if (count > 0)
{
if (count > more)
if ((_IO_size_t) count > more)
count = more;
if (count > 20)
{
@@ -374,7 +374,7 @@ DEFUN(_IO_default_xsgetn, (fp, data, n),
_IO_ssize_t count = fp->_IO_read_end - fp->_IO_read_ptr; /* Data available. */
if (count > 0)
{
if (count > more)
if ((_IO_size_t) count > more)
count = more;
if (count > 20)
{
@@ -466,7 +466,7 @@ DEFUN(_IO_init, (fp, flags),
fp->_markers = NULL;
fp->_cur_column = 0;
#ifdef _IO_MTSAFE_IO
__libc_lock_init (fp->_lock);
__libc_lock_init (*fp->_lock);
#endif
}
@@ -501,7 +501,7 @@ DEFUN(_IO_default_finish, (fp),
}
#ifdef _IO_MTSAFE_IO
__libc_lock_fini (fp->_lock);
__libc_lock_fini (*fp->_lock);
#endif
_IO_un_link(fp);
+1 -1
View File
@@ -33,7 +33,7 @@ getc (fp)
{
int result;
CHECK_FILE (fp, EOF);
__libc_cleanup_region_start (&_IO_funlockfile, fp);
__libc_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp);
_IO_flockfile (fp);
result = _IO_getc_unlocked (fp);
__libc_cleanup_region_end (1);
+1 -3
View File
@@ -28,11 +28,9 @@ the executable file might be covered by the GNU General Public License. */
#undef getc_unlocked
int
__getc_unlocked (fp)
getc_unlocked (fp)
FILE *fp;
{
CHECK_FILE (fp, EOF);
return _IO_getc_unlocked (fp);
}
weak_alias (__getc_unlocked, getc_unlocked)
+2 -1
View File
@@ -31,7 +31,8 @@ int
getchar ()
{
int result;
__libc_cleanup_region_start (&_IO_funlockfile, stdin);
__libc_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
stdin);
_IO_flockfile (stdin);
result = _IO_getc_unlocked (stdin);
__libc_cleanup_region_end (1);
+1 -3
View File
@@ -28,9 +28,7 @@ the executable file might be covered by the GNU General Public License. */
#undef getchar_unlocked
int
__getchar_unlocked ()
getchar_unlocked ()
{
return _IO_getc_unlocked (stdin);
}
weak_alias (__getchar_unlocked, getchar_unlocked)
+2 -2
View File
@@ -35,19 +35,19 @@ _IO_fclose (fp)
CHECK_FILE(fp, EOF);
__libc_cleanup_region_start (&_IO_funlockfile, fp);
__libc_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp);
_IO_flockfile (fp);
if (fp->_IO_file_flags & _IO_IS_FILEBUF)
status = _IO_file_close_it (fp);
else
status = fp->_flags & _IO_ERR_SEEN ? -1 : 0;
_IO_FINISH (fp);
__libc_cleanup_region_end (1);
if (fp != _IO_stdin && fp != _IO_stdout && fp != _IO_stderr)
{
fp->_IO_file_flags = 0;
free(fp);
}
__libc_cleanup_region_end (1);
return status;
}
+5 -3
View File
@@ -42,7 +42,9 @@ _IO_fdopen (fd, mode)
struct locked_FILE
{
struct _IO_FILE_plus fp;
#ifdef _IO_MTSAFE_IO
_IO_lock_t lock;
#endif
} *new_f;
int fd_flags;
@@ -59,9 +61,7 @@ _IO_fdopen (fd, mode)
read_write = _IO_NO_READS|_IO_IS_APPENDING;
break;
default:
#ifdef EINVAL
errno = EINVAL;
#endif
MAYBE_SET_EINVAL;
return NULL;
}
if (mode[0] == '+' || (mode[0] == 'b' && mode[1] == '+'))
@@ -104,7 +104,9 @@ _IO_fdopen (fd, mode)
new_f = (struct locked_FILE *) malloc (sizeof (struct locked_FILE));
if (new_f == NULL)
return NULL;
#ifdef _IO_MTSAFE_IO
new_f->fp.file._lock = &new_f->lock;
#endif
_IO_init (&new_f->fp.file, 0);
_IO_JUMPS (&new_f->fp.file) = &_IO_file_jumps;
_IO_file_init (&new_f->fp.file);
+3 -1
View File
@@ -23,6 +23,7 @@ This exception does not however invalidate any other reasons why
the executable file might be covered by the GNU General Public License. */
#include "libioP.h"
#include <stdio.h>
int
_IO_fflush (fp)
@@ -34,7 +35,8 @@ _IO_fflush (fp)
{
int result;
CHECK_FILE (fp, EOF);
__libc_cleanup_region_start (&_IO_funlockfile, fp);
__libc_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
fp);
_IO_flockfile (fp);
result = _IO_SYNC (fp) ? EOF : 0;
__libc_cleanup_region_end (1);
+2 -4
View File
@@ -23,9 +23,10 @@ This exception does not however invalidate any other reasons why
the executable file might be covered by the GNU General Public License. */
#include "libioP.h"
#include <stdio.h>
int
_IO_fflush_unlocked (fp)
fflush_unlocked (fp)
register _IO_FILE *fp;
{
if (fp == NULL)
@@ -36,6 +37,3 @@ _IO_fflush_unlocked (fp)
return _IO_SYNC (fp) ? EOF : 0;
}
}
weak_alias (_IO_fflush_unlocked, fflush_unlocked)
+2 -2
View File
@@ -33,7 +33,7 @@ _IO_fgetpos (fp, posp)
{
_IO_fpos_t pos;
CHECK_FILE (fp, EOF);
__libc_cleanup_region_start (&_IO_funlockfile, fp);
__libc_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp);
_IO_flockfile (fp);
pos = _IO_seekoff (fp, 0, _IO_seek_cur, 0);
__libc_cleanup_region_end (1);
@@ -41,7 +41,7 @@ _IO_fgetpos (fp, posp)
{
#ifdef EIO
if (errno == 0)
errno = EIO;
__set_errno (EIO);
#endif
return EOF;
}
+4 -3
View File
@@ -1,5 +1,5 @@
/*
Copyright (C) 1993, 1995 Free Software Foundation
Copyright (C) 1993, 1995, 1996 Free Software Foundation, Inc.
This file is part of the GNU IO Library. This library is free
software; you can redistribute it and/or modify it under the
@@ -23,6 +23,7 @@ This exception does not however invalidate any other reasons why
the executable file might be covered by the GNU General Public License. */
#include "libioP.h"
#include <stdio.h>
char*
_IO_fgets (buf, n, fp)
@@ -35,8 +36,8 @@ _IO_fgets (buf, n, fp)
CHECK_FILE (fp, NULL);
if (n <= 0)
return NULL;
__libc_cleanup_region_start (&_IO_funlockfile, fp);
_IO_flockfile (fp);
__libc_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp);
__flockfile (fp);
count = _IO_getline (fp, buf, n - 1, '\n', 1);
if (count == 0 || (fp->_IO_file_flags & _IO_ERR_SEEN))
result = NULL;
+4
View File
@@ -35,12 +35,16 @@ _IO_fopen (filename, mode)
struct locked_FILE
{
struct _IO_FILE_plus fp;
#ifdef _IO_MTSAFE_IO
_IO_lock_t lock;
#endif
} *new_f = (struct locked_FILE *) malloc (sizeof (struct locked_FILE));
if (new_f == NULL)
return NULL;
#ifdef _IO_MTSAFE_IO
new_f->fp.file._lock = &new_f->lock;
#endif
_IO_init (&new_f->fp.file, 0);
_IO_JUMPS (&new_f->fp.file) = &_IO_file_jumps;
_IO_file_init (&new_f->fp.file);
+4
View File
@@ -131,7 +131,9 @@ fopencookie (cookie, mode, io_functions)
struct locked_FILE
{
struct _IO_cookie_file cfile;
#ifdef _IO_MTSAFE_IO
_IO_lock_t lock;
#endif
} *new_f;
switch (*mode++)
@@ -154,7 +156,9 @@ fopencookie (cookie, mode, io_functions)
new_f = (struct locked_FILE *) malloc (sizeof (struct locked_FILE));
if (new_f == NULL)
return NULL;
#ifdef _IO_MTSAFE_IO
new_f->cfile.file._lock = &new_f->lock;
#endif
_IO_init (&new_f->cfile.file, 0);
_IO_JUMPS (&new_f->cfile.file) = &_IO_cookie_jumps;
+1 -1
View File
@@ -33,7 +33,7 @@ _IO_fputs (str, fp)
_IO_size_t len = strlen (str);
int result;
CHECK_FILE (fp, EOF);
__libc_cleanup_region_start (&_IO_funlockfile, fp);
__libc_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp);
_IO_flockfile (fp);
if (_IO_sputn (fp, str, len) != len)
result = EOF;
+1 -1
View File
@@ -36,7 +36,7 @@ _IO_fread (buf, size, count, fp)
CHECK_FILE (fp, 0);
if (bytes_requested == 0)
return 0;
__libc_cleanup_region_start (&_IO_funlockfile, fp);
__libc_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp);
_IO_flockfile (fp);
bytes_read = _IO_sgetn (fp, (char *) buf, bytes_requested);
__libc_cleanup_region_end (1);
+2 -2
View File
@@ -32,14 +32,14 @@ _IO_fsetpos (fp, posp)
{
int result;
CHECK_FILE (fp, EOF);
__libc_cleanup_region_start (&_IO_funlockfile, fp);
__libc_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp);
_IO_flockfile (fp);
if (_IO_seekpos (fp, *posp, _IOS_INPUT|_IOS_OUTPUT) == _IO_pos_BAD)
{
/*ANSI explicily requires setting errno to a positive value on failure.*/
#ifdef EIO
if (errno == 0)
errno = EIO;
__set_errno (EIO);
#endif
result = EOF;
}
+2 -2
View File
@@ -32,7 +32,7 @@ _IO_ftell (fp)
{
_IO_pos_t pos;
CHECK_FILE (fp, -1L);
__libc_cleanup_region_start (&_IO_funlockfile, fp);
__libc_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp);
_IO_flockfile (fp);
pos = _IO_seekoff (fp, 0, _IO_seek_cur, 0);
__libc_cleanup_region_end (1);
@@ -40,7 +40,7 @@ _IO_ftell (fp)
{
#ifdef EIO
if (errno == 0)
errno = EIO;
__set_errno (EIO);
#endif
return -1L;
}
+1 -1
View File
@@ -36,7 +36,7 @@ _IO_fwrite (buf, size, count, fp)
CHECK_FILE (fp, 0);
if (request == 0)
return 0;
__libc_cleanup_region_start (&_IO_funlockfile, fp);
__libc_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp);
_IO_flockfile (fp);
written = _IO_sputn (fp, (const char *) buf, request);
__libc_cleanup_region_end (1);
+2 -4
View File
@@ -48,13 +48,11 @@ _IO_getdelim (lineptr, n, delimiter, fp)
if (lineptr == NULL || n == NULL)
{
#ifdef EINVAL
errno = EINVAL;
#endif
MAYBE_SET_EINVAL;
return -1;
}
CHECK_FILE (fp, -1);
__libc_cleanup_region_start (&_IO_funlockfile, fp);
__libc_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp);
_IO_flockfile (fp);
if (_IO_ferror_unlocked (fp))
{
+2 -2
View File
@@ -1,4 +1,4 @@
/*
/*
Copyright (C) 1993 Free Software Foundation
This file is part of the GNU IO Library. This library is free
@@ -48,7 +48,7 @@ DEFUN(_IO_getline, (fp, buf, n, delim, extract_delim),
break;
else
len = fp->_IO_read_end - fp->_IO_read_ptr;
if (len >= n)
if ((_IO_size_t) len >= n)
len = n;
t = (char*)memchr((void*)fp->_IO_read_ptr, delim, len);
if (t != NULL)
+2 -1
View File
@@ -32,7 +32,8 @@ _IO_gets (buf)
_IO_size_t count;
int ch;
__libc_cleanup_region_start (&_IO_funlockfile, _IO_stdin);
__libc_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
_IO_stdin);
_IO_flockfile (_IO_stdin);
ch = _IO_getc_unlocked (_IO_stdin);
if (ch == EOF)
+4
View File
@@ -152,14 +152,18 @@ DEFUN(_IO_popen, (command, mode),
struct locked_FILE
{
struct _IO_proc_file fpx;
#ifdef _IO_MTSAFE_IO
_IO_lock_t lock;
#endif
} *new_f;
_IO_FILE *fp;
new_f = (struct locked_FILE *) malloc (sizeof (struct locked_FILE));
if (new_f == NULL)
return NULL;
#ifdef _IO_MTSAFE_IO
new_f->fpx.file.file._lock = &new_f->lock;
#endif
fp = (_IO_FILE*)&new_f->fpx;
_IO_init(fp, 0);
_IO_JUMPS(fp) = &_IO_proc_jumps;
+2 -1
View File
@@ -30,7 +30,8 @@ _IO_puts (str)
{
int result;
_IO_size_t len = strlen (str);
__libc_cleanup_region_start (&_IO_funlockfile, _IO_stdout);
__libc_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
_IO_stdout);
_IO_flockfile (_IO_stdout);
if (_IO_sputn (_IO_stdout, str, len) == len
&& _IO_putc_unlocked ('\n', _IO_stdout) != EOF)
+1 -1
View File
@@ -31,7 +31,7 @@ _IO_setbuffer (fp, buf, size)
_IO_size_t size;
{
CHECK_FILE (fp, );
__libc_cleanup_region_start (&_IO_funlockfile, fp);
__libc_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp);
_IO_flockfile (fp);
fp->_flags &= ~_IO_LINE_BUF;
if (!buf)
+1 -1
View File
@@ -37,7 +37,7 @@ _IO_setvbuf (fp, buf, mode, size)
{
int result;
CHECK_FILE (fp, EOF);
__libc_cleanup_region_start (&_IO_funlockfile, fp);
__libc_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp);
_IO_flockfile (fp);
switch (mode)
{
+1 -1
View File
@@ -33,7 +33,7 @@ _IO_ungetc (c, fp)
CHECK_FILE (fp, EOF);
if (c == EOF)
return EOF;
__libc_cleanup_region_start (&_IO_funlockfile, fp);
__libc_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp);
_IO_flockfile (fp);
result = _IO_sputbackc (fp, (unsigned char) c);
__libc_cleanup_region_end (1);
+4
View File
@@ -32,10 +32,14 @@ _IO_vsprintf (string, format, args)
_IO_va_list args;
{
_IO_strfile sf;
#ifdef _IO_MTSAFE_IO
_IO_lock_t lock;
#endif
int ret;
#ifdef _IO_MTSAFE_IO
sf._f._lock = &lock;
#endif
_IO_init ((_IO_FILE *) &sf, 0);
_IO_JUMPS ((_IO_FILE *) &sf) = &_IO_str_jumps;
_IO_str_init_static ((_IO_FILE *) &sf, string, -1, string);
+2
View File
@@ -30,8 +30,10 @@ DEFUN(_IO_vsscanf, (string, format, args),
const char *string AND const char *format AND _IO_va_list args)
{
_IO_strfile sf;
#ifdef _IO_MTSAFE_IO
_IO_lock_t lock;
sf._f._lock = &lock;
#endif
_IO_init((_IO_FILE*)&sf, 0);
_IO_JUMPS((_IO_FILE*)&sf) = &_IO_str_jumps;
_IO_str_init_static ((_IO_FILE*)&sf, (char*)string, 0, NULL);
+1 -2
View File
@@ -150,8 +150,7 @@ typedef struct
/* Handle lock. */
#ifdef _IO_MTSAFE_IO
#include <pthread.h>
typedef pthread_mutex_t _IO_lock_t;
#include <stdio-lock.h>
#else
typedef void _IO_lock_t;
#endif
+10 -2
View File
@@ -342,10 +342,18 @@ extern int _IO_vscanf __P((const char *, _IO_va_list));
#else
#define _IO_FJUMP &_IO_file_jumps,
#endif
#ifdef _IO_MTSAFE_IO
/* check following! */
#define FILEBUF_LITERAL(CHAIN, FLAGS, FD) \
{ _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CHAIN, _IO_FJUMP FD}
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CHAIN, _IO_FJUMP FD, \
0, 0, 0, 0, { 0 }, &_IO_stdfile_##FD##_lock }
#else
/* check following! */
#define FILEBUF_LITERAL(CHAIN, FLAGS, FD) \
{ _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CHAIN, _IO_FJUMP FD }
#endif
/* VTABLE_LABEL defines NAME as of the CLASS class.
CNLENGTH is strlen(#CLASS). */
@@ -389,7 +397,7 @@ extern struct _IO_fake_stdiobuf _IO_stdin_buf, _IO_stdout_buf, _IO_stderr_buf;
#endif
#ifdef EINVAL
#define MAYBE_SET_EINVAL errno = EINVAL
#define MAYBE_SET_EINVAL __set_errno (EINVAL)
#else
#define MAYBE_SET_EINVAL /* nothing */
#endif
+4
View File
@@ -67,14 +67,18 @@ open_memstream (bufloc, sizeloc)
struct locked_FILE
{
struct _IO_FILE_memstream fp;
#ifdef _IO_MTSAFE_IO
_IO_lock_t lock;
#endif
} *new_f;
char *buf;
new_f = (struct locked_FILE *) malloc (sizeof (struct locked_FILE));
if (new_f == NULL)
return NULL;
#ifdef _IO_MTSAFE_IO
new_f->fp._sf._f._lock = &new_f->lock;
#endif
buf = ALLOC_BUF (_IO_BUFSIZ);
_IO_init (&new_f->fp._sf._f, 0);
+1 -1
View File
@@ -28,7 +28,7 @@ putc (c, fp)
{
int result;
CHECK_FILE (fp, EOF);
__libc_cleanup_region_start (&_IO_funlockfile, fp);
__libc_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, fp);
_IO_flockfile (fp);
result = _IO_putc_unlocked (c, fp);
__libc_cleanup_region_end (1);
+4
View File
@@ -29,3 +29,7 @@ putc_unlocked (c, fp)
CHECK_FILE (fp, EOF);
return _IO_putc_unlocked (c, fp);
}
#ifdef _LIBC_REENTRANT
weak_alias (putc_unlocked, _IO_putc_unlocked)
#endif

Some files were not shown because too many files have changed in this diff Show More