Commit Graph

12 Commits

Author SHA1 Message Date
Joseph Myers
bfff8b1bec Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Adhemerval Zanella
78880cc185 Revert {send,sendm,recv,recvm}msg conformance changes
After some discussion in libc-alpha about this POSIX compliance fix, I see
that GLIBC should indeed revert back to previous definition of msghdr and
cmsghdr and implementation of sendmsg, recvmsg, sendmmsg, recvmmsg due some
reasons:

 * The possible issue where the syscalls wrapper add the compatibility
   layer is quite limited in scope and range.  And kernel current
   also add some limits to the values on the internal msghdr and
   cmsghdr fields:

     - msghdr::msg_iovlen larger than UIO_MAXIOV (1024) returns
       EMSGSIZE.
     - msghdr::msg_controllen larger than INT_MAX returns ENOBUFS.

 * There is a small performance hit for recvmsg/sendmsg/recmmsg which
   is neglectable, but it is a big hit for sendmmsg since now instead
   of calling the syscall for the packed structure, GLIBC is calling
   multiple sendmsg.  This defeat the very existence of the syscall.

 * It currently breaks libsanitizer build on GCC [1] (I fixed on compiler-rt).
   However the fix is incomplete because it does add any runtime check
   since libsanitizer currently does not have any facility to intercept
   symbols with multiple version [2].

   This, along with incorret dlsym/dlvsym return for versioned symbol due
   another bug [3], makes hard to interpose versioned symbols.

   Also, current approach of fixing GCC PR#71445 leads to half-baked
   solutions without versioned symbol interposing.

This patch basically reverts commits 2f0dc39029, 222c2d7f43,
af7f7c7ec8.  I decided to not revert abf29edd4a (Adjust
kernel-features.h defaults for recvmsg and sendmsg) mainly because it
does not really address the POSIX compliance original issue and also
adds some cleanups.

Tested on x86, i386, s390, s390x, aarch64, and powerpc64le.

[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71445
[2] https://github.com/google/sanitizers/issues/628
[3] https://sourceware.org/bugzilla/show_bug.cgi?id=14932

	* conform/data/sys/socket.h-data (msghdr.msg_iovlen): Add xfail-.
	(msghdr.msg_controllen): Likewise.
	(cmsghdr.cmsg_len): Likewise.
	* nptl/Makefile (libpthread-routines): Remove ptw-oldrecvmsg and
	ptw-oldsendmsg.
	(CFLAGS-oldrecvmsg.c): Remove rule.
	(CFLAGS-oldsendmsg.c): Likewise.
	(CFLAGS-recvmsg.c): Add rule.
	(CFLAGS-sendmsg.c): Likewise.
	* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
	oldrecvmsg, oldsendmsg, oldrecvmmsg, oldsendmmsg.
	(CFLAGS-recvmsg.c): Remove rule.
	(CFLAGS-sendmsg.c): Likewise.
	(CFLAGS-oldrecvmsg.c): Likewise.
	(CFLAGS-oldsendmsg.c): Likewise.
	(CFLAGS-recvmmsg.c): Likewise.
	* sysdeps/unix/sysv/linux/bits/socket.h (msghdr.msg_iovlen): Revert
	to kernel defined interfaces.
	(msghdr.msg_controllen): Likewise.
	(cmsghdr.cmsg_len): Likewise.
	(msghdr.__glibc_reserved1): Remove member.
	(msghdr.__glibc_reserved2): Likewise.
	(cmsghdr.__glibc_reserved1): Likewise.
	* sysdeps/unix/sysv/linux/oldrecvmmsg.c: Remove file.
	* sysdeps/unix/sysv/linux/oldrecvmsg.c: Likewise.
	* sysdeps/unix/sysv/linux/oldsendmmsg.c: Likewise.
	* sysdeps/unix/sysv/linux/oldsendmsg.c: Likewise.
	* sysdeps/unix/sysv/linux/recvmmsg.c: Revert back to previous
	version.
	* sysdeps/unix/sysv/linux/recvmsg.c: Likewise.
	* sysdeps/unix/sysv/linux/sendmmsg.c: Likewise.
	* sysdeps/unix/sysv/linux/sendmsg.c: Likewise.
	* sysdeps/unix/sysv/linux/aarch64/Versions [libc] (GLIBC_2.24):
	Remove recvmsg and sendmsg.
	* sysdeps/unix/sysv/linux/alpha/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/hppa/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/i386/Versions [libc] (GLIBC_2.24): Likewise.
	* sysdeps/unix/sysv/linux/m68k/Versions [libc] (GLIBC_2.24): Likewise.
	* sysdeps/unix/sysv/linux/microblaze/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n32/Versions
	[libc] (GLIBC_2.24): Likewise.
	* sysdeps/unix/sysv/linux/nios2/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
	[libc] (GLIBC_2.24): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/sh/Versions [libc] (GLIBC_2.24): Likewise.
	* sysdeps/unix/sysv/linux/sparc/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/tile/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/x86_64/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Versions: Remove file
	* sysdeps/unix/sysv/linux/x86_64/64/Versions: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n64/Versions: Likewise.
	* sysdeps/unix/sysv/linux/aarch64/libc.abilist: Remove new 2.24
	version for {recv,send,recm,sendm}msg.
	* sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise.
2016-06-10 11:58:16 -03:00
Adhemerval Zanella
af7f7c7ec8 network: recvmsg and sendmsg standard compliance (BZ#16919)
POSIX specifies that both msghdr::msg_iovlen and msghdr::msg_controllen
to be of size int and socklen_t respectively.  However Linux defines it as
both size_t and for 64-bit it requires some adjustments to make the
functions standard compliance.

This patch fixes it by creating a temporary header and zeroing the pad
fields for 64-bits architecture where size of size_t exceeds the size of
the int.

Also the new recvmsg and sendmsg implementation is only added on libc,
with libpthread only containing a compat symbol.

Tested on x86_64, i686, aarch64, armhf, and powerpc64le.

	* conform/data/sys/socket.h-data (msghdr.msg_iovlen): Remove xfail-
	and change to correct expected type.
	(msghdr.msg_controllen): Likewise.
	(cmsghdr.cmsg_len): Likewise.
	* sysdeps/unix/sysv/linux/bits/socket.h (msghdr.msg_iovlen): Fix
	expected POSIX assumption about the size.
	(msghdr.msg_controllen): Likewise.
	(msghdr.__glibc_reserved1): Likewise.
	(msghdr.__glibc_reserved2): Likewise.
	(cmsghdr.cmsg_len): Likewise.
	(cmsghdr.__glibc_reserved1): Likewise.
	* nptl/Makefile (libpthread-routines): Remove ptw-recvmsg and ptw-sendmsg.
	Add ptw-oldrecvmsg and ptw-oldsendmsg.
	(CFLAGS-sendmsg.c): Remove rule.
	(CFLAGS-recvmsg.c): Likewise.
	(CFLAGS-oldsendmsg.c): Add rule.
	(CFLAGS-oldrecvmsg.c): Likewise.
	* sysdeps/unix/sysv/linux/alpha/Versions [libc] (GLIBC_2.24): Add
	recvmsg and sendmsg.
	* sysdeps/unix/sysv/linux/aarch64/Version [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/arm/Versions [libc] (GLIBC_2.24): Likewise.
	* sysdeps/unix/sysv/linux/hppa/Versions [libc] (GLIBC_2.24): Likewise.
	* sysdeps/unix/sysv/linux/i386/Versions [libc] (GLIBC_2.24): Likewise.
	* sysdeps/unix/sysv/linux/ia64/Versions [libc] (GLIBC_2.24): Likewise.
	* sysdeps/unix/sysv/linux/m68k/Versions [libc] (GLIBC_2.24): Likewise.
	* sysdeps/unix/sysv/linux/microblaze/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n32/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/nios2/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions [libc]
	(GLIBC_2.24): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/sh/Versions [libc] (GLIBC_2.24): Likewise.
	* sysdeps/unix/sysv/linux/sparc/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/Versions [libc] (GLIBC_2.24):
	Likewise.
	( sysdeps/unix/sysv/linux/tile/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Versions [libc]
	(GLIBC_2.24): Likewise.
	( sysdeps/unix/sysv/linux/x86_64/64/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/x84_64/Versions [libc] (GLIBC_2.24):
	Likewise.
	* sysdeps/unix/sysv/linux/Makefile
	[$(subdir) = socket)] (sysdep_headers): Add oldrecvmsg and oldsendmsg.
	(CFLAGS-sendmsg.c): Add rule.
	(CFLAGS-recvmsg.c): Likewise.
	(CFLAGS-oldsendmsg.c): Likewise.
	(CFLAGS-oldrecvmsg.c): Likewise.
	* sysdeps/unix/sysv/linux/check_native.c (__check_native): Fix msghdr
	initialization.
	* sysdeps/unix/sysv/linux/check_pf.c (make_request): Likewise.
	* sysdeps/unix/sysv/linux/ifaddrs.c (__netlink_request): Likewise.
	* sysdeps/unix/sysv/linux/oldrecvmsg.c: New file.
	* sysdeps/unix/sysv/linux/oldsendmsg.c: Likewise.
	* sysdeps/unix/sysv/linux/recvmsg.c (__libc_recvmsg): Adjust msghdr
	iovlen and controllen fields to adjust to POSIX specification.
	* sysdeps/unix/sysv/linux/sendmsg.c (__libc_sendmsg): Likewise.
	* sysdeps/unix/sysv/linux/aarch64/libc.abilist: New version and
	added recvmsg and sendmsg.
	* sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist:
	Likewise.
	* sysdeps/unix/linux/powerpc/powerpc32/nofpu/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist: Likewise.
	* sysdepe/unix/sysv/linux/powerpc/powerpc64/libc.abilist: Likewise.
	Likewise.
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist: Likewise.
	Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise.
2016-05-25 17:39:01 -03:00
Joseph Myers
f7a9f785e5 Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
Rajalakshmi Srinivasaraghavan
f4491417cc Call direct system calls for socket operations
Explicit system calls for the socket operations were added in Linux kernel
in commit 86250b9d12ca for powerpc. This patch make use of those instead of
calling socketcall to save number of cycles on networking syscalls.

2015-08-25  Rajalakshmi Srinivasaraghavan  <raji@linux.vnet.ibm.com>

	* sysdeps/unix/sysv/linux/powerpc/kernel-features.h: Define new macros.
	* sysdeps/unix/sysv/linux/accept.c: Call direct system call.
	* sysdeps/unix/sysv/linux/bind.c: Call direct system call.
	* sysdeps/unix/sysv/linux/connect.c: Call direct system call.
	* sysdeps/unix/sysv/linux/getpeername.c: Call direct system call.
	* sysdeps/unix/sysv/linux/getsockname.c: Call direct system call.
	* sysdeps/unix/sysv/linux/getsockopt.c: Call direct system call.
	* sysdeps/unix/sysv/linux/listen.c: Call direct system call.
	* sysdeps/unix/sysv/linux/recv.c: Call direct system call.
	* sysdeps/unix/sysv/linux/recvfrom.c: Call direct system call.
	* sysdeps/unix/sysv/linux/recvmsg.c: Call direct system call.
	* sysdeps/unix/sysv/linux/send.c: Call direct system call.
	* sysdeps/unix/sysv/linux/sendmsg.c: Call direct system call.
	* sysdeps/unix/sysv/linux/sendto.c: Call direct system call.
	* sysdeps/unix/sysv/linux/setsockopt.c: Call direct system call.
	* sysdeps/unix/sysv/linux/shutdown.c: Call direct system call.
	* sysdeps/unix/sysv/linux/socket.c: Call direct system call.
	* sysdeps/unix/sysv/linux/socketpair.c: Call direct system call.
2015-08-25 13:45:56 -03:00
Adhemerval Zanella
60dce8b904 Remove socket.S implementation
This patch removes the socket.S implementation for all ports and replace
it by a C implementation using socketcall.  For ports that implement
the syscall directly, there is no change.

The patch idea is to simplify the socket function implementation that
uses the socketcall to be based on C implemetation instead of a pseudo
assembly implementation with arch specific parts.  The patch then remove
the assembly implementatation for the ports which uses socketcall
(i386, microblaze, mips, powerpc, sparc, m68k, s390 and sh).

I have cross-build GLIBC for afore-mentioned ports and tested on both
i386 and ppc32 without regressions.
2015-05-22 17:38:06 -03:00
Ulrich Drepper
7ce241a03e Update.
1998-07-31 17:59  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/generic/bits/byteswap.h: Fix problems with side effects.

	* manual/filesys.texi: Document truncate and ftruncate.
	Patch by Michael Deutschmann <michael@talamasca.wkpowerlink.com>.

	* shadow/putspent.c: Lock stream while generating the output.

	* sunrpc/clnt_unix.c: Use ucred instead of cmsgcred again.
	(__msgwrite): Rewrite accordingly.
	* sunrpc/svc_unix.c: Likewise.
	* sysdeps/unix/sysv/linux/Dist: Remove __recvmsg.S and __sendmsg.S.
	* sysdeps/unix/sysv/linux/Makefile [$(subdir)==socket]
	(sysdep_routines): Remove __sendmsg and __recvmsg.
	* sysdeps/unix/sysv/linux/__recvmsg.S: Removed.
	* sysdeps/unix/sysv/linux/__sendmsg.S: Removed.
	* sysdeps/unix/sysv/linux/recvmsg.c: Removed.
	* sysdeps/unix/sysv/linux/sendmsg.c: Removed.
	* sysdeps/unix/sysv/linux/recvmsg.S: New file.
	* sysdeps/unix/sysv/linux/sendmsg.S: New file.
	* sysdeps/unix/sysv/linux/bits/socket.h: Define SCM_CREDENTIALS and
	struct ucred.  Remove struct cmsgcred.
	Patches by Thorsten Kukuk.

1998-08-03  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* inet/rcmd.c (__ivaliduser): Allow '#' as comment character.

1998-08-08 14:42  Ulrich Drepper  <drepper@cygnus.com>

	* argp/argp-help.c: Prepare to be used outside glibc without gcc by
	adding usual alloca cruft.
	Reported by Eleftherios Gkioulekas <lf@amath.washington.edu>.

1998-04-05  Jim Meyering  <meyering@ascend.com>

	* lib/regex.c (WIDE_CHAR_SUPPORT): Define.
	This now depends on HAVE_BTOWC so systems that lack btowc (like
	solaris-2.5.1) don't lose.

1998-08-07  Mark Kettenis  <kettenis@phys.uva.nl>

	* sysdeps/generic/bits/sigaction.h: Remove definition of SA_DISABLE.
	* sysdeps/generic/bits/sigstack.h: Define SS_DISABLE, SS_ONSTACK,
	MINSIGSTKZ and SIGSTKSZ.  Definitions match BSD.
	* hurd/sigunwind.c (_hurdsig_longjmp_from_handler): Use SS_ONSTACK
	instead of SA_ONSTACK.
	* sysdeps/mach/hurd/sigaltstack.c (__sigaltstack): Renamed from
	sigaltstack, and created a weak alias.  Use SS_DISABLE and
	SS_ONSTACK instead of SA_DISABLE and SA_ONSTACK.
	* sysdeps/mach/hurd/sigstack.c (sigstack): Use SS_ONSTACK instead
	of SA_ONSTACK.  Call __sigaltstack instead of sigaltstack.
	* sysdeps/mach/hurd/i386/sigreturn.c (__sigreturn): Use SS_ONSTACK
	instead of SA_ONSTACK.
	* sysdeps/mach/hurd/alpha/sigreturn.c (__sigreturn): Likewise.
	* sysdeps/mach/hurd/mips/sigreturn.c (__sigreturn): Likewise.
	* sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler):
	Use SS_DISABLE instead of SA_DISABLE.  Use SS_ONSTACK instead of
	SA_ONSTACK where appropriate.
	* sysdeps/mach/hurd/alpha/trampoline.c (_hurd_setup_sighandler):
	Likewise.
	* sysdeps/mach/hurd/hppa/trampoline.c (_hurd_setup_sighandler):
	Likewise.
	* sysdeps/mach/hurd/mips/trampoline.c (_hurd_setup_sighandler):
	Likewise.
	* manual/signal.texi (Signal Stack): Talk about SS_DISABLE and
	SS_ONSTACK instead of SA_DISABLE and SA_ONSTACK in discussion of
	the `ss_flags' member of `struct sigaltstack'.

1998-08-05  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* libio/Makefile (routines) [$(versioning)=yes]: Add oldtmpfile.
	(shared-only-routines): Likewise.
	* libio/oldtmpfile.c: New file
	* stdio-common/tmpfile.c: Use __fdopen and __close.
	[USE_IN_LIBIO]: Use _IO_fdopen instead of _IO_new_fdopen.  Put
	tmpfile on symbol version GLIBC_2.1.
	* stdio-common/tmpfile64.c: Use __fdopen and __close.
	[USE_IN_LIBIO]: Use _IO_fdopen instead of _IO_new_fdopen.
	* stdio-common/Version [GLIBC_2.1]: Add tmpfile.
	* stdio-common/tempnam.c: Use __strdup instead of strdup.
	* sysdeps/posix/fdopen.c: Define __fdopen and make fdopen weak
	alias.
	* sysdeps/generic/fdopen.c: Likewise.
	* sysdeps/mach/hurd/fdopen.c: Likewise.
	* stdio/stdio.h: Declare __fdopen.
	* sunrpc/openchild.c: Use __fdopen instead of fdopen.
	[USE_IN_LIBIO]: Map __fdopen to _IO_fdopen.
	* sysdeps/posix/tempname.c (__gen_tempname): Don't bother checking
	__stub_open64, it is never defined.

1998-08-05  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* libio/iofopen64.c: Fix typo.  Avoid unnessary casts.
	* libio/iopopen.c: Unlink file before freeing it if command
	creation failed.  Avoid unnessary casts.
	* libio/iofdopen.c:  Avoid unnecessary cast.
	* pwd/fgetpwent_r.c [USE_IN_LIBIO]: Map funlockfile to
	_IO_funlockfile.
	* pwd/fgetspent_r.c [USE_IN_LIBIO]: Likewise.

1998-08-06  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* grp/grp.h, pwd/pwd.h: Don't declare __grpopen, __grpread,
	__grpalloc, __grpscan and the corresponding pwd functions, they
	were removed long ago.

1998-08-06  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* math/libm-test.c (csqrt_test): Adjust epsilons.
	(casinh_test): Likewise.

1998-08-06  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* posix/globtest.sh: Fix typo.  Remove second test output file.

1998-08-07  Cristian Gafton  <gafton@redhat.com>

	* pwd/putpwent.c (putpwent): Avoid writting (none) in the passwd file.
	* shadow/putspent.c (putspent): Likewise.
	* grp/putgrent.c: New file.
	* grp/Makefile (routines): Add putgrent.
	* grp/Versions [GLIBC_2.1]: Add putgrent.
	* grp/grp.h: Add putgrent prototype.

1998-08-04 19:33  Ulrich Drepper  <drepper@cygnus.com>

	* elf/elf.h: More ELF definitions.
1998-08-08 20:02:34 +00:00
Ulrich Drepper
c3966b88ee Update.
1998-07-31 11:10  Ulrich Drepper  <drepper@cygnus.com>

	* elf/elf.h: Add lots of new symbols from Irix and Solaris.

	* sysdeps/unix/sysv/linux/sigstack.c: Include stddef.h to get NULL
	definition.

1998-07-31  Thorsten Kukuk  <kukuk@vt.uni-paderborn.de>

	* sunrpc/xcrypt.c: Use only the first 8 characters of the password.

1998-07-30 21:06 -0400  Zack Weinberg  <zack@rabi.phys.columbia.edu>

	* sysdeps/generic/glob.c: Undefine strdup before defining it,
	because bits/string2.h may have defined it already.

1998-07-29  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* stdio-common/vfscanf.c: Optimize looking for type modifiers.
	Fix recognition of 'a' modifier vs. 'a' format.
	(TYPEMOD): Removed.

	* stdio-common/printf-parse.h (parse_one_spec): Optimize looking
	for type modifiers.  Fix recognition of 'hh' modifier.

1998-07-31  Thorsten Kukuk  <kukuk@vt.uni-paderborn.de>

	* sunrpc/svc_unix.c: Fix typo.

1998-07-31  Thorsten Kukuk  <kukuk@vt.uni-paderborn.de>

	* sysdeps/unix/sysv/linux/recvmsg.c: Don't check for SCM_CREDS before
	syscall.
1998-07-31 11:14:46 +00:00
Ulrich Drepper
e852e88944 Update.
1998-07-28  Ulrich Drepper  <drepper@cygnus.com>

	* math/libm-test.c (tgamma_test): Remove redundant tests.

1998-07-28 16:20  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/generic/glob.c: Correct problems with */foo and GLOB_NOCHECK
	where foo does not exist in any of the subdirectories.
	Reported by Paul D. Smith <psmith@BayNetworks.COM>.

	* posix/globtest.sh: Add test for this bug.

1998-07-28  Mark Kettenis  <kettenis@phys.uva.nl>

	* io/sys/statfs.h: Fix typos.
	* io/sys/statvfs.h: Fix typos.

1998-07-28  Ulrich Drepper  <drepper@cygnus.com>

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

	* math/Makefile (libm-calls): Remove w_gamma, add w_tgamma.
	* math/Versions [GLIBC_2.1]: Add tgamma, tgammaf, and tgammal.
	* math/libm-test.c: Split old gamma_test and move half of it in new
	function tgamma_test.
	* math/bits/mathcalls.h: Add declaration of tgamma.
	* sysdeps/libm-ieee754/k_standard.c: Change gamma errors into
	tgamma errors.
	* sysdeps/libm-ieee754/w_gamma.c: Remove lgamma compatibility code
	and rename to ...
	* sysdeps/libm-ieee754/w_tgamma.c: ... this.  New file.
	* sysdeps/libm-ieee754/w_gammaf.c: Remove lgammaf compatibility code
	and rename to ...
	* sysdeps/libm-ieee754/w_tgammaf.c: ... this.  New file.
	* sysdeps/libm-ieee754/w_gammal.c: Remove lgammal compatibility code
	and rename to ...
	* sysdeps/libm-ieee754/w_tgammal.c: ... this.  New file.
	* sysdeps/libm-ieee754/w_lgamma.c: Add gamma as weak alias.
	* sysdeps/libm-ieee754/w_lgammaf.c: Likewise.
	* sysdeps/libm-ieee754/w_lgammal.c: Likewise.

	* stgdio-common/printf-parse.h: Implement handling of j, t, and z
	modifiers.
	* stdio-common/vfprintf.c: Likewise.
	* stdio-common/vfscanf.c: Likewise.
	* manual/stdio.texi: Document new printf/scanf modifiers.

	* sysdeps/unix/sysv/linux/recvmsg.c: Remove alias __recvmsg.
	* sysdeps/unix/sysv/linux/sendmsg.c: Remove alias __sendmsg.

1998-07-28  Thorsten Kukuk  <kukuk@vt.uni-paderborn.de>

	* sunrpc/Makefile (routines): Add clnt_unix and svc_unix.
	* sunrpc/Versions: Add new *unix_create functions.
	* sunrpc/clnt_gen.c: Add support for RPC over AF_UNIX.
	* sunrpc/clnt_unix.c: New, client side of RPC over AF_UNIX.
	* sunrpc/key_call.c: Use RPC over AF_UNIX for communication
	with keyserv daemon.
	* sunrpc/rpc/clnt.h: Add AF_UNIX based RPC function prototypes.
	* sunrpc/rpc/svc.h: Likewise.
	* sunrpc/svc_authux.c: Copy internal auth flavor if none is given.
	* sunrpc/svc_tcp.c: Fix typos.
	* sunrpc/svc_unix.c: New, server side of AF_UNIX based RPC.

	* nis/Makefile: Remove currently not working cache functions.
	* nis/Versions: Add __nisbind_* functions for rpc.nisd.
	* nis/nis_call.c: Rewrite binding to a NIS+ server to reuse
	CLIENT handles.
	* nis/nis_file.c: Fix memory leaks.
	* nis/nis_intern.h: Move internal structs from here ...
	* nis/rpcsvc/nislib.h: ... to here for NIS+ server and tools.
	* nis/nis_lookup.c: Try at first if last client handle works.
	* nis/nis_table.c: Likewise.
	* nis/nis_checkpoint.c: Adjust __do_niscall2 parameters.
	* nis/nis_mkdir.c: Likewise.
	* nis/nis_ping.c: Likewise.
	* nis/nis_rmdir.c: Likewise.
	* nis/nis_server.c: Likewise.
	* nis/nis_util.c: Likewise.
	* nis/nis_findserv.c (__nis_findfastest): Little optimization.

1998-07-28  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* stdlib/strtol.c (STRTOL_LONG_MAX): Correct typo in last patch -
	define as LONG_MAX.

1998-07-28 09:31  Ulrich Drepper  <drepper@cygnus.com>

	* nscd/connections.c (gr_send_answer): Deal with missing UIO_MAXIOV.
	Correct test whether writev send all data.
	* nscd/nscd_getgr_r.c (__nscd_getgr_r): Correct test whether readv
	received all data.

1998-07-28  Mark Kettenis  <kettenis@phys.uva.nl>

	* nscd/nscd_getgr_r.c (__nscd_getgr_r): Deal with missing UIO_MAXIOV.

1998-07-28  Mark Kettenis  <kettenis@phys.uva.nl>

	* sysdeps/mach/hurd/dl-sysdep.c (open_file): Change assert call to
	allow mode to be 0.
	(__xstat): New function.
	(__fxstat): New function.
	(_dl_sysdep_read_whole_file): Removed.  The implementation in
	`elf/dl-misc.c' now also works for the Hurd.
1998-07-28 16:26:04 +00:00
Ulrich Drepper
7a68c94a5b Update.
1998-07-10 18:14 -0400  Zack Weinberg  <zack@rabi.phys.columbia.edu>

	* manual/Makefile: Overhauled.  Generate libc.texinfo from the
	chapter files.  Exorcise the chapters, chapters-incl mess.
	Support inserting doc chapters from add-on modules.
	(chapters): New variable.
	(add-chapters): New variable.
	(appendices): New variable.
	(libc.texinfo): New target.
	(clean): Fix bugs.
	(realclean): Fix bugs.

	* manual/texis.awk: New file.
	* manual/libc-texinfo.sh: New file.
	* manual/libc-texinfo.in: New file.

	* manual/conf.texi (top @node): Remove next pointer.
	* manual/lang.texi (top @node): Remove prev pointer.

	* manual/job.texi (top @node): Add explicit pointers.
	* manual/message.texi (top @node): Add explicit pointers.
	* manual/nss.texi (top @node): Add explicit pointers.
	* manual/process.texi (top @node): Add explicit pointers.
	* manual/startup.texi (top @node): Add explicit pointers.
	* manual/terminal.texi (top @node): Add explicit pointers.
	* manual/users.texi (top @node): Add explicit pointers.

	* manual/arith.texi: Add %MENU% tag.
	* manual/conf.texi: Add %MENU% tag.
	* manual/contrib.texi: Add %MENU% tag.
	* manual/ctype.texi: Add %MENU% tag.
	* manual/errno.texi: Add %MENU% tag.
	* manual/filesys.texi: Add %MENU% tag.
	* manual/header.texi: Add %MENU% tag.
	* manual/install.texi: Add %MENU% tag.
	* manual/intro.texi: Add %MENU% tag.
	* manual/io.texi: Add %MENU% tag.
	* manual/job.texi: Add %MENU% tag.
	* manual/lang.texi: Add %MENU% tag.
	* manual/llio.texi: Add %MENU% tag.
	* manual/locale.texi: Add %MENU% tag.
	* manual/maint.texi: Add %MENU% tag.
	* manual/math.texi: Add %MENU% tag.
	* manual/mbyte.texi: Add %MENU% tag.
	* manual/memory.texi: Add %MENU% tag.
	* manual/message.texi: Add %MENU% tag.
	* manual/nss.texi: Add %MENU% tag.
	* manual/pattern.texi: Add %MENU% tag.
	* manual/pipe.texi: Add %MENU% tag.
	* manual/process.texi: Add %MENU% tag.
	* manual/search.texi: Add %MENU% tag.
	* manual/setjmp.texi: Add %MENU% tag.
	* manual/signal.texi: Add %MENU% tag.
	* manual/socket.texi: Add %MENU% tag.
	* manual/startup.texi: Add %MENU% tag.
	* manual/stdio.texi: Add %MENU% tag.
	* manual/string.texi: Add %MENU% tag.
	* manual/sysinfo.texi: Add %MENU% tag.
	* manual/terminal.texi: Add %MENU% tag.
	* manual/time.texi: Add %MENU% tag.
	* manual/users.texi: Add %MENU% tag.

1998-07-13  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/i386/dl-procinfo.h (x86_cap_flags):
	Update.

1998-07-11  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* sysdeps/unix/sysv/linux/recvmsg.c (__libc_recvmsg): Use ANSI
	style declaration to avoid warning.
	* sysdeps/unix/sysv/linux/sendmsg.c (__libc_sendmsg): Likewise.

1998-07-04  Mark Kettenis  <kettenis@phys.uva.nl>

	* elf/rtld.c (process_dl_debug): Add missing continue.

1998-07-12  Mark Kettenis  <kettenis@phys.uva.nl>

	* elf/rtld.c (_dl_skip_args): Make global because the Hurd startup
	code needs it.

1998-07-10  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makeconfig ($(common-objpfx)sysd-dirs): Write out definition of
	sysd-dirs-done.
	* Makerules: Don't generate version maps too early.
	($(common-objpfx)sysd-versions): Force regeneration if the list of
	subdirs has changed.

1998-07-10  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* elf/dlfcn.h (DL_CALL_FCT): Use portable comma expression.

1998-07-11  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* iconv/gconv_db.c (gen_steps): Always set *handle and *nsteps.
	* iconv/gconv_dl.c (__gconv_find_shlib): Correct use of tfind
	return value.

1998-07-12  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* elf/dl-open.c (dl_open_worker): New function.
	(_dl_open): Call it to do the actual work while catching errors.
	* elf/dl-close.c (_dl_close): Only call termination function if
	the initialisation function was called.

1998-07-13  Ulrich Drepper  <drepper@cygnus.com>

	* libio/libioP.h (_IO_cleanup_registration_needed): Use __PMT.
	Reported by Felix von Leitner <leitner@amdiv.de>.

1998-07-13 10:28  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
	* elf/rtld.c (process_dl_debug): Add missing continue.

1998-06-23  Mark Kettenis  <kettenis@phys.uva.nl>
1998-07-13 12:29:13 +00:00
Ulrich Drepper
dd3c89f99c Update.
1998-07-05  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/__sendmsg.S: Define function as
	__syscall_sendmsg.
	* sysdeps/unix/sysv/linux/__recvmsg.S: Define function as
	__syscall_recvmsg.
	* sysdeps/unix/sysv/linux/recvmsg.c: Define function as __libc_recvmsg
	and make __recvmsg and recvmsg weak aliases.
	* sysdeps/unix/sysv/linux/sendmsg.c: Likewise for sendmsg.
	* sysdeps/unix/sysv/linux/alpha/syscalls.list: Define __syscall_recvmsg
	and __syscall_sendmsg.
1998-07-05 15:24:05 +00:00
Ulrich Drepper
ba9234d947 Update.
1998-07-04 10:14  Ulrich Drepper  <drepper@cygnus.com>

	* libio/Makefile (routines): Add iofread_u and iofwrite_u.
	* libio/Versions: Add fread_unlocked and fwrite_unlocked.

	* Makerules (lib%.so): Adjust ignore pattern for last makefile change.

	* time/tzfile.c (decode): Optimize by using bswap_32.
	(__tzfile_read): Use _unlocked stream functions.  Correct setting of
	__tzname array values.
	(__tzfile_compute): Correct setting of __tzname array values.
	* time/tzset.c (__tzstring): Clean up a bit.

1998-06-29 19:01  Jim Wilson  <wilson@cygnus.com>

	* posix/regex.c (re_comp): Add cast to char * before gettext calls.

1998-06-30  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* sysdeps/unix/bsd/poll.c (__poll): Allocate fd_set dynamically so
	that fd can be bigger than FD_SETSIZE.

1998-07-01  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* nscd/grpcache.c: Include <unistd.h>.
	* nscd/pwdcache.c: Likewise.

	* nis/nis_modify.c: Include <string.h>.
	* nis/nis_add.c: Likewise.
	* nis/nis_checkpoint.c: Likewise.
	* posix/runptests.c: Likewise.
	* sysdeps/generic/statvfs64.c: Likewise.
	* sysdeps/generic/fstatvfs64.c: Likewise.

1998-07-03 13:16  Ulrich Drepper  <drepper@cygnus.com>

	* localedata/charmaps/ISO-8859-9: Change mapping for 0xea, 0xec, 0xef
	to match data from Unicode.
	Reported by Michael Deutschmann <michael@talamasca.wkpowerlink.com>.

1998-07-03 11:45  Ulrich Drepper  <drepper@cygnus.com>

	* stdio-common/printf.h: Define printf_function and
	printf_arginfo_function types using __PMT not __P.
	Reported by Marc Lehmann.

1998-07-02 14:07 -0400  Zack Weinberg  <zack@rabi.phys.columbia.edu>

	* assert/test-assert.c: New test.
	* assert/test-assert-perr.c: New test.
	* assert/Makefile (tests): Add test-assert and test-assert-perr.

1998-07-02 13:45  Zack Weinberg  <zack@rabi.phys.columbia.edu>

	BSD-style SCM_CREDS support.

	* sysdeps/unix/sysv/linux/socket.h: Define struct cmsgcred and
	SCM_CREDS.
	* sysdeps/unix/sysv/linux/sendmsg.c: New file.  Convert user
	visible SCM_CREDS packet to what the kernel wants.
	* sysdeps/unix/sysv/linux/recvmsg.c: New file.  Convert
	SCM_CREDS packet output by kernel to what users want.

	* sysdeps/unix/sysv/linux/sendmsg.S: Moved to...
	* sysdeps/unix/sysv/linux/__sendmsg.S: here.
	* sysdeps/unix/sysv/linux/recvmsg.S: Moved to...
	* sysdeps/unix/sysv/linux/__recvmsg.S: here.

	* sysdeps/unix/sysv/linux/Makefile [subdir=socket]: Add
	__sendmsg and __recvmsg to sysdep_routines.
	* sysdeps/unix/sysv/linux/Dist: Add __sendmsg.S and __recvmsg.S.

1998-07-02  Thorsten Kukuk  <kukuk@vt.uni-paderborn.de>

	* nscd/grpcache.c: Fix gid pointer handling and debug messages.
	* nscd/pwdcache.c: Fix uid pointer handling and debug messages.
	* nscd/nscd.c: Check, if pthread_create fails.

1998-07-02  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* stdio-common/test_rdwr.c (main): Use %Zu for size_t in printf
	format strings.
	* stdio-common/bug1.c (main): Likewise.
	* stdio-common/bug5.c (main): Likewise.
	* stdio-common/tstgetln.c (main): Likewise.
	* elf/sprof.c (generate_call_graph): Likewise.
	(load_shobj): Likewise.
	* posix/runptests.c (main): Likewise.
	* string/tst-strlen.c (main): Likewise.

	* sysdeps/libm-ieee754/e_acos.c (__ieee754_acos): Remove unused
	variable q3.
	* sysdeps/libm-ieee754/e_asin.c (__ieee754_asin): Likewise

1998-07-03  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* wctype/Versions: Add __towctrans.
	Noticed by Alex Buell <alex.buell@tahallah.demon.co.uk>.

1998-07-02  Mark Kettenis  <kettenis@phys.uva.nl>

	* grp/initgroups.c (compat_call): Only call dynamically loaded
	functions if they are really present.

1998-07-02  Mark Kettenis  <kettenis@phys.uva.nl>

	* sysdeps/unix/sysv/linux/bits/sched.h: Move __END_DECLS within
	#ifdef that contains __BEGIN_DECLS.

1998-07-02  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* libio/iofwrite.c: Fix return value when size == 0.

1998-07-01  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* posix/Makefile (distribute): Add annexc.c.
	(generated): Add $(objpfx)annexc and $(objpfx)annexc.out.

1998-07-01  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
	bits/pthreadtypes.h here, and do not clobber headers.

	* sysdeps/unix/sysv/linux/Dist: Add bits/pthreadtypes.h.

1998-07-03  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* timezone/tst-timezone.c: Add tests for tzname variable.

1998-07-03 12:17  Zack Weinberg  <zack@rabi.phys.columbia.edu>

	* Makefile [versioning=yes]: Build the mapfiles with a pattern
	rule that lists all of them as targets.
	(sysd-versions): Depend only on Versions.def.  Write a Makefile
	fragment that defines $(vers-libs) based on contents of that file;
	then include it.
	(lib-noranlib): Depend on lib-mapfiles not sysd-versions.
	(lib-mapfiles): New target, depends on sysd-versions and $(vers-libs).
	Predicate all this on avoid-generated unset as well as versioning.

1998-07-03 14:35  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
1998-07-04 10:39:13 +00:00